source: trunk/grails-app/controllers/nl/tno/massSequencing/FastaController.groovy @ 58

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

Implemented importing of classifications

File size: 2.2 KB
Line 
1package nl.tno.massSequencing
2
3import org.codehaus.groovy.grails.commons.ConfigurationHolder
4import org.hibernate.SessionFactory
5import grails.converters.*;
6
7class FastaController {
8        def fileService
9        def fastaService
10        def sessionFactory
11       
12        def deleteData = { 
13                // load study with id specified by param.id
14                def sequenceData
15               
16                try {
17                        sequenceData = SequenceData.get(params.id as Long)
18                } catch( Exception e ) {}
19
20                if (!sequenceData) {
21                        flash.error = "No sequencedata found with id: $params.id"
22                        redirect( controller: 'study' )
23                        return
24                }
25
26                def entityId
27                def entityType
28               
29                switch( params.entityType ) {
30                        case "run":
31                                entityId = sequenceData.sample.run?.id;
32                                entityType = "run"
33                                break;
34                        case "assay":
35                        default:
36                                entityType = "assay";
37                                entityId = sequenceData.sample.assay.id;
38                                break;
39                }
40                 
41                def numFiles = sequenceData.numFiles();
42                def sample = sequenceData.sample;
43                 
44                // Set flushmode to auto, since otherwise the sequencedata will
45                // not be removed
46                sessionFactory.getCurrentSession().setFlushMode( org.hibernate.FlushMode.AUTO );
47               
48                sample.removeFromSequenceData( sequenceData );
49                sequenceData.delete(flush:true);
50                sample.resetStats();
51                sample.save();
52               
53                flash.message = numFiles + " file" + (numFiles != 1 ? "s have" : " has" ) + " been deleted from this sample"
54
55                redirect( controller: entityType, action: 'show', id: entityId )
56        }
57       
58        protected Assay getAssay(def assayId) {
59                // load assay with id specified by param.id
60                def assay
61                try {
62                        assay = Assay.get(assayId as Long)
63                } catch( Exception e ) {
64                        flash.error = "Incorrect id given: " + assayId
65                        return null
66                }
67
68                if (!assay) {
69                        flash.error = "No assay found with id: " + assayId
70                        return null
71                }
72               
73                if (!assay.study.canRead( session.user ) ) {
74                        flash.error = "You don't have the right authorizaton to access assay " + assay.name
75                        return null
76                }
77               
78                return assay
79        }
80       
81        protected Run getRun(def runId) {
82                // load run with id specified by param.id
83                def run
84                try {
85                        run = Run.get(runId as Long)
86                } catch( Exception e ) {
87                        flash.error = "Incorrect id given: " + runId
88                        return null
89                }
90
91                if (!run) {
92                        flash.error = "No run found with id: " + runId
93                        return null
94                }
95
96                return run
97        }
98}
Note: See TracBrowser for help on using the repository browser.