notificationrule

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

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

DB implements the NotificationRuleStore against a *sql.DB backend.

func NewDB

func NewDB(ctx context.Context, db *sql.DB) (*DB, error)

NewDB will create a DB backend from a sql.DB. An error will be returned if statements fail to prepare.

func (*DB) CreateTx

func (db *DB) CreateTx(ctx context.Context, tx *sql.Tx, n *NotificationRule) (*NotificationRule, error)

CreateTx implements the NotificationRuleStore interface by inserting the new NotificationRule into the database. A new ID is always created.

func (*DB) Delete

func (db *DB) Delete(ctx context.Context, id string) error

Delete implements the NotificationRuleStore interface.

func (*DB) DeleteTx

func (db *DB) DeleteTx(ctx context.Context, tx *sql.Tx, ids ...string) error

DeleteTx will delete notification rules with the provided ids.

func (*DB) DoTx

func (d *DB) DoTx(f func(Store) error) error

DoTx will perform a transaction with the NotificationRuleStore.

func (*DB) FindAll

func (db *DB) FindAll(ctx context.Context, userID string) ([]NotificationRule, error)

FindAll implements the NotificationRuleStore interface.

func (*DB) FindOne

func (db *DB) FindOne(ctx context.Context, id string) (*NotificationRule, error)

FindOne implements the NotificationRuleStore interface.

func (*DB) Insert

func (db *DB) Insert(ctx context.Context, n *NotificationRule) (*NotificationRule, error)

Insert implements the NotificationRuleStore interface by inserting the new NotificationRule into the database. A new ID is always created.

func (*DB) UpdateDelay

func (db *DB) UpdateDelay(ctx context.Context, id string, delay int) error

Update implements the NotificationRuleStore interface.

func (*DB) WrapTx

func (db *DB) WrapTx(tx *sql.Tx) Store

WrapTx will wrap the NotificationRuleDB for use within the given transaction.

type NotificationRule

type NotificationRule struct {
	ID              string `json:"id"`
	UserID          string `json:"-"`
	DelayMinutes    int    `json:"delay"`
	ContactMethodID string `json:"contact_method_id"`
}

func (NotificationRule) Normalize

func (n NotificationRule) Normalize(update bool) (*NotificationRule, error)

type Store

type Store interface {
	Insert(context.Context, *NotificationRule) (*NotificationRule, error)
	UpdateDelay(ctx context.Context, id string, delay int) error
	Delete(ctx context.Context, id string) error
	DeleteTx(ctx context.Context, tx *sql.Tx, ids ...string) error
	CreateTx(context.Context, *sql.Tx, *NotificationRule) (*NotificationRule, error)
	FindOne(ctx context.Context, id string) (*NotificationRule, error)
	FindAll(ctx context.Context, userID string) ([]NotificationRule, error)

	WrapTx(*sql.Tx) Store
	DoTx(func(Store) error) error
}

Store allows the lookup and management of NotificationRules.

Jump to

Keyboard shortcuts

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