package models_train import ( "net/http" "os" "path" . "git.andr3h3nriqu3s.com/andr3/fyp/logic/models/utils" . "git.andr3h3nriqu3s.com/andr3/fyp/logic/utils" ) func handleRest(handle *Handle) { handle.Delete("/models/train/reset", func(w http.ResponseWriter, r *http.Request, c *Context) *Error { if !CheckAuthLevel(1, w, r, c) { return nil } if c.Mode == JSON { panic("handle JSON /models/train/reset") } f, err := MyParseForm(r) if err != nil { // TODO improve response return c.ErrorCode(nil, 400, c.AddMap(nil)) } if !CheckId(f, "id") { // TODO improve response return c.ErrorCode(nil, 400, c.AddMap(nil)) } id := f.Get("id") model, err := GetBaseModel(handle.Db, id) if err == ModelNotFoundError { return c.ErrorCode(nil, http.StatusNotFound, AnyMap{ "NotFoundMessage": "Model not found", "GoBackLink": "/models", }) } else if err != nil { // TODO improve response return c.Error500(err) } if model.Status != FAILED_PREPARING_TRAINING && model.Status != FAILED_TRAINING { // TODO improve response return c.ErrorCode(nil, 400, c.AddMap(nil)) } os.RemoveAll(path.Join("savedData", model.Id, "defs")) _, err = handle.Db.Exec("delete from model_definition where model_id=$1", model.Id) if err != nil { // TODO improve response return c.Error500(err) } ModelUpdateStatus(c, model.Id, CONFIRM_PRE_TRAINING) Redirect("/models/edit?id=" + model.Id, c.Mode, w, r) return nil }) }