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
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"backend/internal/core/models"
|
||||||
"backend/internal/core/services"
|
"backend/internal/core/services"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"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 {
|
func NewAuthMiddleware(userService services.UserService) gin.HandlerFunc {
|
||||||
return func(ctx *gin.Context) {
|
return func(ctx *gin.Context) {
|
||||||
token := ctx.GetHeader("X-Auth")
|
token := ctx.GetHeader("X-Auth")
|
||||||
|
|||||||
@ -3,7 +3,6 @@ package server
|
|||||||
import (
|
import (
|
||||||
"backend/cmd/backend/server/handlers"
|
"backend/cmd/backend/server/handlers"
|
||||||
"backend/cmd/backend/server/middleware"
|
"backend/cmd/backend/server/middleware"
|
||||||
"backend/cmd/backend/server/utils"
|
|
||||||
"backend/internal/core/services"
|
"backend/internal/core/services"
|
||||||
httpserver "backend/internal/http_server"
|
httpserver "backend/internal/http_server"
|
||||||
"backend/internal/integrations"
|
"backend/internal/integrations"
|
||||||
@ -49,17 +48,11 @@ func NewServer(opts NewServerOpts) *httpserver.Server {
|
|||||||
userGroup.POST("/create", handlers.NewUserCreateHandler(opts.Logger, opts.UserService))
|
userGroup.POST("/create", handlers.NewUserCreateHandler(opts.Logger, opts.UserService))
|
||||||
userGroup.POST("/login", handlers.NewUserLoginHandler(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-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))
|
||||||
|
|
||||||
}
|
userGroup.Use(middleware.NewAuthMiddleware(opts.UserService))
|
||||||
|
userGroup.POST("/change-password", handlers.NewUserChangePasswordHandler(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)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return httpserver.New(
|
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