15
15
16
16
package au.org.ala.spatial
17
17
18
+ import au.ala.org.ws.security.RequireApiKey
18
19
import au.org.ala.web.AuthService
19
20
import grails.converters.JSON
20
21
@@ -41,6 +42,7 @@ class WorkflowController {
41
42
* @param id
42
43
* @return
43
44
*/
45
+ @RequireApiKey
44
46
def save (Long id ) {
45
47
String user_id = authService. getUserId()
46
48
def data = request. JSON
@@ -49,57 +51,25 @@ class WorkflowController {
49
51
def description = data[' description' ]?. toString()
50
52
def metadata = data[' metadata' ]?. toString()
51
53
52
- def header
53
-
54
- String errorMsg
55
- if (" true" . equalsIgnoreCase(data[' doi' ]?. toString())) {
56
- // test for minimum data for a DOI
57
- errorMsg = getErrorForDoi(data)
58
-
59
- if (! errorMsg) {
60
- // analysis_id is used to hold the minted value. This makes it readonly.
61
- header = userDataService. put(user_id, RECORD_TYPE , description, metadata, isPublic, null )
62
- if (header?. ud_header_id) {
63
- userDataService. update(header. ud_header_id, user_id, RECORD_TYPE , description, metadata, isPublic, header. ud_header_id. toString())
64
- }
65
- }
66
- } else {
67
- header = userDataService. put(user_id, RECORD_TYPE , description, metadata, isPublic, null )
68
- }
69
-
70
- header = mapping(header)
54
+ def header = mapping(userDataService. put(user_id, RECORD_TYPE , description, metadata, isPublic, null ))
71
55
72
56
def result
73
- if (errorMsg) {
74
- result = false
75
- def map = [successful : result, message : errorMsg]
76
- render map as JSON
77
- } else if (header) {
57
+ if (header) {
78
58
result = true
79
59
def map = [successful : result, data : header]
80
60
render map as JSON
81
61
} else {
82
62
result = false
83
- errorMsg = " Failed to save workflow"
84
- def map = [successful : result, message : errorMsg]
63
+ def map = [successful : result, message : " Failed to save workflow" ]
85
64
render map as JSON
86
65
}
87
66
}
88
67
89
- def doi (String id ) {
90
- List list = userDataService. searchDescAndTypeOr(null , RECORD_TYPE , null , null , id, 0 , 1 )
91
-
92
- if (list. size() > 0 ) {
93
- show(list. get(0 ). ud_header_id)
94
- } else {
95
- render status : HttpURLConnection . HTTP_NOT_FOUND
96
- }
97
- }
98
-
68
+ @RequireApiKey
99
69
def show (Long id ) {
100
70
String user_id = authService. getUserId()
101
71
102
- def item = userDataService . get(id)
72
+ def item = UDHeader . get(id)
103
73
104
74
if (! item) {
105
75
render status : 404
@@ -128,10 +98,11 @@ class WorkflowController {
128
98
}
129
99
}
130
100
101
+ @RequireApiKey
131
102
def delete (Long id ) {
132
103
String user_id = authService. getUserId()
133
104
134
- def metadata = userDataService . get(id)
105
+ def metadata = UDHeader . get(id)
135
106
136
107
// check authorisation and that it is not minted (no analysis_id)
137
108
if ((metadata. user_id == user_id ||
@@ -148,6 +119,7 @@ class WorkflowController {
148
119
}
149
120
}
150
121
122
+ @RequireApiKey
151
123
def search () {
152
124
String user_id = authService. getUserId()
153
125
@@ -161,10 +133,6 @@ class WorkflowController {
161
133
render formattedList as JSON
162
134
}
163
135
164
- private def getErrorForDoi (data ) {
165
- return " "
166
- }
167
-
168
136
private def mapping (header ) {
169
137
return [id : header. ud_header_id, mintId : header. analysis_id, name : header. description,
170
138
userId : header. user_id, isPrivate : ! PUBLIC . equalsIgnoreCase(header. data_path),
0 commit comments