comparison pkg/controllers/srimports.go @ 1228:17131f0f9fcb

Added endpoint to explicitly delete a temp upload.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 19 Nov 2018 18:32:06 +0100
parents 737e1acea1f1
children d842d9d10872
comparison
equal deleted inserted replaced
1227:737e1acea1f1 1228:17131f0f9fcb
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 "github.com/gorilla/mux"
37 ) 38 )
38 39
39 const ( 40 const (
40 maxSoundingResultSize = 25 * 1024 * 1024 41 maxSoundingResultSize = 25 * 1024 * 1024
41 soundingResultName = "soundingresult" 42 soundingResultName = "soundingresult"
191 192
192 code := http.StatusCreated 193 code := http.StatusCreated
193 194
194 // If there are no XYZ data we cant help the user anyway. 195 // If there are no XYZ data we cant help the user anyway.
195 if noXYZ { 196 if noXYZ {
196 code = status.StatusBadRequest 197 code = http.StatusBadRequest
197 if err2 := os.RemoveAll(dir); err2 != nil { 198 if err2 := os.RemoveAll(dir); err2 != nil {
198 log.Printf("error: %v\n", err2) 199 log.Printf("error: %v\n", err2)
199 } 200 }
200 } else if result.Token, err = misc.MakeTempFile(dir); err != nil { 201 } else if result.Token, err = misc.MakeTempFile(dir); err != nil {
201 if err2 := os.RemoveAll(dir); err2 != nil { 202 if err2 := os.RemoveAll(dir); err2 != nil {
210 Code: code, 211 Code: code,
211 Result: &result, 212 Result: &result,
212 } 213 }
213 return 214 return
214 } 215 }
216
217 func deleteSoundingUpload(rw http.ResponseWriter, req *http.Request) {
218 token := mux.Vars(req)["token"]
219 if _, err := hex.DecodeString(token); err != nil {
220 http.Error(rw, "Invalid token", http.StatusBadRequest)
221 return
222 }
223 if err := misc.DeleteTempFile(token); err != nil {
224 http.Error(rw, fmt.Sprintf("error: %v", err), http.StatusInternalServerError)
225 return
226 }
227 result := struct {
228 Message string `json:"message"`
229 }{
230 Message: fmt.Sprintf("Token %s deletes.", token),
231 }
232 SendJSON(rw, http.StatusOK, &result)
233 }