Mercurial > gemma
comparison pkg/controllers/srimports.go @ 4244:4394daeea96a json-handler-middleware
Moved JSONHandler into middleware package.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 22 Aug 2019 11:26:48 +0200 |
parents | d776110b4db0 |
children | 6237e6165041 |
comparison
equal
deleted
inserted
replaced
4243:d776110b4db0 | 4244:4394daeea96a |
---|---|
32 "gemma.intevation.de/gemma/pkg/common" | 32 "gemma.intevation.de/gemma/pkg/common" |
33 "gemma.intevation.de/gemma/pkg/config" | 33 "gemma.intevation.de/gemma/pkg/config" |
34 "gemma.intevation.de/gemma/pkg/imports" | 34 "gemma.intevation.de/gemma/pkg/imports" |
35 "gemma.intevation.de/gemma/pkg/misc" | 35 "gemma.intevation.de/gemma/pkg/misc" |
36 "gemma.intevation.de/gemma/pkg/models" | 36 "gemma.intevation.de/gemma/pkg/models" |
37 | |
38 mw "gemma.intevation.de/gemma/pkg/middleware" | |
37 ) | 39 ) |
38 | 40 |
39 const ( | 41 const ( |
40 soundingResultName = "soundingresult" | 42 soundingResultName = "soundingresult" |
41 maxSoundingResultSize = 25 * 1024 * 1024 | 43 maxSoundingResultSize = 25 * 1024 * 1024 |
174 result := struct { | 176 result := struct { |
175 ID int64 `json:"id"` | 177 ID int64 `json:"id"` |
176 }{ | 178 }{ |
177 ID: jobID, | 179 ID: jobID, |
178 } | 180 } |
179 SendJSON(rw, http.StatusCreated, &result) | 181 mw.SendJSON(rw, http.StatusCreated, &result) |
180 } | 182 } |
181 | 183 |
182 func loadMeta(f *zip.File) (*models.SoundingResultMeta, error) { | 184 func loadMeta(f *zip.File) (*models.SoundingResultMeta, error) { |
183 r, err := f.Open() | 185 r, err := f.Open() |
184 if err != nil { | 186 if err != nil { |
187 defer r.Close() | 189 defer r.Close() |
188 var m models.SoundingResultMeta | 190 var m models.SoundingResultMeta |
189 return &m, m.Decode(r) | 191 return &m, m.Decode(r) |
190 } | 192 } |
191 | 193 |
192 func uploadSoundingResult(req *http.Request) (jr JSONResult, err error) { | 194 func uploadSoundingResult(req *http.Request) (jr mw.JSONResult, err error) { |
193 | 195 |
194 var dir string | 196 var dir string |
195 if dir, err = misc.StoreUploadedFile( | 197 if dir, err = misc.StoreUploadedFile( |
196 req, | 198 req, |
197 soundingResultName, | 199 soundingResultName, |
241 } else { | 243 } else { |
242 if meta, err := loadMeta(mj); err != nil { | 244 if meta, err := loadMeta(mj); err != nil { |
243 messages = append(messages, | 245 messages = append(messages, |
244 fmt.Sprintf("'meta.json' found but invalid: %v", err)) | 246 fmt.Sprintf("'meta.json' found but invalid: %v", err)) |
245 } else { | 247 } else { |
246 errs := meta.Validate(req.Context(), JSONConn(req)) | 248 errs := meta.Validate(req.Context(), mw.JSONConn(req)) |
247 for _, err := range errs { | 249 for _, err := range errs { |
248 messages = append(messages, | 250 messages = append(messages, |
249 fmt.Sprintf("invalid 'meta.json': %v", err)) | 251 fmt.Sprintf("invalid 'meta.json': %v", err)) |
250 } | 252 } |
251 result.Meta = meta | 253 result.Meta = meta |
272 return | 274 return |
273 } | 275 } |
274 | 276 |
275 result.Messages = messages | 277 result.Messages = messages |
276 | 278 |
277 jr = JSONResult{ | 279 jr = mw.JSONResult{ |
278 Code: code, | 280 Code: code, |
279 Result: &result, | 281 Result: &result, |
280 } | 282 } |
281 return | 283 return |
282 } | 284 } |
294 result := struct { | 296 result := struct { |
295 Message string `json:"message"` | 297 Message string `json:"message"` |
296 }{ | 298 }{ |
297 Message: fmt.Sprintf("Token %s deleted.", token), | 299 Message: fmt.Sprintf("Token %s deleted.", token), |
298 } | 300 } |
299 SendJSON(rw, http.StatusOK, &result) | 301 mw.SendJSON(rw, http.StatusOK, &result) |
300 } | 302 } |