@@ -39,16 +39,26 @@ class BdrService {
39
39
40
40
AccessTokenCache accessTokenCache
41
41
42
+ void downloadProjectDataSet (String projectId , String format , HttpServletResponse response ) {
43
+ String query = (projectQuery (projectId) as JSON ). toString()
44
+ executeBdrQuery(query, format, response)
45
+ }
46
+
42
47
void downloadDataSet (String projectId , String dataSetId , String format , HttpServletResponse response ) {
48
+ String query = (dataSetQuery(dataSetId) as JSON ). toString()
49
+ executeBdrQuery(query, format, response)
50
+ }
51
+
52
+ private void executeBdrQuery (String query , String format , HttpServletResponse response ) {
43
53
String azureToken = getAzureAccessToken()
44
54
45
55
String bdrBaseUrl = grailsApplication. config. getProperty(' bdr.api.url' )
46
56
Integer readTimeout = grailsApplication. config. getProperty(' bdr.api.readTimeout' , Integer , 60000 )
47
57
format = URLEncoder . encode(format, ' UTF-8' )
48
58
String url = bdrBaseUrl+ ' /cql?_mediatype=' + format
49
- String query = (dataSetQuery(dataSetId) as JSON ). toString()
50
59
String encodedQuery = URLEncoder . encode(query, " UTF-8" )
51
60
61
+ url+ = " &_profile=" + " bdr-feature-human"
52
62
url+ = " &filter=" + encodedQuery
53
63
54
64
log. info(" Downloading data set from BDR: $url " )
@@ -89,7 +99,7 @@ class BdrService {
89
99
accessToken. getToken()
90
100
}
91
101
92
- private Map dataSetQuery (String dataSetId ) {
102
+ private static Map dataSetQuery (String dataSetId ) {
93
103
Map query = [
94
104
" op" : " and" ,
95
105
" args" : [
@@ -100,6 +110,17 @@ class BdrService {
100
110
query
101
111
}
102
112
113
+ private static Map projectQuery (String projectId ) {
114
+ Map query = [
115
+ " op" : " and" ,
116
+ " args" : [
117
+ [" op" :" =" ," args" :[[" property" :" https://schema.org/isPartOf" ], " https://linked.data.gov.au/dataset/bdr/" + projectId]],
118
+ [" op" :" =" ," args" :[[" property" :" http://www.w3.org/1999/02/22-rdf-syntax-ns#type" ]," http://www.opengis.net/ont/geosparql#Feature" ]]
119
+ ]
120
+ ]
121
+ query
122
+ }
123
+
103
124
104
125
String getTokenFromCognitoIdentityPool (String userToken ) {
105
126
0 commit comments