37 lines
868 B
Go
37 lines
868 B
Go
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
|
|
},
|
|
)
|
|
}
|