scheduled

package
v0.1604.0-weblatepr.2 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ActionValues = ActionOptions{
	ExpireDonorIdentity: ActionExpireDonorIdentity,
}

Functions

This section is empty.

Types

type Action

type Action uint8
const (
	// ActionExpireDonorIdentity will check that the target donor has not signed
	// their LPA, and if so remove their identity data and notify them of the
	// change.
	ActionExpireDonorIdentity Action = iota + 1
)

func ParseAction

func ParseAction(s string) (Action, error)

func (Action) IsExpireDonorIdentity

func (i Action) IsExpireDonorIdentity() bool

func (Action) MarshalText

func (i Action) MarshalText() ([]byte, error)

func (Action) String

func (i Action) String() string

func (*Action) UnmarshalText

func (i *Action) UnmarshalText(text []byte) error

type ActionFunc

type ActionFunc func(ctx context.Context, row *Event) error

type ActionOptions

type ActionOptions struct {
	ExpireDonorIdentity Action
}

type DonorStore

type DonorStore interface {
	One(ctx context.Context, pk dynamo.LpaKeyType, sk dynamo.SK) (*donordata.Provided, error)
	Put(ctx context.Context, provided *donordata.Provided) error
}

type DynamoClient

type DynamoClient interface {
	AllByLpaUIDAndPartialSK(ctx context.Context, uid string, partialSK dynamo.SK, v interface{}) error
	AnyByPK(ctx context.Context, pk dynamo.PK, v interface{}) error
	Move(ctx context.Context, oldKeys dynamo.Keys, value any) error
	DeleteKeys(ctx context.Context, keys []dynamo.Keys) error
	Create(ctx context.Context, v interface{}) error
}

type Event

type Event struct {
	PK dynamo.ScheduledDayKeyType
	SK dynamo.ScheduledKeyType
	// CreatedAt is when the event was created
	CreatedAt time.Time
	// At is when the action should be done
	At time.Time
	// Action is what to do when run
	Action Action
	// TargetLpaKey is used to specify the target of the action
	TargetLpaKey dynamo.LpaKeyType
	// TargetLpaOwnerKey is used to specify the target of the action
	TargetLpaOwnerKey dynamo.LpaOwnerKeyType
	// LpaUID is the LPA UID the action target relates to
	LpaUID string
}

A Event specifies an action to take in the future.

type Logger

type Logger interface {
	InfoContext(ctx context.Context, msg string, args ...any)
	ErrorContext(ctx context.Context, msg string, args ...any)
}

type LpaStoreClient added in v0.1576.0

type LpaStoreClient interface {
	Lpa(ctx context.Context, lpaUID string) (*lpadata.Lpa, error)
}

type MetricsClient added in v0.1561.0

type MetricsClient interface {
	PutMetrics(ctx context.Context, input *cloudwatch.PutMetricDataInput) error
}

type NotifyClient

type NotifyClient interface {
	SendActorEmail(ctx context.Context, to notify.ToEmail, lpaUID string, email notify.Email) error
}

type Runner

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

func NewRunner

func NewRunner(logger Logger, store ScheduledStore, donorStore DonorStore, notifyClient NotifyClient, metricsClient MetricsClient, metricsEnabled bool) *Runner

func (*Runner) Errored added in v0.1561.0

func (r *Runner) Errored(ctx context.Context, row *Event, err error)

func (*Runner) Ignored added in v0.1561.0

func (r *Runner) Ignored(ctx context.Context, row *Event)

func (*Runner) Metrics added in v0.1561.0

func (r *Runner) Metrics(processingTime time.Duration) cloudwatch.PutMetricDataInput

func (*Runner) Processed added in v0.1561.0

func (r *Runner) Processed(ctx context.Context, row *Event)

func (*Runner) Run

func (r *Runner) Run(ctx context.Context) error

type ScheduledStore

type ScheduledStore interface {
	Pop(ctx context.Context, at time.Time) (*Event, error)
}

type Store

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

func NewStore

func NewStore(dynamoClient DynamoClient) *Store

func (*Store) Create added in v0.1576.0

func (s *Store) Create(ctx context.Context, row Event) error

func (*Store) DeleteAllByUID added in v0.1576.0

func (s *Store) DeleteAllByUID(ctx context.Context, uid string) error

func (*Store) Pop

func (s *Store) Pop(ctx context.Context, day time.Time) (*Event, error)

type Waiter

type Waiter interface {
	Reset()
	Wait() error
}

Jump to

Keyboard shortcuts

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