diff --git a/cmd/backend/server/handlers/user_verify_handler.go b/cmd/backend/server/handlers/user_verify_handler.go
index 926ff83..b6a6163 100644
--- a/cmd/backend/server/handlers/user_verify_handler.go
+++ b/cmd/backend/server/handlers/user_verify_handler.go
@@ -4,48 +4,68 @@ import (
"backend/internal/core/services"
"backend/pkg/logger"
+ "html/template"
+
"github.com/gin-gonic/gin"
)
-type A struct {
+type HtmlTemplate struct {
+ TabTitle string
Title string
Text string
Link string
LinkText string
}
-func NewUserVerifyEmailHandler(log logger.Logger, userService services.UserService) gin.HandlerFunc {
- htmlOk := `
-
-
- Verify Email
-
-
- Email successfuly verified
-
-
- `
+const htmlTemplate = `
+
+
+ {{.TabTitle}}
+
+
+ {{if .Title}}
+ {{.Title}}
+ {{end}}
- htmlNotOk := `
- Verify Email
- Email was not verified
-
- `
+ {{.Text}}
+
+ {{if .Link}}
+ {{.LinkText}}
+ {{end}}
+
+
+`
+
+func NewUserVerifyEmailHandler(log logger.Logger, userService services.UserService) gin.HandlerFunc {
+ template, err := template.New("verify-email").Parse(htmlTemplate)
+ if err != nil {
+ log.Fatal().Err(err).Msg("Error parsing template")
+ }
return func(c *gin.Context) {
+ tmp := HtmlTemplate{
+ TabTitle: "Verify Email",
+ Text: "Error verifying email",
+ }
+
token, ok := c.GetQuery("token")
if !ok || token == "" {
- c.Data(400, "text/html", []byte(htmlNotOk))
+ log.Error().Err(err).Msg("No token in query param")
+ template.Execute(c.Writer, tmp)
+ c.Status(400)
return
}
err := userService.VerifyEmail(c, token)
if err != nil {
log.Error().Err(err).Msg("Error verifying email")
- c.Data(400, "text/html", []byte(htmlNotOk))
+ template.Execute(c.Writer, tmp)
+ c.Status(400)
return
}
- c.Data(200, "text/html", []byte(htmlOk))
+ tmp.Text = "Email successfully verified"
+ template.Execute(c.Writer, tmp)
+ c.Status(200)
}
}