-
Notifications
You must be signed in to change notification settings - Fork 85
/
UrlMappings.groovy
146 lines (125 loc) · 7.04 KB
/
UrlMappings.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?" {
constraints {
// apply constraints here
}
}
//known bug for export plugin because grails is convention over configuration
// https://stackoverflow.com/questions/22882691/grails-2-3-x-get-the-value-of-url-parameters
"/$controller/$action?/$id?" {
constraints {
// apply constraints here
action(validator: { return it == 'export'})
}
}
"/"(redirect: '/annotator/index')
"500"(view: '/error')
"/menu"(view: '/menu')
"/${clientToken}/version.jsp"(controller: 'annotator', view: "version")
"/about"(controller: 'annotator', view: "about")
"/${clientToken}/about"(controller: 'annotator', view: "about")
"/track/nclist/${organismString}/${trackName}/${sequence}:${fmin}..${fmax}.json"(controller: "track", action: "nclist")
"/track/nclist/${organismString}/${trackName}/?loc=${sequence}:${fmin}..${fmax}"(controller: "track", action: "nclist")
// "/trackForName/${organismString}/${trackName}/${sequence}/${featureName}.json"(controller: "track", action: "jsonName")
"/track/${organismString}/${trackName}/${sequence}/${featureName}.${type}"(controller: "track", action: "featuresByName",[params:params])
"/track/${organismString}/${trackName}/${sequence}:${fmin}..${fmax}.${type}"(controller: "track", action: "featuresByLocation",[params:params])
"/track/${organismString}/${trackName}/?loc=${sequence}:${fmin}..${fmax}.${type}"(controller: "track", action: "featuresByLocation",[params:params])
"/track/list/${organismName}"(controller: "track", action: "getTracks",[params:params])
"/track/cache/clear/${organismName}/${trackName}"(controller: "track", action: "clearTrackCache")
"/track/cache/clear/${organismName}"(controller: "track", action: "clearOrganismCache")
"/vcf/${organismString}/${trackName}/${sequence}:${fmin}..${fmax}.${type}"(controller: "vcf", action: "featuresByLocation",[params:params])
"/sequence/${organismString}/?loc=${sequenceName}:${fmin}..${fmax}"(controller: "sequence", action: "sequenceByLocation",[params:params])
"/sequence/${organismString}/${sequenceName}:${fmin}..${fmax}"(controller: "sequence", action: "sequenceByLocation",[params:params])
"/sequence/${organismString}/${sequenceName}/${featureName}.${type}"(controller: "sequence", action: "sequenceByName",[params:params])
"/sequence/cache/clear/${organismName}/${sequenceName}"(controller: "sequence", action: "clearSequenceCache")
"/sequence/cache/clear/${organismName}"(controller: "sequence", action: "clearOrganismCache")
// TODO: remove if we merge with the JSON
"/track/biolink/${organismString}/${trackName}/${sequence}:${fmin}..${fmax}.biolink"(controller: "track", action: "biolink")
"/track/biolink/${organismString}/${trackName}/?loc=${sequence}:${fmin}..${fmax}"(controller: "track", action: "biolink")
// set this routing here
"/jbrowse/"(controller: "jbrowse", action: "indexRouter", params:params)
"/${clientToken}/jbrowse/"(controller: "jbrowse", action: "indexRouter", params:params)
"/${clientToken}/jbrowse/index.html"(controller: "jbrowse", action: "indexRouter", params:params)
"/${clientToken}/jbrowse/${path}**" {
controller= "jbrowse"
action= "passthrough"
prefix= "jbrowse"
// permanent = true
}
"/${clientToken}/stomp/${path}**" {
controller= "jbrowse"
action= "passthrough"
prefix= "stomp"
// permanent = true
}
"/${clientToken}/jbrowse/data/${path}"(controller: "jbrowse", action: "data")
"/${clientToken}/jbrowse/data/${path}**"(controller: "jbrowse", action: "data")
"/${clientToken}/jbrowse/data/trackList.json"(controller:"jbrowse", action: "trackList")
"/jbrowse/data/${path}"(controller: "jbrowse", action: "data")
"/jbrowse/data/${path}**"(controller: "jbrowse", action: "data")
"/jbrowse/data/trackList.json"(controller:"jbrowse", action: "trackList")
"/${clientToken}/AnnotationEditorService"(controller:"annotationEditor",action: "handleOperation",params:params)
"/Login"(controller:"login",action: "handleOperation",params:params)
"/${clientToken}/Login"(controller:"login",action: "handleOperation",params:params)
"/${clientToken}/sequence/lookupSequenceByNameAndOrganism"(controller:"sequence",action: "lookupSequenceByNameAndOrganism", params:params)
"/proxy/request/${url}"(controller:"proxy", action: "request")
"/${clientToken}/proxy/request/${url}"(controller:"proxy", action: "request")
"/ProxyService"(controller:"ncbiProxyService",action: "index",params:params)
"/${clientToken}/ProxyService"(controller:"ncbiProxyService",action: "index",params:params)
"/IOService"(controller:"IOService",action: "handleOperation",params:params)
"/${clientToken}/IOService"(controller:"IOService",action: "handleOperation",params:params)
"/IOService/download"(controller:"IOService",action: "download", params:params)
"/${clientToken}/IOService/download"(controller:"IOService",action: "download", params:params)
"/jbrowse/web_services/api"(controller:"annotationEditor",action: "web_services", params:params)
"/jbrowse/web_services/api"(controller:"webServices",action: "index", params:params)
"/${clientToken}/jbrowse/web_services/api"(controller:"webServices",action: "index", params:params)
// if all else fails
// TODO: pass all of these into the same function and remap from there
"/${clientToken}/${path}**.bw" {
controller= "jbrowse"
action= "data"
fileType = "bw"
}
"/${clientToken}/${path}**.bai" {
controller= "jbrowse"
action= "data"
fileType = "bai"
}
"/${clientToken}/${path}**.bam" {
controller= "jbrowse"
action= "data"
fileType = "bam"
}
// "/${clientToken}/${path}**.conf" {
// controller= "jbrowse"
// action= "data"
// fileType = "conf"
// }
"/${clientToken}/${path}**.gtf" {
controller= "jbrowse"
action= "data"
fileType = "gtf"
}
"/${clientToken}/${path}**.vcf.gz.tbi" {
controller= "jbrowse"
action= "data"
fileType = "vcf.gz.tbi"
}
"/${clientToken}/${path}**.vcf.gz" {
controller= "jbrowse"
action= "data"
fileType = "vcf.gz"
}
"/${clientToken}/${path}**.gff3" {
controller= "jbrowse"
action= "data"
fileType = "gff3"
}
"/${clientToken}/${path}**.gff" {
controller= "jbrowse"
action= "data"
fileType = "gff"
}
}
}