Ignore:
Timestamp:
Mar 30, 2012, 3:35:57 PM (10 years ago)
Author:
work@…
Message:
  • implemented getSamplesForAssay api call
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/api/ApiController.groovy

    r2198 r2199  
    204204    }
    205205
    206     def getAssayData = {
    207         println "api:getAssayData: ${params}"
     206    def getSamplesForAssay = {
     207        println "api::getSamplesForAssay: ${params}"
    208208
    209209        String deviceID     = (params.containsKey('deviceID')) ? params.deviceID : ''
     
    223223            response.sendError(401, 'Unauthorized')
    224224        } else {
     225            def samples = apiService.flattenDomainData( assay.samples )
     226
     227            // define result
     228            def result = [
     229                    'count'     : samples.size(),
     230                    'samples'   : samples
     231            ]
     232
     233            // set output headers
     234            response.status = 200
     235            response.contentType = 'application/json;charset=UTF-8'
     236
     237            if (params.containsKey('callback')) {
     238                render "${params.callback}(${result as JSON})"
     239            } else {
     240                render result as JSON
     241            }
     242        }
     243
     244    }
     245
     246    def getAssayData = {
     247        println "api:getAssayData: ${params}"
     248
     249        String deviceID     = (params.containsKey('deviceID')) ? params.deviceID : ''
     250        String validation   = (params.containsKey('validation')) ? params.validation : ''
     251        String assayToken   = (params.containsKey('assayToken')) ? params.assayToken : ''
     252
     253        // fetch user and study
     254        def user    = Token.findByDeviceID(deviceID)?.user
     255        def assay   = Assay.findByAssayUUID(assayToken)
     256
     257        // check
     258        if (!apiService.validateRequest(deviceID,validation)) {
     259            response.sendError(401, 'Unauthorized')
     260        } else if (!assay) {
     261            response.sendError(400, 'No such assay')
     262        } else if (!assay.parent.canRead(user)) {
     263            response.sendError(401, 'Unauthorized')
     264        } else {
    225265            // define result
    226266            def result = [
Note: See TracChangeset for help on using the changeset viewer.