repository

package
v0.1.7 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2021 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound     = leikari.Errorln("", "entity not found").WithStatusCode(404)
	ErrEntityExists = leikari.Errorln("", "entity exists").WithStatusCode(400)
	ErrIdNotPresent = leikari.Errorln("", "id not present").WithStatusCode(400)
)

Functions

This section is empty.

Types

type DeleteCommand

type DeleteCommand struct {
	Id interface{}
}

type DeleteFunc

type DeleteFunc func(leikari.ActorContext, interface{}) (interface{}, error)

type DeleteHandler

type DeleteHandler interface {
	Delete(leikari.ActorContext, DeleteCommand) (*DeletedEvent, error)
}

type DeletedEvent

type DeletedEvent struct {
	Id        interface{} `json:"id"`
	Entity    interface{} `json:"entity"`
	Timestamp time.Time   `json:"timestamp,omitempty"`
	Took      int64       `json:"millis,omitempty"`
}

type InsertCommand

type InsertCommand struct {
	Entity interface{}
}

type InsertFunc

type InsertFunc func(leikari.ActorContext, interface{}) (interface{}, error)

type InsertHandler

type InsertHandler interface {
	Insert(leikari.ActorContext, InsertCommand) (*InsertedEvent, error)
}

type InsertedEvent

type InsertedEvent struct {
	Id        interface{} `json:"id"`
	Entity    interface{} `json:"entity"`
	Timestamp time.Time   `json:"timestamp,omitempty"`
	Took      int64       `json:"millis,omitempty"`
}

type QueryFunc

type QueryFunc func(leikari.ActorContext, query.Query) (*query.QueryResult, error)

type QueryHandler

type QueryHandler interface {
	Query(leikari.ActorContext, query.Query) (*query.QueryResult, error)
}

type Repository

func MapRepo

func MapRepo(keyField string) Repository

type RepositoryHandler

type RepositoryHandler struct {
	OnQuery   QueryFunc
	OnInsert  InsertFunc
	OnSelect  SelectFunc
	OnUpdate  UpdateFunc
	OnDelete  DeleteFunc
	OnStart   func(leikari.ActorContext) error
	OnStop    func(leikari.ActorContext) error
	OnReceive func(leikari.ActorContext, leikari.Message)
	Sync      bool
}

func (*RepositoryHandler) AsyncActor

func (rh *RepositoryHandler) AsyncActor() bool

func (*RepositoryHandler) Delete

func (*RepositoryHandler) Insert

func (*RepositoryHandler) PostStop

func (rh *RepositoryHandler) PostStop(ctx leikari.ActorContext) error

func (*RepositoryHandler) PreStart

func (rh *RepositoryHandler) PreStart(ctx leikari.ActorContext) error

func (*RepositoryHandler) Query

func (*RepositoryHandler) Receive

func (rh *RepositoryHandler) Receive(ctx leikari.ActorContext, msg leikari.Message)

func (*RepositoryHandler) Select

func (*RepositoryHandler) Update

type RepositoryRef

type RepositoryRef interface {
	leikari.Ref

	Insert(interface{}) (*InsertedEvent, error)
	InsertContext(context.Context, interface{}) (*InsertedEvent, error)

	Select(interface{}) (*SelectedEvent, error)
	SelectContext(context.Context, interface{}) (*SelectedEvent, error)

	Update(interface{}, interface{}) (*UpdatedEvent, error)
	UpdateContext(context.Context, interface{}, interface{}) (*UpdatedEvent, error)

	Delete(interface{}) (*DeletedEvent, error)
	DeleteContext(context.Context, interface{}) (*DeletedEvent, error)

	Query(query.Query) (*query.QueryResult, error)
	QueryContext(context.Context, query.Query) (*query.QueryResult, error)
}

func RepositoryService

func RepositoryService(system leikari.ActorExecutor, handler interface{}, name string, opts ...leikari.Option) (RepositoryRef, error)

type SelectCommand

type SelectCommand struct {
	Id interface{}
}

type SelectFunc

type SelectFunc func(leikari.ActorContext, interface{}) (interface{}, error)

type SelectHandler

type SelectHandler interface {
	Select(leikari.ActorContext, SelectCommand) (*SelectedEvent, error)
}

type SelectedEvent

type SelectedEvent struct {
	Id        interface{} `json:"id"`
	Entity    interface{} `json:"entity"`
	Timestamp time.Time   `json:"timestamp,omitempty"`
	Took      int64       `json:"millis,omitempty"`
}

type UpdateCommand

type UpdateCommand struct {
	Id     interface{}
	Entity interface{}
}

type UpdateFunc

type UpdateFunc func(leikari.ActorContext, interface{}, interface{}) error

type UpdateHandler

type UpdateHandler interface {
	Update(leikari.ActorContext, UpdateCommand) (*UpdatedEvent, error)
}

type UpdatedEvent

type UpdatedEvent struct {
	Id        interface{} `json:"id"`
	Entity    interface{} `json:"entity"`
	Timestamp time.Time   `json:"timestamp,omitempty"`
	Took      int64       `json:"millis,omitempty"`
}

Jump to

Keyboard shortcuts

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