event

package
v0.0.0-...-ef7d844 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2025 License: Apache-2.0 Imports: 23 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

Functions

func NewNonBlockingEvent

func NewNonBlockingEvent(seqNo int64, payload event.NonBlockingPayload, context event.Context) *event.Event

Types

type Database

type Database interface {
	UseHook(ctx context.Context, hook db.TransactionHook)
}

type Logger

type Logger struct{ *log.Logger }

func NewLogger

func NewLogger(lf *log.Factory) Logger

type Resolver

type Resolver interface {
	Resolve(ctx context.Context, anything interface{}) (err error)
}

type ResolverImpl

type ResolverImpl struct {
	Users ResolverUserQueries
}

func (*ResolverImpl) Resolve

func (r *ResolverImpl) Resolve(ctx context.Context, anything interface{}) (err error)

type ResolverUserQueries

type ResolverUserQueries interface {
	Get(ctx context.Context, id string, role accesscontrol.Role) (*model.User, error)
}

type Service

type Service struct {
	AppID           config.AppID
	RemoteIP        httputil.RemoteIP
	UserAgentString httputil.UserAgentString
	Logger          Logger
	Database        Database
	Clock           clock.Clock
	Localization    *config.LocalizationConfig
	Store           Store
	Resolver        Resolver
	Sinks           []Sink

	NonBlockingPayloads []event.NonBlockingPayload `wire:"-"`
	NonBlockingEvents   []*event.Event             `wire:"-"`
	DatabaseHooked      bool                       `wire:"-"`
	IsDispatchEventErr  bool                       `wire:"-"`
}

func NewService

func NewService(
	appID config.AppID,
	remoteIP httputil.RemoteIP,
	userAgentString httputil.UserAgentString,
	logger Logger,
	database Database,
	clock clock.Clock,
	localization *config.LocalizationConfig,
	store Store,
	resolver Resolver,
	hookSink *hook.Sink,
	auditSink *audit.Sink,
	searchSink *reindex.Sink,
	userInfoSink *userinfo.Sink,
) *Service

func (*Service) DidCommitTx

func (s *Service) DidCommitTx(ctx context.Context)

func (*Service) DispatchEventImmediately

func (s *Service) DispatchEventImmediately(ctx context.Context, payload event.NonBlockingPayload) (err error)

DispatchEventImmediately dispatches the event immediately.

func (*Service) DispatchEventOnCommit

func (s *Service) DispatchEventOnCommit(ctx context.Context, payload event.Payload) (err error)

DispatchEventOnCommit dispatches the event according to the tranaction lifecycle.

func (*Service) WillCommitTx

func (s *Service) WillCommitTx(ctx context.Context) (err error)

type Sink

type Sink interface {
	ReceiveBlockingEvent(ctx context.Context, e *event.Event) error
	ReceiveNonBlockingEvent(ctx context.Context, e *event.Event) error
}

type Store

type Store interface {
	NextSequenceNumber(ctx context.Context) (int64, error)
}

type StoreImpl

type StoreImpl struct {
	SQLBuilder  *appdb.SQLBuilder
	SQLExecutor *appdb.SQLExecutor
}

func NewStoreImpl

func NewStoreImpl(
	sqlBuilder *appdb.SQLBuilder,
	sqlExecutor *appdb.SQLExecutor) *StoreImpl

func (*StoreImpl) NextSequenceNumber

func (s *StoreImpl) NextSequenceNumber(ctx context.Context) (seq int64, err error)

Jump to

Keyboard shortcuts

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