diff --git a/api/api.go b/api/api.go index afc25f3..958fbf4 100644 --- a/api/api.go +++ b/api/api.go @@ -42,6 +42,7 @@ func Start() { r.Use(MessageCtx) // Load message r.Get("/", GetMessage) r.Delete("/", DeleteMessage) + r.Post("/edit", EditMessage) }) r.Post("/new", NewMessage) }) diff --git a/api/message.go b/api/message.go index 9c0642a..4daf216 100644 --- a/api/message.go +++ b/api/message.go @@ -48,6 +48,29 @@ func GetMessage(w http.ResponseWriter, r *http.Request) { } +func EditMessage(w http.ResponseWriter, r *http.Request) { + message, ok := r.Context().Value(messageKey{}).(*Message) + if !ok || message == nil { + render.Render(w, r, ErrNotFound) + return + } + err := r.ParseMultipartForm(64 << 10) + if err != nil { + http.Error(w, "Unable to parse form", http.StatusBadRequest) + return + } + body := r.FormValue("body") + if body == "" { + http.Error(w, "Message body cannot be empty", http.StatusBadRequest) + return + } + message.Body = body + dbDeleteMessage(message.ID) + err = dbAddMessage(message) + if err != nil { + } +} + func DeleteMessage(w http.ResponseWriter, r *http.Request) { message, ok := r.Context().Value(messageKey{}).(*Message) if !ok || message == nil {