From ec90717ad7c9d92f53f3adc20592a203825362e9 Mon Sep 17 00:00:00 2001 From: William P Date: Thu, 27 Mar 2025 14:06:40 -0400 Subject: [PATCH] implement editing messages --- api/api.go | 1 + api/message.go | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) 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 {