@@ -6,17 +6,20 @@ import (
6
6
"github.com/go-playground/validator/v10"
7
7
"github.com/labstack/echo/v4"
8
8
"github.com/lai0xn/squid-tech/internal/services"
9
+ "github.com/lai0xn/squid-tech/pkg/mail"
9
10
"github.com/lai0xn/squid-tech/pkg/types"
10
11
"github.com/lai0xn/squid-tech/pkg/utils"
11
12
)
12
13
13
14
type authHandler struct {
14
15
srv * services.AuthService
16
+ verifier * mail.EmailVerifier
15
17
}
16
18
17
19
func NewAuthHandler () * authHandler {
18
20
return & authHandler {
19
21
srv : services .NewAuthService (),
22
+ verifier : mail .NewVerifier (),
20
23
}
21
24
}
22
25
@@ -71,10 +74,37 @@ func (h *authHandler) Register(c echo.Context) error {
71
74
return c .JSON (http .StatusBadRequest , utils .NewValidationError (e ))
72
75
}
73
76
//TODO: fix gender
74
- if err := h .srv .CreateUser (payload .Name , payload .Email , payload .Password , false ); err != nil {
77
+ user ,err := h .srv .CreateUser (payload .Name , payload .Email , payload .Password , false )
78
+ if err != nil {
75
79
return echo .NewHTTPError (http .StatusBadRequest , err )
76
80
}
77
- return c .JSON (http .StatusOK , types.Response {
78
- "message" : "user created successfully" ,
79
- })
81
+ err = h .verifier .SendVerfication (user .ID ,[]string {user .Email })
82
+ if err != nil {
83
+ return echo .NewHTTPError (http .StatusBadRequest ,err )
84
+ }
85
+ return c .JSON (http .StatusOK ,"user created and verification sent" )
86
+ }
87
+
88
+
89
+
90
+
91
+ // Email verification example
92
+ //
93
+ // @Summary Verification endpoint
94
+ // @Tags auth
95
+ // @Accept json
96
+ // @Produce json
97
+ // @Param id query string true "userid"
98
+ // @Param id otp string true "otp"
99
+ // @Router /auth/verify [post]
100
+ func (h * authHandler ) VerifyUser (c echo.Context ) error {
101
+ id := c .QueryParam ("id" )
102
+ otp := c .QueryParam ("otp" )
103
+ if err := h .verifier .Verify (id ,otp );err != nil {
104
+ return echo .NewHTTPError (http .StatusBadRequest ,err )
105
+ }
106
+ if err := h .srv .ActivateUser (id );err != nil {
107
+ return echo .NewHTTPError (http .StatusBadRequest ,err )
108
+ }
109
+ return c .JSON (http .StatusOK ,"verification successfull" )
80
110
}
0 commit comments