Ignore:
Timestamp:
Apr 7, 2011, 1:24:41 PM (8 years ago)
Author:
robert@…
Message:

Fixed bug in updating samples and improved rest.getQueryableFieldData to return all fields if no fields are given.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/nl/tno/massSequencing/integration/RestController.groovy

    r27 r46  
    154154                def fields = [:];
    155155                entities.unique().each { entity ->
    156                         switch( entity ) {
    157                                 case "Study":
    158                                 case "Assay":
    159                                 case "Sample":
    160                                         fields[ entity ] = [ "# sequences", "Tag name", "Run name" ]
    161                                         break;
    162                                 default:
    163                                         // Do nothing
    164                                         break;
    165                         }
     156                        fields[ entity ] = _getQueryableFields( entity );
    166157                }
    167158               
    168159                render fields as JSON
     160        }
     161       
     162        def _getQueryableFields( entity ) {
     163                switch( entity ) {
     164                        case "Study":
     165                        case "Assay":
     166                        case "Sample":
     167                                return [ "# sequences", "Forward primer", "Mid name", "Oligo number", "Run name" ]
     168                                break;
     169                        default:
     170                                // Do nothing
     171                                break;
     172                }
    169173        }
    170174       
     
    177181         * @param       params.entity   Entity that is searched for
    178182         * @param       params.tokens   One or more tokens of the entities that the data should be returned for
    179          * @param       params.fields   One or more field names of the data to be returned.
     183         * @param       params.fields   One or more field names of the data to be returned. If no fields are given, all fields are returned
    180184         * @return      JSON                    Map with keys being the entity tokens and the values being maps with entries [field] = [value]. Not all
    181185         *                                                      fields and tokens that are asked for have to be returned by the module (e.g. when a specific entity can
     
    199203                        fields = fields.toList();
    200204
     205                if( fields.size() == 0 ) {
     206                        fields = _getQueryableFields( entity );
     207                }
     208               
    201209                // Only search for unique tokens and fields
    202210                tokens = tokens.unique()
     
    313321                                return assaySamples.collect { it.numSequences() }.sum();
    314322                        // Returns the unique tag names
    315                         case "Tag name":
    316                                 return assaySamples.collect { it.tagName }.findAll { it != null }.unique();
     323                        case "Forward primer":
     324                                return assaySamples.collect { it.fwPrimerSeq }.findAll { it != null }.unique();
     325                        case "Mid name":
     326                                return assaySamples.collect { it.fwMidName }.findAll { it != null }.unique();
     327                        case "Oligo number":
     328                                return assaySamples.collect { it.fwOligo }.findAll { it != null }.unique();
    317329                        case "Run name":
    318330                                return assaySamples.collect { it.run?.name }.findAll { it != null }.unique();
Note: See TracChangeset for help on using the changeset viewer.