added modify command for upload and form

This commit is contained in:
2023-03-31 14:21:34 +02:00
parent b916fa8fb6
commit 5ec23ce9fd
8 changed files with 225 additions and 6 deletions

View File

@@ -199,7 +199,7 @@ func FormDescribe(c *fiber.Ctx, cfg *cfg.Config, db *Db) error {
}
response, err := db.Get(apicontext, id, common.TypeForm)
if err != nil {
if err != nil || len(response.Forms) == 0 {
return JsonStatus(c, fiber.StatusForbidden,
"No form with that id could be found!")
}
@@ -262,6 +262,19 @@ func FormPage(c *fiber.Ctx, cfg *cfg.Config, db *Db, shallexpire bool) error {
func FormModify(c *fiber.Ctx, cfg *cfg.Config, db *Db) error {
var formdata common.Form
// retrieve the API Context name from the session
apicontext, err := SessionGetApicontext(c)
if err != nil {
return JsonStatus(c, fiber.StatusInternalServerError,
"Unable to initialize session store from context: "+err.Error())
}
id, err := common.Untaint(c.Params("id"), cfg.RegKey)
if err != nil {
return JsonStatus(c, fiber.StatusForbidden,
"Invalid id provided!")
}
// extract form data
if err := c.BodyParser(&formdata); err != nil {
return JsonStatus(c, fiber.StatusInternalServerError,
@@ -281,5 +294,36 @@ func FormModify(c *fiber.Ctx, cfg *cfg.Config, db *Db) error {
return err
}
return nil
// lookup orig entry
response, err := db.Get(apicontext, id, common.TypeForm)
if err != nil || len(response.Forms) == 0 {
return JsonStatus(c, fiber.StatusForbidden,
"No form with that id could be found!")
}
form := response.Forms[0]
// modify fields
if formdata.Expire != "" {
form.Expire = formdata.Expire
}
if formdata.Notify != "" {
form.Notify = formdata.Notify
}
if formdata.Description != "" {
form.Description = formdata.Description
}
// run in foreground because we need the feedback here
if err := db.Insert(id, form); err != nil {
return JsonStatus(c, fiber.StatusForbidden,
"Failed to insert: "+err.Error())
}
res := &common.Response{Forms: []*common.Form{form}}
res.Success = true
res.Code = fiber.StatusOK
return c.Status(fiber.StatusOK).JSON(res)
}