From 66e1756ade4d222980b96f739ff05bed834e5113 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Sat, 7 Jun 2025 02:08:43 +0200 Subject: [PATCH] feat: finish verification handler --- internal/auth/verify.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/internal/auth/verify.go b/internal/auth/verify.go index 0963ed0..13147d0 100644 --- a/internal/auth/verify.go +++ b/internal/auth/verify.go @@ -97,3 +97,30 @@ func (h *AuthHandler) confirmOtp(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) } + +func (h *AuthHandler) finishVerification(w http.ResponseWriter, r *http.Request) { + userId, ok := util.GetRequestUserId(r.Context()) + if !ok { + web.Error(w, "failed to get user id from auth session", http.StatusInternalServerError) + return + } + + user, err := h.repo.FindUserId(r.Context(), uuid.MustParse(userId)) + if err != nil { + web.Error(w, "user with provided id does not exist", http.StatusUnauthorized) + return + } + + if !user.EmailVerified || !user.AvatarVerified { + web.Error(w, "finish other verification steps before final verify", http.StatusBadRequest) + return + } + + if err := h.repo.UserVerifyComplete(r.Context(), user.ID); err != nil { + log.Println("ERR: Failed to update verified on user:", err) + web.Error(w, "failed to verify user", http.StatusInternalServerError) + return + } + + w.WriteHeader(http.StatusOK) +}