eav10n

package
v0.0.0-...-2754675 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2021 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package eav10n provides utilities for verifying email addresses.

Package eav10n provides utilities for verifying email addresses.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrVerificationCodeMismatch = errors.New("code mismatch")
	ErrVerificationCodeExpired  = errors.New("code expired")
)
View Source
var ResourcesDirDefault string

Functions

This section is empty.

Types

type Config

type Config struct {
	CodeTTLDefault          time.Duration `env:"CODE_TTL_DEFAULT"`
	ConfirmationAttemptsMax int16         `env:"CONFIRMATION_ATTEMPTS_MAX"`
	SenderAddress           string        `env:"SENDER_ADDRESS"`
	ResourcesDir            string        `env:"RESOURCES_DIR"`
	SES                     *SESConfig    `env:"SES"`
}

func ConfigFromEnv

func ConfigFromEnv(prefix string) (*Config, error)

type InvalidEmailAddressError

type InvalidEmailAddressError struct {
	Err error
}

func (InvalidEmailAddressError) Error

func (err InvalidEmailAddressError) Error() string

type SESConfig

type SESConfig struct {
	Region          string `env:"REGION,required"`
	AccessKeyID     string `env:"ACCESS_KEY_ID"`
	SecretAccessKey string `env:"SECRET_ACCESS_KEY"`
}

TODO: make module system like pnv10n

type VerificationMethod

type VerificationMethod int
const (
	VerificationMethodUnspecified VerificationMethod = iota
	VerificationMethodNone
)

func VerificationMethodFromString

func VerificationMethodFromString(str string) VerificationMethod

type Verifier

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

func NewVerifier

func NewVerifier(
	appInfo app.Info,
	db *sqlx.DB,
	config Config,
) *Verifier

func (*Verifier) ConfirmVerification

func (verifier *Verifier) ConfirmVerification(
	callCtx iam.CallContext,
	verificationID int64, code string,
) error

func (*Verifier) GetEmailAddressByVerificationID

func (verifier *Verifier) GetEmailAddressByVerificationID(
	verificationID int64,
) (*iam.EmailAddress, error)

func (*Verifier) StartVerification

func (verifier *Verifier) StartVerification(
	callCtx iam.CallContext,
	emailAddress iam.EmailAddress,
	codeTTL time.Duration,
	userPreferredLanguages []language.Tag,
	preferredVerificationMethods []VerificationMethod,
) (id int64, codeExpiry *time.Time, err error)

TODO(exa): make the operations atomic

Jump to

Keyboard shortcuts

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