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 { var dat struct { Id string `json:"id"` } if err := c.ToJSON(r, &dat); err != nil { return err; } model, err := GetBaseModel(c.Db, dat.Id) if err == ModelNotFoundError { return c.JsonBadRequest("Model not found"); } else if err != nil { // TODO improve response return c.Error500(err) } if model.Status != FAILED_PREPARING_TRAINING && model.Status != FAILED_TRAINING { return c.JsonBadRequest("Model is not in status that be reset") } os.RemoveAll(path.Join("savedData", model.Id, "defs")) _, err = c.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) return c.SendJSON(model.Id) } 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 }) }