diff --git a/internal/database/db.go b/internal/database/db.go index c70f4bf..58d98d2 100644 --- a/internal/database/db.go +++ b/internal/database/db.go @@ -528,9 +528,9 @@ func DeleteEvent(db *sql.DB, id string) error { return err } -// UpdateEvent updates the base currency and exchange rate of an existing event. -func UpdateEvent(db *sql.DB, id, baseCurrency string, exchangeRate float64) error { - _, err := db.Exec("UPDATE events SET base_currency = ?, exchange_rate = ? WHERE id = ?", baseCurrency, exchangeRate, id) +// UpdateEvent updates the name, base currency and exchange rate of an existing event. +func UpdateEvent(db *sql.DB, id, name, baseCurrency string, exchangeRate float64) error { + _, err := db.Exec("UPDATE events SET name = ?, base_currency = ?, exchange_rate = ? WHERE id = ?", name, baseCurrency, exchangeRate, id) if err != nil { log.Printf("ERROR [%s] database: UpdateEvent(%s): %v", time.Now().Format(time.RFC3339), id, err) diff --git a/internal/handlers/events.go b/internal/handlers/events.go index 0611325..02635d6 100644 --- a/internal/handlers/events.go +++ b/internal/handlers/events.go @@ -331,7 +331,7 @@ func (h *EventHandler) EditEvent(w http.ResponseWriter, r *http.Request) { // PUT /months/{mid}/events/{eid} — UpdateEvent // --------------------------------------------------------------------------- -// UpdateEvent updates the event's base currency and exchange rate. +// UpdateEvent updates the event's name, base currency and exchange rate. func (h *EventHandler) UpdateEvent(w http.ResponseWriter, r *http.Request) { monthID := chi.URLParam(r, "mid") eventID := chi.URLParam(r, "eid") @@ -342,6 +342,11 @@ func (h *EventHandler) UpdateEvent(w http.ResponseWriter, r *http.Request) { return } + name := r.FormValue("name") + if name == "" { + name = event.Name + } + baseCurrency := r.FormValue("base_currency") if baseCurrency == "" { baseCurrency = "USD" @@ -358,7 +363,7 @@ func (h *EventHandler) UpdateEvent(w http.ResponseWriter, r *http.Request) { } } - if err := database.UpdateEvent(h.DB, eventID, baseCurrency, exchangeRate); err != nil { + if err := database.UpdateEvent(h.DB, eventID, name, baseCurrency, exchangeRate); err != nil { log.Printf("ERROR [%s] handlers: UpdateEvent: %v", time.Now().Format(time.RFC3339), err) http.Error(w, "Failed to update event", http.StatusInternalServerError) return