Ignore:
Timestamp:
Jan 17, 2011, 3:49:20 PM (9 years ago)
Author:
robert@…
Message:

Implemented trash in order to prevent deletion of data

Location:
trunk/grails-app/services/nl/tno/metagenomics
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/nl/tno/metagenomics/FastaService.groovy

    r3 r4  
    131131
    132132                        // Best matching sample
     133                        // TODO: Implement method to search for sample matches in a provided excel sheet
    133134                        def sampleIdx = fuzzySearchService.mostSimilarWithIndex( matchWith, samples.sample.name );
    134135                        def assaySample = null
     
    316317                                                lookingForFirstQualityScores = false;
    317318
    318                                                 quality = updateQuality( quality, line );
     319                                                // Don't compute average quality because it takes too much time
     320                                                //quality = updateQuality( quality, line );
    319321                                        }
    320322                                } else {
    321                                         quality = updateQuality( quality, line );
     323                                        // Don't compute average quality because it takes too much time
     324                                        //quality = updateQuality( quality, line );
    322325                                }
    323326                               
  • trunk/grails-app/services/nl/tno/metagenomics/integration/GscfService.groovy

    r3 r4  
    213213         * @return ArrayList
    214214         */
    215         public HashMap getAuthorizationLevel(String sessionToken, String studyToken) {
     215        public HashMap getAuthorizationLevel(String sessionToken, String studyToken) throws ResourceNotFoundException {
    216216                ArrayList list
    217217
  • trunk/grails-app/services/nl/tno/metagenomics/integration/SynchronizationService.groovy

    r3 r4  
    77class SynchronizationService {
    88        def gscfService
     9        def trashService
    910
    1011        String sessionToken = ""        // Session token to use for communication
     
    8182                        return
    8283
    83                 def previousEager = eager
    84                 eager = true
    85                 synchronizeStudies();
    86                 eager = previousEager
     84                def previousEager = this.eager
     85                this.eager = true
     86                this.synchronizeStudies();
     87                this.eager = previousEager
    8788               
    8889                SynchronizationService.lastFullSynchronization = new Date();
     
    9596        public ArrayList<Study> synchronizeStudies() {
    9697                if( !performSynchronization() )
    97                         return Study.findAll()
     98                        return Study.list()
    9899
    99100                // When eager fetching is enabled, ask for all studies, otherwise only ask for studies marked dirty
     
    102103                def studies
    103104                if( eager ) {
    104                         studies = Study.findAll()
     105                        studies = Study.list().findAll { !it.trashcan };
     106                        log.trace "Eager synchronization: " + studies.size();
    105107                } else {
    106108                        studies = Study.findAllWhere( [isDirty: true] );
    107                 }
    108 
     109                        log.trace "Default synchronization: " + studies.size()
     110                }
     111               
    109112                // Perform no synchronization if no studies have to be synchronized
    110113                // Perform synchronization on only one study directly, because otherwise
     
    235238                        return null
    236239
     240                // Trashcan should never be synchronized
     241                if( study.trashcan )
     242                        return study
     243                       
    237244                // If the study hasn't changed, don't update anything
    238245                if( !eager && !study.isDirty )
     
    249256                } catch( ResourceNotFoundException e ) {
    250257                        // Study can't be found within GSCF.
    251                         // TODO: How to handle the data that remains
    252                         study.delete()
     258                        trashService.moveToTrash( study );
    253259                        return null
    254260                } catch( Exception e ) { // All other exceptions
     
    335341                        for( int i = numStudyAssays - 1; i >= 0; i-- ) {
    336342                                def existingAssay = studyAssays[i];
    337 
    338                                 existingAssay.delete()
    339                                 study.removeFromAssays( existingAssay );
     343                               
     344                                // Move data to trash
     345                                trashService.moveToTrash( existingAssay );
    340346                        }
    341347
     
    408414
    409415                                // The assay has been removed
    410                                 // TODO: What to do with the data associated with this Assay (e.g. sequences)? See also GSCF ticket #255
    411                                 existingAssay.delete();
    412                                 study.removeFromAssays( existingAssay );
     416                                trashService.moveToTrash( existingAssay );
    413417                        }
    414418                }
     
    446450                } catch( ResourceNotFoundException e ) {
    447451                        // Study has been deleted, remove all authorization on that study
    448                         // TODO: handle deletion
    449452                        log.trace( "Study " + study.studyToken + " has been deleted. Remove all authorization on that study")
    450 
    451                         Auth.findAllByStudy( study ).each {
    452                                 it.delete()
    453                         }
     453                        trashService.moveToTrash( study );
    454454
    455455                        return null
     
    501501                } catch( ResourceNotFoundException e ) {
    502502                        // Assay can't be found within GSCF.
    503                         // TODO: How to handle the data that remains
    504                         assay.delete()
     503                        trashService.moveToTrash( assay );
    505504                        return null
    506505                } catch( Exception e ) { // All other exceptions are thrown
     
    511510                }
    512511
    513                 // If new assay is empty, something went wrong
     512                // If new assay is empty, this means that the assay does exist, but now belongs to another module. Remove it from our system
    514513                if( newAssay.size() == 0 ) {
    515                         throw new Exception( "No data returned for assay " + assay.assayToken + " but no error has occurred either. Please contact your system administrator" );
     514                        log.info( "No data is returned by GSCF for assay  " + assay.assayToken + "; probably the assay is connected to another module." )
     515                        trashService.moveToTrash( assay );
    516516                        return null;
    517517                }
     
    577577                } catch( ResourceNotFoundException e ) {
    578578                        // Assay can't be found within GSCF. Samples will be removed
    579                         // TODO: How to handle the data that remains
    580                         assay.removeAssaySamples();
     579                        trashService.moveToTrash( assay );
    581580
    582581                        return null
     
    593592                        return []
    594593                }
    595 
    596594
    597595                synchronizeAssaySamples( assay, newSamples );
     
    678676
    679677                                        // The sample has been removed
    680                                         // TODO: What to do with the data associated with this AssaySample (e.g. sequences)? See also GSCF ticket #255
    681                                         existingSample.delete();
    682                                         assay.removeFromAssaySamples( existingSample );
     678                                        trashService.moveToTrash( existingSample.sample );
    683679                                }
    684680                        }
Note: See TracChangeset for help on using the changeset viewer.