Skip to content

Commit 9144d68

Browse files
committed
fix for #162
1 parent af21cd6 commit 9144d68

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

grails-app/controllers/au/org/ala/collectory/DataProviderController.groovy

+36
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package au.org.ala.collectory
22

3+
import grails.converters.JSON
4+
import grails.converters.XML
5+
import grails.web.http.HttpHeaders
6+
37
class DataProviderController extends ProviderGroupController {
48

59
def gbifRegistryService
610
def authService
11+
def iptService
712

813
DataProviderController() {
914
entityName = "DataProvider"
@@ -89,6 +94,37 @@ class DataProviderController extends ProviderGroupController {
8994
)
9095
}
9196

97+
def iptScan = {
98+
def create = params.create != null && params.create.equalsIgnoreCase("true")
99+
def check = params.check == null || !params.check.equalsIgnoreCase("false")
100+
def keyName = params.key ?: 'catalogNumber'
101+
def isShareableWithGBIF = params.isShareableWithGBIF ? params.isShareableWithGBIF.toBoolean(): true
102+
def provider = providerGroupService._get(params.uid)
103+
104+
def username = collectoryAuthService.username()
105+
def admin = collectoryAuthService.userInRole(grailsApplication.config.ROLE_ADMIN)
106+
try {
107+
def updates = provider == null ? null : iptService.scan(provider, create, check, keyName, username, admin, isShareableWithGBIF)
108+
log.info "${updates.size()} data resources to update for ${params.uid}"
109+
response.addHeader HttpHeaders.VARY, HttpHeaders.ACCEPT
110+
withFormat {
111+
text {
112+
render updates.findAll({ dr -> dr.uid != null }).collect({ dr -> dr.uid }).join("\n")
113+
}
114+
xml {
115+
render updates as XML
116+
}
117+
json {
118+
render updates as JSON
119+
}
120+
}
121+
} catch (Exception e){
122+
log.error("Problem scanning IPT endpoint: " + e.getMessage(), e)
123+
render (status: 500, text: "Problem scanning data provider " + params.uid)
124+
return
125+
}
126+
}
127+
92128
/**
93129
* Create a single data provider for a selected GBIF organization
94130
*/

grails-app/views/dataProvider/show.gsp

+2-2
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@
181181
function checkIptInstance(){
182182
$('.iptCheck .spinner').removeClass('hide');
183183
$('.iptBtn').attr('disabled','disabled');
184-
var checkUrl = "${raw(createLink(controller: "ipt", action: "scan", params:[format:"json", uid: instance?.uid, check:true, create: false]))}";
184+
var checkUrl = "${raw(createLink(controller: "dataProvider", action: "iptScan", params:[format:"json", uid: instance?.uid, check:true, create: false]))}";
185185
var jqxhr = $.get(checkUrl, function(data) {
186186
$('.iptStatus').html("Success! IPT instance has " + data.length + " resources available." );
187187
$('.iptStatus').removeClass('hide')
@@ -198,7 +198,7 @@
198198
function updateResourcesFromIpt(){
199199
$('.iptUpdate .spinner').removeClass('hide');
200200
$('.iptBtn').attr('disabled','disabled');
201-
var updateUrl = "${raw(createLink(controller: "ipt", action: "scan", params:[format:"json", uid: instance?.uid, create:true, check: false]))}";
201+
var updateUrl = "${raw(createLink(controller: "dataProvider", action: "iptScan", params:[format:"json", uid: instance?.uid, create:true, check: false]))}";
202202
var jqxhr = $.get(updateUrl, function(data) {
203203
console.log(data)
204204
var updateText = "Success! <br/><br/> " + data.length + " resources have been added or updated from this IPT instance."

0 commit comments

Comments
 (0)