Changeset 1941

Show
Ignore:
Timestamp:
27-06-11 14:57:45 (3 years ago)
Author:
robert@…
Message:

- Implemented getStudyVersions rest call to assist module synchronization
- Removed debug println statements

Location:
trunk/grails-app
Files:
2 modified

Legend:

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

    r1884 r1941  
    136136         */ 
    137137        def getStudies = { 
    138  
     138                def user = authenticationService.getRemotelyLoggedInUser( params.consumer, params.token ) 
     139                 
    139140                List returnStudies = [] 
    140141                List studies = [] 
     
    169170                studies.each { study -> 
    170171                        if(study) { 
    171                                 def user = authenticationService.getRemotelyLoggedInUser( params.consumer, params.token ) 
    172172                                // Check whether the person is allowed to read the data of this study 
    173173                                if( study.canRead(authenticationService.getRemotelyLoggedInUser( params.consumer, params.token ))) { 
     
    243243        } 
    244244 
     245        /** 
     246        * REST resource for data modules. 
     247        * Consumer and token should be supplied via URL parameters. 
     248        * Provides the version number of all studies readable by this user 
     249        * 
     250        * @param        consumer        consumer name of the calling module 
     251        * @param        token           token for the authenticated user (e.g. session_id) 
     252        * @return  JSON object list containing studies with 'studyToken', and 'version' 
     253        * 
     254        * A 404 error might occur if the study doesn't exist, and a 401 error if the user is not 
     255        * authorized to access this study. 
     256        * 
     257        * Example. REST call with one studyToken. 
     258        * 
     259        * Call: http://localhost:8080/gscf/rest/getStudyVersions 
     260        * 
     261        * Result: [{"studyToken":"PPSH","version":31},{"studyToken":"Other study", "version":3}] 
     262        */ 
     263   def getStudyVersions = { 
     264           // Check which user has been logged in 
     265           def user = authenticationService.getRemotelyLoggedInUser( params.consumer, params.token ) 
     266            
     267           def jsonList = [] 
     268            
     269                Study.giveReadableStudies( user ).each { study -> 
     270                        if(study) { 
     271                                jsonList << [studyToken:study.giveUUID(), version: study.version] 
     272                        } 
     273                } 
     274 
     275                // set output header to json 
     276                response.contentType = 'application/json' 
     277 
     278                render jsonList as JSON 
     279   } 
     280 
     281         
    245282        /** 
    246283         * REST resource for data modules. 
  • trunk/grails-app/services/dbnp/modules/ModuleNotificationService.groovy

    r1939 r1941  
    4141                        return 
    4242                         
    43                 log.info( "Invalidate " + study.code ) 
     43                log.info( "Invalidate " + study ) 
    4444 
    45                 def modules = AssayModule.findByNotify(true); 
     45                def modules = AssayModule.findAllByNotify(true); 
    4646                 
    4747                // If no modules are set to notify, return 
     
    8585                Thread.start {  
    8686                        urls.each { url -> 
     87                                log.info( "GSCF NOTIFY MODULE OF STUDY CHANGE: ${url}") 
    8788                                try { 
    8889                                        def connection = url.toURL().openConnection()