Hermes/cmd/backend/server/handlers/user_change_password.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
},
)
}