Changeset 2049
- Timestamp:
- Oct 6, 2011, 1:19:21 PM (11 years ago)
- Location:
- trunk/grails-app
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/grails-app/controllers/dbnp/studycapturing/AssayController.groovy
r2030 r2049 140 140 141 141 // obtain fields for each category 142 flow.fieldMap = assayService.collectAssayTemplateFields(flow.assay )143 144 flash.errorMessage = flow.fieldMap.remove('Module Error')142 flow.fieldMap = assayService.collectAssayTemplateFields(flow.assay, null) 143 144 flash.errorMessage = flow.fieldMap.remove('Module Error') 145 145 flow.measurementTokens = flow.fieldMap.remove('Module Measurement Data') 146 146 }.to "selectFields" … … 179 179 def assayData = assayService.collectAssayData(flow.assay, fieldMapSelection, measurementTokens) 180 180 181 flash.errorMessage = assayData.remove('Module Error')181 flash.errorMessage = assayData.remove('Module Error') 182 182 183 183 flow.rowData = assayService.convertColumnToRowStructure(assayData) … … 275 275 // Check accessibility 276 276 def consumer = "galaxy"; 277 def user = authenticationService.getRemotelyLoggedInUser( consumer, params.sessionToken );278 if( ! user ) {277 def remoteUser = authenticationService.getRemotelyLoggedInUser( consumer, params.sessionToken ); 278 if( !remoteUser ) { 279 279 response.status = 401; 280 280 render "You must be logged in"; 281 281 return 282 282 } 283 284 // Invalidate session token 285 authenticationService.logOffRemotely( consumer, params.sessionToken ); 286 283 287 284 // retrieve assay 288 285 def assay = Assay.findByAssayUUID( params.assayToken ); … … 295 292 296 293 // Return assay data 297 def fieldMap = assayService.collectAssayTemplateFields( assay ) 294 def fieldMap = assayService.collectAssayTemplateFields( assay, null, remoteUser ) 295 298 296 def measurementTokens = fieldMap.remove('Module Measurement Data'); 299 def assayData = assayService.collectAssayData(assay, fieldMap, measurementTokens) 300 def rowData = assayService.convertColumnToRowStructure(assayData) 297 def assayData = assayService.collectAssayData(assay, fieldMap, measurementTokens, null, remoteUser) 298 299 def rowData = assayService.convertColumnToRowStructure(assayData) 300 301 // Invalidate session token 302 authenticationService.logOffRemotely( consumer, params.sessionToken ); 301 303 302 304 def outputDelimiter = '\t' … … 399 401 assays.each { assay -> 400 402 // Determine which fields should be exported for this assay 401 def fieldMap = assayService.collectAssayTemplateFields(assay )403 def fieldMap = assayService.collectAssayTemplateFields(assay, null) 402 404 def measurementTokens = fieldMap.remove('Module Measurement Data') 403 405 … … 441 443 assays.each { assay -> 442 444 // Determine which fields should be exported for this assay 443 def fieldMap = assayService.collectAssayTemplateFields(assay )445 def fieldMap = assayService.collectAssayTemplateFields(assay, null) 444 446 def measurementTokens = fieldMap.remove('Module Measurement Data') 445 447 … … 507 509 508 510 // Determine which fields should be exported for this assay 509 def fieldMap = assayService.collectAssayTemplateFields(assay )511 def fieldMap = assayService.collectAssayTemplateFields(assay, null) 510 512 def measurementTokens = fieldMap.remove('Module Measurement Data') 511 513 … … 617 619 return samples.unique(); 618 620 } 619 620 621 621 622 def errorPage = { -
trunk/grails-app/services/dbnp/modules/ModuleCommunicationService.groovy
r1991 r2049 18 18 import javax.servlet.http.HttpServletResponse 19 19 import org.codehaus.groovy.grails.commons.ConfigurationHolder 20 import org.hibernate.*; 20 import org.hibernate.* 21 import dbnp.authentication.SecUser; 21 22 22 23 class ModuleCommunicationService implements Serializable { … … 105 106 * @return JSON JSON object of the parsed text 106 107 */ 107 def callModuleMethod( String consumer, String restUrl, String args = null, String requestMethod = "GET" 108 if (! authenticationService.isLoggedIn()) {108 def callModuleMethod( String consumer, String restUrl, String args = null, String requestMethod = "GET", SecUser remoteUser = null) { 109 if (!remoteUser && !authenticationService.isLoggedIn()) { 109 110 // should not happen because we can only get here when a user is 110 111 // logged in... … … 124 125 125 126 // put the session token to work 126 authenticationService.logInRemotely( consumer, sessionToken, authenticationService.getLoggedInUser())127 127 authenticationService.logInRemotely( consumer, sessionToken, remoteUser ?: authenticationService.getLoggedInUser()) 128 128 129 // Append the sessionToken to the parameters 129 130 if( !args ) { -
trunk/grails-app/services/dbnp/studycapturing/AssayService.groovy
r1969 r2049 19 19 import org.dbnp.gdt.RelTime 20 20 import org.dbnp.gdt.TemplateFieldType 21 import java.text.DecimalFormat22 21 import java.text.NumberFormat 23 import org.dbnp.gdt.Template 24 import org.dbnp.gdt.TemplateField 22 import dbnp.authentication.SecUser 25 23 26 24 class AssayService { … … 39 37 * values 40 38 */ 41 def collectAssayTemplateFields(assay, samples = null) throws Exception {39 def collectAssayTemplateFields(assay, samples, SecUser remoteUser = null) throws Exception { 42 40 43 41 def getUsedTemplateFields = { templateEntities -> … … 54 52 55 53 try { 56 moduleMeasurements = requestModuleMeasurementNames(assay )54 moduleMeasurements = requestModuleMeasurementNames(assay, remoteUser) 57 55 } catch (e) { 58 56 moduleError = e.message … … 67 65 'Event Group' : [[name: 'name', comment: 'Name of Event Group', displayName: 'name']], 68 66 'Module Measurement Data': moduleMeasurements, 69 'Module Error':moduleError67 'Module Error': moduleError 70 68 ] 71 69 … … 87 85 * @return The assay data structure as described above. 88 86 */ 89 def collectAssayData(assay, fieldMap, measurementTokens, samples = null ) throws Exception {87 def collectAssayData(assay, fieldMap, measurementTokens, samples = null, SecUser remoteUser = null) throws Exception { 90 88 91 89 def collectFieldValuesForTemplateEntities = { headerFields, templateEntities -> … … 197 195 198 196 try { 199 moduleMeasurementData = requestModuleMeasurements(assay, measurementTokens, samples )197 moduleMeasurementData = requestModuleMeasurements(assay, measurementTokens, samples, remoteUser) 200 198 } catch (e) { 201 199 moduleMeasurementData = ['error' : ['Module error, module not available or unknown assay'] * samples.size() ] … … 205 203 } 206 204 207 [ 208 209 210 211 212 'ModuleError' :moduleError213 205 [ 'Subject Data' : getFieldValues(samples, fieldMap['Subject Data'], 'parentSubject'), 206 'Sampling Event Data' : getFieldValues(samples, fieldMap['Sampling Event Data'], 'parentEvent'), 207 'Sample Data' : getFieldValues(samples, fieldMap['Sample Data']), 208 'Event Group' : eventFieldMap, 209 'Module Measurement Data' : moduleMeasurementData, 210 'Module Error' : moduleError 211 ] 214 212 } 215 213 … … 269 267 * @return 270 268 */ 271 def requestModuleMeasurementNames(assay ) {269 def requestModuleMeasurementNames(assay, SecUser remoteUser = null) { 272 270 273 271 def moduleUrl = assay.module.url … … 278 276 279 277 try { 280 jsonArray = moduleCommunicationService.callModuleMethod(moduleUrl, path, query, "POST" )278 jsonArray = moduleCommunicationService.callModuleMethod(moduleUrl, path, query, "POST", remoteUser) 281 279 } catch (e) { 282 280 throw new Exception("An error occured while trying to get the measurement tokens from the $assay.module.name. \ … … 303 301 * @return 304 302 */ 305 def requestModuleMeasurements(assay, inputMeasurementTokens, samples ) {303 def requestModuleMeasurements(assay, inputMeasurementTokens, samples, SecUser remoteUser = null) { 306 304 307 305 def moduleUrl = assay.module.url … … 320 318 321 319 try { 322 (sampleTokens, measurementTokens, moduleData) = moduleCommunicationService.callModuleMethod(moduleUrl, path, query, "POST" )320 (sampleTokens, measurementTokens, moduleData) = moduleCommunicationService.callModuleMethod(moduleUrl, path, query, "POST", remoteUser) 323 321 } catch (e) { 324 322 throw new Exception("An error occured while trying to get the measurement data from the $assay.module.name. \
Note: See TracChangeset
for help on using the changeset viewer.