controllers

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthController

type AuthController struct {
	// contains filtered or unexported fields
}

AuthController handles authentication endpoints including challenge generation and verification.

func NewAuthController

func NewAuthController(challengeService auth.ChallengeService, jwtService *auth.JWTService, adminPublicKey string, validationService *validation.ValidatorService) *AuthController

NewAuthController creates a new AuthController with the provided services.

func (*AuthController) GetChallenge

func (ctrl *AuthController) GetChallenge(c *fiber.Ctx) error

GetChallenge generates a new authentication challenge. @Description Generate a Stellar transaction challenge for authentication @Summary Get Authentication Challenge @Tags Authentication @Accept json @Produce json @Success 200 {object} ChallengeResponse "Challenge generated successfully" @Failure 500 {object} middleware.Response "Failed to generate challenge" @Router /api/v1/auth/challenge [get]

func (*AuthController) VerifyChallenge

func (ctrl *AuthController) VerifyChallenge(c *fiber.Ctx) error

VerifyChallenge verifies a signed challenge and returns a JWT token. @Description Verify a signed Stellar transaction challenge and receive a JWT token @Summary Verify Challenge @Tags Authentication @Accept json @Produce json @Param body body VerifyRequest true "Signed challenge verification" @Success 200 {object} VerifyResponse "Challenge verified successfully" @Failure 400 {object} middleware.Response "Invalid request body or transaction" @Failure 401 {object} middleware.Response "Challenge verification failed" @Failure 404 {object} middleware.Response "Challenge not found" @Failure 500 {object} middleware.Response "Failed to generate token" @Router /api/v1/auth/verify [post]

type ChallengeResponse

type ChallengeResponse struct {
	ChallengeID string `json:"challenge_id"`
	Transaction string `json:"transaction"`
	ExpiresAt   int64  `json:"expires_at"`
}

ChallengeResponse represents the authentication challenge response.

type SMSCallbackController

type SMSCallbackController struct {
	// contains filtered or unexported fields
}

SMSCallbackController handles SMS callback endpoints.

func NewSMSCallbackController

func NewSMSCallbackController(handler *sms.DeliveryReportHandler) *SMSCallbackController

NewSMSCallbackController creates a new SMSCallbackController.

func (*SMSCallbackController) HandleDeliveryReport

func (ctrl *SMSCallbackController) HandleDeliveryReport(c *fiber.Ctx) error

HandleDeliveryReport processes incoming SMS delivery report callbacks from Africa's Talking. AT sends form-encoded POST requests with delivery status updates. @Description Handle incoming SMS delivery report callbacks from Africa's Talking @Summary Process SMS Delivery Report @Tags Mobile @Accept application/x-www-form-urlencoded @Produce plain @Param id formData string true "AT message ID" @Param status formData string true "Delivery status" @Param phoneNumber formData string false "Recipient phone number" @Param networkCode formData string false "Network code" @Param failureReason formData string false "Failure reason (if applicable)" @Success 200 {string} string "ok" @Failure 400 {object} fiber.Error "Invalid callback payload" @Router /api/v1/mobile/sms/{provider}/delivery [post]

type USSDController

type USSDController struct {
	// contains filtered or unexported fields
}

USSDController handles USSD callback endpoints.

func NewUSSDController

func NewUSSDController(ussdService *ussd.USSDService) *USSDController

NewUSSDController creates a new USSDController with the provided USSD service.

func (*USSDController) HandleCallback

func (ctrl *USSDController) HandleCallback(c *fiber.Ctx) error

HandleCallback handles incoming USSD callback requests from any registered provider. @Description Handle USSD callback requests from the USSD gateway. The provider is specified in the URL path. @Summary USSD Callback Handler @Tags USSD @Accept application/x-www-form-urlencoded @Produce plain @Param provider path string true "USSD provider name (e.g. africastalking)" @Param sessionId formData string true "Session ID" @Param phoneNumber formData string true "User's phone number" @Param text formData string false "User input text" @Param serviceCode formData string true "USSD service code" @Param networkCode formData string false "Network code" @Success 200 {string} string "USSD response (CON/END)" @Failure 500 {string} string "END An error occurred. Please try again." @Router /api/v1/mobile/ussd/{provider} [post]

type VerifyRequest

type VerifyRequest struct {
	ChallengeID       string `json:"challenge_id" validate:"required,base64url"`
	SignedTransaction string `json:"signed_transaction" validate:"required,stellar_xdr"`
}

VerifyRequest represents the challenge verification request body.

type VerifyResponse

type VerifyResponse struct {
	Token     string `json:"token"`
	ExpiresAt int64  `json:"expires_at"`
}

VerifyResponse represents the challenge verification response.

type WebhookController

type WebhookController struct {
	// contains filtered or unexported fields
}

WebhookController handles webhook endpoints for payment providers.

func NewWebhookController

func NewWebhookController(eventHandler webhook.WebhookEventHandler, webhookSecret string) *WebhookController

NewWebhookController creates a new WebhookController with the provided dependencies.

func (*WebhookController) HandleYellowCardWebhook

func (ctrl *WebhookController) HandleYellowCardWebhook(c *fiber.Ctx) error

HandleYellowCardWebhook processes incoming webhooks from YellowCard. @Description Handle incoming webhooks from YellowCard payment service @Summary Process YellowCard Payment Webhook @Tags Webhooks @Accept json @Produce json @Param X-YC-Signature header string true "HMAC signature for verification" @Param body body yellowcard.WebhookEvent true "Webhook event data" @Success 200 {string} string "ok" @Failure 400 {object} fiber.Error "Invalid webhook payload" @Failure 401 {object} fiber.Error "Signature verification failed" @Failure 500 {object} fiber.Error "Failed to process webhook" @Router /api/v1/webhooks/yellowcard [post]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL