Skip to content

Commit bd3d56c

Browse files
authored
Merge pull request #193 from AtlasOfLivingAustralia/feature/issueEcodata133
Added an ActivityForm search operation AtlasOfLivingAustralia/ecodata…
2 parents d312860 + bb57e4a commit bd3d56c

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

grails-app/services/au/org/ala/ecodata/forms/ActivityFormService.groovy

+16
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import org.grails.web.json.JSONObject
1010
class ActivityFormService {
1111

1212
static final String ACTIVITY_FORM_PATH = '/activityForm'
13+
static final String ACTIVITY_FORM_SEARCH_PATH = '/activityForm/search'
1314
def webService
1415
def grailsApplication
1516

@@ -66,6 +67,21 @@ class ActivityFormService {
6667
model
6768
}
6869

70+
/**
71+
* Returns a Map with keys: [resp:List<Map>, statusCode:<>]
72+
* @param criteria Used to build a GORM criteria query, e.g. [category:'paratoo']
73+
*/
74+
Map searchActivityForms(Map criteria) {
75+
String url = grailsApplication.config.getProperty('ecodata.service.url') +
76+
ACTIVITY_FORM_SEARCH_PATH
77+
Map result = webService.doPost(url, criteria)
78+
if (!result || result.error) {
79+
result = null
80+
}
81+
82+
result
83+
}
84+
6985
private Map missingForm(String name, Integer version) {
7086
String message = "No activity form found with name ${name}"
7187
if (version) {

grails-app/services/au/org/ala/ecodata/forms/WebService.groovy

+4
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@ class WebService {
3030
def doPostWithParams(String url, Map params) {
3131
[:]
3232
}
33+
34+
def doPost(String url, Map params) {
35+
[:]
36+
}
3337
}

src/test/groovy/au/org/ala/ecodata/forms/ActivityFormServiceSpec.groovy

+8
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,12 @@ class ActivityFormServiceSpec extends Specification implements ServiceUnitTest<A
8080

8181
result.outputModels["Not found"] != null
8282
}
83+
84+
void "The service can interface to ecodata to search available activity forms"() {
85+
when:
86+
service.searchActivityForms([type:'Protocol'])
87+
88+
then:
89+
1 * webService.doPost({it.endsWith(ActivityFormService.ACTIVITY_FORM_SEARCH_PATH)}, [type:'Protocol'])
90+
}
8391
}

0 commit comments

Comments
 (0)