From 0f0eb39b37382ada669ba8b683a4961d02ca323f Mon Sep 17 00:00:00 2001 From: Mikhail Romanko Date: Fri, 16 Oct 2026 12:19:17 +0300 Subject: [PATCH] Fix avatar reupload --- internal/web/profile.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/web/profile.go b/internal/web/profile.go index d421efc..c2561db 100644 --- a/internal/web/profile.go +++ b/internal/web/profile.go @@ -66,10 +66,19 @@ func (s *WebService) HandleProfileEdit(w http.ResponseWriter, r *http.Request) { s.render(w, r, "profile/edit.html", data) return } - if err := s.users.CreateAvatar(r.Context(), data.User.Id, bytes); err != nil { - data.Error = "Could not save avatar" - s.render(w, r, "profile/edit.html", data) - return + // Check if the user already has an avatar; if so update, otherwise insert. + if _, err := s.users.GetAvatar(r.Context(), data.User.Id); err == nil { + if err := s.users.UpdateAvatar(r.Context(), data.User.Id, bytes); err != nil { + data.Error = "Could not save avatar" + s.render(w, r, "profile/edit.html", data) + return + } + } else { + if err := s.users.CreateAvatar(r.Context(), data.User.Id, bytes); err != nil { + data.Error = "Could not save avatar" + s.render(w, r, "profile/edit.html", data) + return + } } }