Documentation ¶
Index ¶
- type ContactMethod
- type Metadata
- type Store
- func (s *Store) CreateTx(ctx context.Context, tx *sql.Tx, c *ContactMethod) (*ContactMethod, error)
- func (s *Store) DeleteTx(ctx context.Context, tx *sql.Tx, ids ...string) error
- func (s *Store) DisableByValue(ctx context.Context, t Type, v string) error
- func (s *Store) EnableByValue(ctx context.Context, t Type, v string) error
- func (s *Store) FindAll(ctx context.Context, userID string) ([]ContactMethod, error)
- func (s *Store) FindMany(ctx context.Context, ids []string) ([]ContactMethod, error)
- func (s *Store) FindOne(ctx context.Context, id string) (*ContactMethod, error)
- func (s *Store) FindOneTx(ctx context.Context, tx *sql.Tx, id string) (*ContactMethod, error)
- func (s *Store) MetadataByTypeValue(ctx context.Context, tx *sql.Tx, typ Type, value string) (*Metadata, error)
- func (s *Store) SetCarrierV1MetadataByTypeValue(ctx context.Context, tx *sql.Tx, typ Type, value string, newM *Metadata) error
- func (s *Store) UpdateTx(ctx context.Context, tx *sql.Tx, c *ContactMethod) error
- type Type
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContactMethod ¶
type ContactMethod struct { ID string Name string Type Type Value string Disabled bool UserID string Pending bool StatusUpdates bool // contains filtered or unexported fields }
ContactMethod stores the information for contacting a user.
func (ContactMethod) LastTestVerifyAt ¶ added in v0.26.0
func (c ContactMethod) LastTestVerifyAt() time.Time
LastTestVerifyAt will return the timestamp of the last test/verify request.
func (ContactMethod) Normalize ¶
func (c ContactMethod) Normalize() (*ContactMethod, error)
Normalize will validate and 'normalize' the ContactMethod -- such as making email lower-case and setting carrier to "" (for non-phone types).
type Metadata ¶ added in v0.25.0
type Metadata struct { FetchedAt time.Time `json:"-"` CarrierV1 struct { UpdatedAt time.Time Name string Type string MobileNetworkCode string MobileCountryCode string } }
Metadata stores information about a contact method.
func (Metadata) MarshalJSON ¶ added in v0.25.0
MarshalJSON implements `json.Marshaler`. It is used to allow `omitempty` behavior with embedded structs.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store implements the lookup and management of ContactMethods against a *sql.Store backend.
func NewStore ¶ added in v0.30.0
NewStore will create a DB backend from a sql.DB. An error will be returned if statements fail to prepare.
func (*Store) CreateTx ¶
func (s *Store) CreateTx(ctx context.Context, tx *sql.Tx, c *ContactMethod) (*ContactMethod, error)
CreateTx inserts the new ContactMethod into the database. A new ID is always created.
func (*Store) DeleteTx ¶
Delete removes the ContactMethod from the database using the provided ID within a transaction.
func (*Store) DisableByValue ¶
func (*Store) EnableByValue ¶ added in v0.25.0
func (*Store) FindAll ¶
FindAll finds all contact methods from the database associated with the given user ID.
func (*Store) FindOneTx ¶
FindOneTx finds the contact method from the database using the provided ID within a transaction.
func (*Store) MetadataByTypeValue ¶ added in v0.25.0
func (*Store) SetCarrierV1MetadataByTypeValue ¶ added in v0.25.0
type Type ¶
type Type string
Type specifies the medium a ContactMethod is notified.
const ( TypeUnknown Type = "" TypeVoice Type = "VOICE" TypeSMS Type = "SMS" TypeEmail Type = "EMAIL" TypePush Type = "PUSH" TypeWebhook Type = "WEBHOOK" TypeSlackDM Type = "SLACK_DM" )
ContactMethod types