Files
IDP-Backend/internal/api/auth/handler/impl.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)
}