Documentation
¶
Index ¶
- Constants
- Variables
- type Code
- type CodeSendResult
- type CodeStore
- type EndpointsProvider
- type EventService
- type HardSMSBucketer
- type Logger
- type MessageSender
- type MessageTemplateContext
- type MessageType
- type RateLimiter
- type SendOptions
- type Service
- func (s *Service) GenerateCode(target string) (*Code, error)
- func (s *Service) GenerateWhatsappCode(target string, appID string, webSessionID string) (*Code, error)
- func (s *Service) SetUserInputtedCode(target string, userInputtedCode string) (*Code, error)
- func (s *Service) VerifyCode(target string, code string) error
- func (s *Service) VerifyWhatsappCode(target string, consume bool) error
- type StoreRedis
- type TranslationService
Constants ¶
View Source
const (
WhatsappCodeDuration = duration.UserInteraction
)
Variables ¶
View Source
var ( TemplateMessageVerificationSMSTXT = template.RegisterPlainText("messages/verification_sms.txt") TemplateMessageVerificationEmailTXT = template.RegisterPlainText("messages/verification_email.txt") TemplateMessageVerificationEmailHTML = template.RegisterHTML("messages/verification_email.html") TemplateMessageSetupPrimaryOOBSMSTXT = template.RegisterPlainText("messages/setup_primary_oob_sms.txt") TemplateMessageSetupPrimaryOOBEmailTXT = template.RegisterPlainText("messages/setup_primary_oob_email.txt") TemplateMessageSetupPrimaryOOBEmailHTML = template.RegisterHTML("messages/setup_primary_oob_email.html") TemplateMessageSetupSecondaryOOBSMSTXT = template.RegisterPlainText("messages/setup_secondary_oob_sms.txt") TemplateMessageSetupSecondaryOOBEmailTXT = template.RegisterPlainText("messages/setup_secondary_oob_email.txt") TemplateMessageSetupSecondaryOOBEmailHTML = template.RegisterHTML("messages/setup_secondary_oob_email.txt") TemplateMessageAuthenticatePrimaryOOBSMSTXT = template.RegisterPlainText("messages/authenticate_primary_oob_sms.txt") TemplateMessageAuthenticatePrimaryOOBEmailTXT = template.RegisterPlainText("messages/authenticate_primary_oob_email.txt") TemplateMessageAuthenticatePrimaryOOBEmailHTML = template.RegisterHTML("messages/authenticate_primary_oob_email.html") TemplateMessageAuthenticateSecondaryOOBSMSTXT = template.RegisterPlainText("messages/authenticate_secondary_oob_sms.txt") TemplateMessageAuthenticateSecondaryOOBEmailTXT = template.RegisterPlainText("messages/authenticate_secondary_oob_email.txt") TemplateMessageAuthenticateSecondaryOOBEmailHTML = template.RegisterHTML("messages/authenticate_secondary_oob_email.html") )
View Source
var DependencySet = wire.NewSet( wire.Struct(new(Service), "*"), wire.Struct(new(MessageSender), "*"), wire.Struct(new(StoreRedis), "*"), wire.Bind(new(CodeStore), new(*StoreRedis)), NewLogger, )
View Source
var ErrCodeNotFound = InvalidOTPCode.NewWithCause("otp code is expired or invalid", apierrors.StringCause("CodeNotFound"))
View Source
var ErrInputRequired = InvalidOTPCode.NewWithCause("input not yet received", apierrors.StringCause("InputRequired"))
View Source
var ErrInvalidCode = InvalidOTPCode.NewWithCause("invalid otp code", apierrors.StringCause("InvalidOTPCode"))
View Source
var InvalidOTPCode = apierrors.Forbidden.WithReason("InvalidOTPCode")
Functions ¶
This section is empty.
Types ¶
type CodeSendResult ¶
type EndpointsProvider ¶
type EventService ¶
type HardSMSBucketer ¶
type MessageSender ¶
type MessageSender struct { Translation TranslationService Endpoints EndpointsProvider TaskQueue task.Queue Events EventService RateLimiter RateLimiter HardSMSBucketer HardSMSBucketer }
func (*MessageSender) SendEmail ¶
func (s *MessageSender) SendEmail(email string, opts SendOptions) error
func (*MessageSender) SendSMS ¶
func (s *MessageSender) SendSMS(phone string, opts SendOptions) (err error)
type MessageTemplateContext ¶
type MessageType ¶
type MessageType string
const ( MessageTypeVerification MessageType = "verification" MessageTypeSetupPrimaryOOB MessageType = "setup-primary-oob" MessageTypeSetupSecondaryOOB MessageType = "setup-secondary-oob" MessageTypeAuthenticatePrimaryOOB MessageType = "authenticate-primary-oob" MessageTypeAuthenticateSecondaryOOB MessageType = "authenticate-secondary-oob" )
type RateLimiter ¶
type SendOptions ¶
type SendOptions struct { OTP string URL string MessageType MessageType }
type StoreRedis ¶
func (*StoreRedis) Delete ¶
func (s *StoreRedis) Delete(target string) error
type TranslationService ¶
type TranslationService interface { EmailMessageData(msg *translation.MessageSpec, args interface{}) (*translation.EmailMessageData, error) SMSMessageData(msg *translation.MessageSpec, args interface{}) (*translation.SMSMessageData, error) }
Click to show internal directories.
Click to hide internal directories.