Skip to content

Commit

Permalink
Added a limit param to BDR queries #3169
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisala committed Feb 21, 2025
1 parent a088cb5 commit c54b090
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
10 changes: 5 additions & 5 deletions grails-app/controllers/au/org/ala/merit/DataSetController.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import org.springframework.http.HttpStatus
class DataSetController {

static allowedMethods = [create:'GET', edit:'GET', save:'POST', delete:'POST']

private static final Integer DEFAULT_LIMIT = 1000
ProjectService projectService
DataSetSummaryService dataSetSummaryService
BdrService bdrService
Expand Down Expand Up @@ -160,7 +160,7 @@ class DataSetController {
}

@PreAuthorise(accessLevel = 'admin')
def downloadProjectDataSets(String id, String format) {
def downloadProjectDataSets(String id, String format, Integer limit) {
if (!id) {
render status: HttpStatus.NOT_FOUND
return
Expand All @@ -174,11 +174,11 @@ class DataSetController {
return
}

bdrService.downloadProjectDataSet(id, format, response)
bdrService.downloadProjectDataSet(id, format, response, limit ?: DEFAULT_LIMIT)
}

@PreAuthorise(accessLevel = 'admin')
def download(String id, String dataSetId, String format) {
def download(String id, String dataSetId, String format, Integer limit) {
Map projectData = projectData(id)

List supportedFormats = grailsApplication.config.getProperty('bdr.dataSet.formats', List)
Expand All @@ -199,7 +199,7 @@ class DataSetController {
else {
if (isMonitorDataSet(dataSet)) {
if (isProtocolSupportedForDownload(dataSet)) {
bdrService.downloadDataSet(id, dataSet.dataSetId, format, response)
bdrService.downloadDataSet(id, dataSet.dataSetId, format, response, limit ?: DEFAULT_LIMIT)
}
}
else if (dataSet.url) {
Expand Down
11 changes: 6 additions & 5 deletions grails-app/services/au/org/ala/merit/BdrService.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ class BdrService {

AccessTokenCache accessTokenCache

void downloadProjectDataSet(String projectId, String format, HttpServletResponse response) {
void downloadProjectDataSet(String projectId, String format, HttpServletResponse response, int limit=1000) {
String query = (projectQuery (projectId) as JSON).toString()
executeBdrQuery(query, format, response)
executeBdrQuery(query, format, response, limit)
}

void downloadDataSet(String projectId, String dataSetId, String format, HttpServletResponse response) {
void downloadDataSet(String projectId, String dataSetId, String format, HttpServletResponse response, int limit=1000) {
String query = (dataSetQuery(dataSetId) as JSON).toString()
executeBdrQuery(query, format, response)
executeBdrQuery(query, format, response, limit)
}

private void executeBdrQuery(String query, String format, HttpServletResponse response) {
private void executeBdrQuery(String query, String format, HttpServletResponse response, int limit) {
String azureToken = getAzureAccessToken()

String bdrBaseUrl = grailsApplication.config.getProperty('bdr.api.url')
Expand All @@ -59,6 +59,7 @@ class BdrService {
String encodedQuery = URLEncoder.encode(query, "UTF-8")

url+="&_profile="+"bdr-feature-human"
url+="&limit=$limit"
url+="&filter="+encodedQuery

log.info("Downloading data set from BDR: $url")
Expand Down

0 comments on commit c54b090

Please sign in to comment.