chore(deps): remove dependencies from handler package

This commit is contained in:
2024-12-01 21:50:22 +01:00
parent 48ec7b64ac
commit 7c67720621
9 changed files with 326 additions and 222 deletions

View File

@@ -7,9 +7,9 @@ import (
"me-fit/types"
"me-fit/utils"
"database/sql"
"errors"
"net/http"
"net/url"
"time"
)
@@ -18,14 +18,12 @@ type HandlerAuth interface {
}
type HandlerAuthImpl struct {
db *sql.DB
service service.AuthService
serverSettings *types.ServerSettings
}
func NewHandlerAuth(db *sql.DB, service service.AuthService, serverSettings *types.ServerSettings) HandlerAuth {
func NewHandlerAuth(service service.AuthService, serverSettings *types.ServerSettings) HandlerAuth {
return HandlerAuthImpl{
db: db,
service: service,
serverSettings: serverSettings,
}
@@ -37,7 +35,7 @@ func (handler HandlerAuthImpl) Handle(router *http.ServeMux) {
router.Handle("/auth/signup", handler.handleSignUpPage())
router.Handle("/auth/verify", handler.handleSignUpVerifyPage()) // Hint for the user to verify their email
router.Handle("/auth/delete-account", handler.handleDeleteAccountPage())
router.Handle("/auth/verify-email", service.HandleSignUpVerifyResponsePage(handler.db)) // The link contained in the email
router.Handle("/auth/verify-email", handler.HandleSignUpVerifyResponsePage()) // The link contained in the email
router.Handle("/auth/change-password", handler.handleChangePasswordPage())
router.Handle("/auth/reset-password", handler.handleResetPasswordPage())
router.Handle("/api/auth/signup", handler.handleSignUp())
@@ -46,8 +44,8 @@ func (handler HandlerAuthImpl) Handle(router *http.ServeMux) {
router.Handle("/api/auth/delete-account", handler.HandleDeleteAccountComp())
router.Handle("/api/auth/verify-resend", handler.HandleVerifyResendComp())
router.Handle("/api/auth/change-password", handler.HandleChangePasswordComp())
router.Handle("/api/auth/reset-password", service.HandleResetPasswordComp(handler.db, handler.serverSettings))
router.Handle("/api/auth/reset-password-actual", service.HandleActualResetPasswordComp(handler.db))
router.Handle("/api/auth/reset-password", handler.HandleForgotPasswordComp())
router.Handle("/api/auth/reset-password-actual", handler.HandleForgotPasswordResponseComp())
}
var (
@@ -356,3 +354,63 @@ func (handler HandlerAuthImpl) HandleChangePasswordComp() http.HandlerFunc {
utils.TriggerToast(w, r, "success", "Password changed")
}
}
func (handler HandlerAuthImpl) HandleSignUpVerifyResponsePage() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
token := r.URL.Query().Get("token")
err := handler.service.VerifyUserEmail(token)
if err != nil {
utils.DoRedirect(w, r, "/auth/signin")
} else {
utils.DoRedirect(w, r, "/")
}
}
}
func (handler HandlerAuthImpl) HandleForgotPasswordComp() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
email := r.FormValue("email")
if email == "" {
utils.TriggerToast(w, r, "error", "Please enter an email")
return
}
err := handler.service.ForgotPassword(email)
if err != nil {
utils.TriggerToast(w, r, "error", "Internal Server Error")
} else {
utils.TriggerToast(w, r, "info", "If the email exists, an email has been sent")
}
}
}
func (handler HandlerAuthImpl) HandleForgotPasswordResponseComp() http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
pageUrl, err := url.Parse(r.Header.Get("HX-Current-URL"))
if err != nil {
utils.LogError("Could not get current URL", err)
utils.TriggerToast(w, r, "error", "Internal Server Error")
return
}
token := pageUrl.Query().Get("token")
if token == "" {
utils.TriggerToast(w, r, "error", "No token")
return
}
newPass := r.FormValue("new-password")
err = handler.service.ForgotPasswordResponse(token, newPass)
if err != nil {
utils.TriggerToast(w, r, "error", err.Error())
} else {
utils.TriggerToast(w, r, "success", "Password changed")
}
}
}