add restore password endpoints
This commit is contained in:
parent
8f16fe84f2
commit
b4c1004cf2
36
cmd/backend/server/handlers/user_change_password.go
Normal file
36
cmd/backend/server/handlers/user_change_password.go
Normal file
@ -0,0 +1,36 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"backend/cmd/backend/server/middleware"
|
||||
"backend/internal/core/services"
|
||||
httpserver "backend/internal/http_server"
|
||||
"backend/pkg/logger"
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type inputChangePassword struct {
|
||||
OldPassword string `json:"oldPassword"`
|
||||
NewPassword string `json:"newPassword"`
|
||||
}
|
||||
|
||||
func NewUserChangePasswordHandler(log logger.Logger, userService services.UserService) gin.HandlerFunc {
|
||||
return httpserver.WrapGin(log,
|
||||
func(ctx context.Context, input inputChangePassword) (interface{}, error) {
|
||||
ginCtx, ok := ctx.(*gin.Context)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("can not cast context")
|
||||
}
|
||||
user := middleware.GetUserFromRequest(ginCtx)
|
||||
|
||||
err := userService.ChangePassword(ctx, user.Id, input.OldPassword, input.NewPassword)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
},
|
||||
)
|
||||
}
|
||||
@ -1,12 +1,20 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"backend/internal/core/models"
|
||||
"backend/internal/core/services"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func GetUserFromRequest(c *gin.Context) *models.UserDTO {
|
||||
if user, ok := c.Get("user"); ok {
|
||||
return user.(*models.UserDTO)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewAuthMiddleware(userService services.UserService) gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
token := ctx.GetHeader("X-Auth")
|
||||
|
||||
@ -3,7 +3,6 @@ package server
|
||||
import (
|
||||
"backend/cmd/backend/server/handlers"
|
||||
"backend/cmd/backend/server/middleware"
|
||||
"backend/cmd/backend/server/utils"
|
||||
"backend/internal/core/services"
|
||||
httpserver "backend/internal/http_server"
|
||||
"backend/internal/integrations"
|
||||
@ -49,17 +48,11 @@ func NewServer(opts NewServerOpts) *httpserver.Server {
|
||||
userGroup.POST("/create", handlers.NewUserCreateHandler(opts.Logger, opts.UserService))
|
||||
userGroup.POST("/login", handlers.NewUserLoginHandler(opts.Logger, opts.UserService))
|
||||
userGroup.POST("/send-verify", handlers.NewUserSendVerifyEmailHandler(opts.Logger, opts.UserService))
|
||||
userGroup.POST("/send-restore-password", handlers.NewUserSendRestorePasswordHandler(opts.Logger, opts.UserService))
|
||||
userGroup.POST("/restore-password", handlers.NewUserRestorePasswordHandler(opts.Logger, opts.UserService))
|
||||
|
||||
}
|
||||
|
||||
dummyGroup := v1.Group("/dummy")
|
||||
dummyGroup.Use(middleware.NewAuthMiddleware(opts.UserService))
|
||||
{
|
||||
dummyGroup.GET("", handlers.NewDummyHandler())
|
||||
dummyGroup.POST("/forgot-password", func(c *gin.Context) {
|
||||
user := utils.GetUserFromRequest(c)
|
||||
opts.UserService.SendEmailForgotPassword(c, user.Id)
|
||||
})
|
||||
userGroup.Use(middleware.NewAuthMiddleware(opts.UserService))
|
||||
userGroup.POST("/change-password", handlers.NewUserChangePasswordHandler(opts.Logger, opts.UserService))
|
||||
}
|
||||
|
||||
return httpserver.New(
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"backend/internal/core/models"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func GetUserFromRequest(c *gin.Context) *models.UserDTO {
|
||||
if user, ok := c.Get("user"); ok {
|
||||
return user.(*models.UserDTO)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user