From bab45af046492cad6423f702d772ade30e0e4a62 Mon Sep 17 00:00:00 2001 From: Hailey Date: Sat, 29 Mar 2025 18:07:36 -0700 Subject: [PATCH] fix response --- server/handle_server_request_email_update.go | 28 +++++++++++++------- server/handle_server_update_email.go | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/server/handle_server_request_email_update.go b/server/handle_server_request_email_update.go index 7728b96..02f405d 100644 --- a/server/handle_server_request_email_update.go +++ b/server/handle_server_request_email_update.go @@ -9,21 +9,29 @@ import ( "github.com/labstack/echo/v4" ) +type ComAtprotoRequestEmailUpdateResponse struct { + TokenRequired bool `json:"tokenRequired"` +} + func (s *Server) handleServerRequestEmailUpdate(e echo.Context) error { urepo := e.Get("repo").(*models.RepoActor) - code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6)) - eat := time.Now().Add(10 * time.Minute).UTC() + if urepo.EmailConfirmedAt != nil { + code := fmt.Sprintf("%s-%s", helpers.RandomVarchar(6), helpers.RandomVarchar(6)) + eat := time.Now().Add(10 * time.Minute).UTC() - if err := s.db.Exec("UPDATE repos SET email_update_code = ?, email_update_code_expires_at = ? WHERE did = ?", code, eat, urepo.Repo.Did).Error; err != nil { - s.logger.Error("error updating repo", "error", err) - return helpers.ServerError(e, nil) - } + if err := s.db.Exec("UPDATE repos SET email_update_code = ?, email_update_code_expires_at = ? WHERE did = ?", code, eat, urepo.Repo.Did).Error; err != nil { + s.logger.Error("error updating repo", "error", err) + return helpers.ServerError(e, nil) + } - if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil { - s.logger.Error("error sending email", "error", err) - return helpers.ServerError(e, nil) + if err := s.sendEmailUpdate(urepo.Email, urepo.Handle, code); err != nil { + s.logger.Error("error sending email", "error", err) + return helpers.ServerError(e, nil) + } } - return e.NoContent(200) + return e.JSON(200, ComAtprotoRequestEmailUpdateResponse{ + TokenRequired: urepo.EmailConfirmedAt != nil, + }) } diff --git a/server/handle_server_update_email.go b/server/handle_server_update_email.go index 5793c36..b7203e5 100644 --- a/server/handle_server_update_email.go +++ b/server/handle_server_update_email.go @@ -40,7 +40,7 @@ func (s *Server) handleServerUpdateEmail(e echo.Context) error { return helpers.InputError(e, to.StringPtr("ExpiredToken")) } - if err := s.db.Exec("UPDATE repos SET email_update_code = NULL, email_update_code_expires_at = NULL, email = ? WHERE did = ?", req.Email, urepo.Repo.Did).Error; err != nil { + if err := s.db.Exec("UPDATE repos SET email_update_code = NULL, email_update_code_expires_at = NULL, email_confirmed_at = NULL, email = ? WHERE did = ?", req.Email, urepo.Repo.Did).Error; err != nil { s.logger.Error("error updating repo", "error", err) return helpers.ServerError(e, nil) } -- 2.51.2