source: trunk/grails-app/controllers/nl/tno/metagenomics/integration/SynchronizeController.groovy @ 27

Last change on this file since 27 was 27, checked in by robert@…, 9 years ago

Renamed module to massSequencing

File size: 1.4 KB
Line 
1package nl.tno.massSequencing.integration
2
3
4class SynchronizeController {
5        def synchronizationService
6       
7        // Show a 'waiting' page and perform a full synchronization afterwards
8    def full = { 
9                def redirectUrl = params.redirect;
10               
11                if( !redirectUrl )
12                        redirectUrl = g.createLink( controller: 'run' );
13               
14                // Set the date of last synchronization to now. Doing it here, prevents the
15                // application of entering an infinite loop if an error occurs:
16                //              /study                  -> redirect to synchronization
17                //              /synchronize    -> fails with an error, redirects to /study
18                //                      etc...
19                // synchronizationService.lastFullSynchronization = new Date();
20                [ url: redirectUrl ]
21        }
22       
23        def perform = {
24                try {
25                        if( !session.user ) {
26                                throw new Exception( "No user is logged in" );
27                        }
28                       
29                        synchronizationService.sessionToken = session.sessionToken
30                        synchronizationService.user = session.user
31       
32                        synchronizationService.fullSynchronization();
33                        render "";
34                } catch( Exception e ) {
35                        // Catch all exceptions, show them to the user (by rendering a text message) and print a stacktrace
36                        def message = e.getMessage();
37                        if( !message || message == 'null' )
38                                message = 'unknown error';
39               
40                        // Show errors in log file             
41                        log.error "Exception during full synchronization: " + message
42                        e.printStackTrace()
43                       
44                        // Give the user a nice error message
45                        response.status = 500;
46                        render "An error occurred during synchronization (" + e.class?.name + "): " + message;
47                }
48        }
49}
Note: See TracBrowser for help on using the repository browser.