70 lines
2.0 KiB
Go
70 lines
2.0 KiB
Go
package handler
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.logidex.ru/fakz9/logidex-id/internal/api/auth/service"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
type AuthHandler struct {
|
|
service service.AuthService
|
|
}
|
|
|
|
func (h AuthHandler) PostAuthOtpRequest(ctx context.Context, request PostAuthOtpRequestRequestObject) (PostAuthOtpRequestResponseObject, error) {
|
|
err := h.service.OtpRequest(ctx, request.Body.PhoneNumber)
|
|
if err != nil {
|
|
return PostAuthOtpRequest400JSONResponse{
|
|
Message: err.Error(),
|
|
Ok: false,
|
|
}, nil
|
|
}
|
|
return PostAuthOtpRequest200JSONResponse{
|
|
Message: "OTP request successful",
|
|
Ok: true,
|
|
}, nil
|
|
}
|
|
|
|
func (h AuthHandler) PostAuthOtpVerify(ctx context.Context, request PostAuthOtpVerifyRequestObject) (PostAuthOtpVerifyResponseObject, error) {
|
|
redirectUrl, err := h.service.OtpVerify(ctx, request.Body.PhoneNumber, request.Body.Otp, request.Body.LoginChallenge)
|
|
if err != nil {
|
|
return PostAuthOtpVerify400JSONResponse{
|
|
Message: err.Error(),
|
|
Ok: false,
|
|
RedirectUrl: "",
|
|
}, nil
|
|
}
|
|
return PostAuthOtpVerify200JSONResponse{
|
|
Message: "OTP verification successful",
|
|
Ok: true,
|
|
RedirectUrl: redirectUrl,
|
|
}, nil
|
|
}
|
|
|
|
func (h AuthHandler) PostAuthConsentAccept(ctx context.Context, request PostAuthConsentAcceptRequestObject) (PostAuthConsentAcceptResponseObject, error) {
|
|
redirectUrl, err := h.service.AcceptConsent(ctx, request.Body.PhoneNumber, request.Body.ConsentChallenge)
|
|
if err != nil {
|
|
return PostAuthConsentAccept400JSONResponse{
|
|
Message: err.Error(),
|
|
Ok: false,
|
|
RedirectUrl: "",
|
|
}, nil
|
|
}
|
|
return PostAuthConsentAccept200JSONResponse{
|
|
Message: "Consent accepted successfully",
|
|
Ok: true,
|
|
RedirectUrl: redirectUrl,
|
|
}, nil
|
|
}
|
|
|
|
var _ StrictServerInterface = (*AuthHandler)(nil)
|
|
|
|
func NewAuthHandler(service service.AuthService) *AuthHandler {
|
|
return &AuthHandler{service: service}
|
|
}
|
|
|
|
func (h AuthHandler) RegisterRoutes(router fiber.Router) {
|
|
server := NewStrictHandler(h, nil)
|
|
RegisterHandlers(router, server)
|
|
}
|