Changeset 2200 for trunk/grails-app/controllers/api/ApiController.groovy
- Timestamp:
- Mar 30, 2012, 5:17:57 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/api/ApiController.groovy
r2199 r2200 19 19 import dbnp.studycapturing.Study 20 20 import dbnp.studycapturing.Assay 21 import dbnp.authentication.SecUser22 import org.dbnp.gdt.TemplateFieldType23 21 24 22 class ApiController { 25 23 def authenticationService 26 def moduleCommunicationService 27 def ApiService 24 def apiService 28 25 29 26 /** … … 39 36 40 37 // see if we already have a token on file for this device id 41 def token = Token.findByDeviceID(params?.deviceID) 38 String deviceID = (params.containsKey('deviceID')) ? params.deviceID : '' 39 def token = Token.findByDeviceID(deviceID) 42 40 43 41 // generate a new token if we don't have a token on file … … 281 279 } 282 280 } 281 282 def getDataForAssay = { 283 println "api:getDataForAssay: ${params}" 284 285 String deviceID = (params.containsKey('deviceID')) ? params.deviceID : '' 286 String validation = (params.containsKey('validation')) ? params.validation : '' 287 String assayToken = (params.containsKey('assayToken')) ? params.assayToken : '' 288 289 // fetch user and study 290 def user = Token.findByDeviceID(deviceID)?.user 291 def assay = Assay.findByAssayUUID(assayToken) 292 293 // check 294 if (!apiService.validateRequest(deviceID,validation)) { 295 response.sendError(401, 'Unauthorized') 296 } else if (!assay) { 297 response.sendError(400, 'No such assay') 298 } else if (!assay.parent.canRead(user)) { 299 response.sendError(401, 'Unauthorized') 300 } else { 301 // fetch data from model 302 // def measurements = 303 // define sample measurement data matrix 304 305 def matrix = [:] 306 def measurements = apiService.getMeasurements(assay, user) 307 def measurementData = apiService.getMeasurementData(assay, user) 308 309 // iterate through measurementData and build data matrix 310 measurementData.each { data -> 311 if (!matrix.containsKey(data.sampleToken)) matrix[ data.sampleToken ] = [:] 312 matrix[ data.sampleToken ][ data.measurementToken ] = data.value 313 } 314 315 // define result 316 def result = [ 317 'measurements' : apiService.getMeasurements(assay, user), 318 'matrix' : matrix 319 ] 320 321 // set output headers 322 response.status = 200 323 response.contentType = 'application/json;charset=UTF-8' 324 325 if (params.containsKey('callback')) { 326 render "${params.callback}(${result as JSON})" 327 } else { 328 render result as JSON 329 } 330 } 331 } 283 332 }
Note: See TracChangeset
for help on using the changeset viewer.