Documentation
¶
Index ¶
Constants ¶
View Source
const ( Unknown string = "Unknown" Pending = "Pending" In_Progress = "In_Progress" Completed = "Completed" Failed = "Failed" Cancelled = "Cancelled" )
Variables ¶
This section is empty.
Functions ¶
func CreateProcessor ¶
func CreateProcessor(serviceBusReceiver sb.ServiceBusReceiver, matcher *Matcher, operationController OperationController) (*shuttle.Processor, error)
Types ¶
type APIOperation ¶
type APIOperation interface {
Run(context.Context) *Result
Guardconcurrency(context.Context, Entity) (*CategorizedError, error)
EntityFetcher(context.Context) (Entity, error)
Init(context.Context, OperationRequest) (APIOperation, error)
GetName(context.Context) string
GetOperationRequest(context.Context) *OperationRequest
}
OpInterface is the interface all operations will need to implement.
type CategorizedError ¶
func NewCategorizedError ¶
func NewCategorizedError(message string, innerMessage string, errorCode int) *CategorizedError
func (*CategorizedError) Error ¶
func (ce *CategorizedError) Error() string
type Matcher ¶
func NewMatcher ¶
func NewMatcher() *Matcher
func (*Matcher) CreateInstance ¶
func (m *Matcher) CreateInstance(key string) (APIOperation, error)
This will create an empty instance of the type, with which you can then call op.Init() and initialize any info you need.
func (*Matcher) Get ¶
TODO(mheberling): do we need to delete this? Get retrieves a value from the map by its key
func (*Matcher) Register ¶
func (m *Matcher) Register(key string, value APIOperation)
Set adds a key-value pair to the map Ex: matcher.Register("LongRunning", &LongRunning{})
type OperationController ¶ added in v0.0.8
type OperationController interface {
OperationCancel(context.Context, string) error
OperationInProgress(context.Context, string) error
OperationTimeout(context.Context, string) error
OperationCompleted(context.Context, string) error
OperationPending(context.Context, string) error
OperationUnkown(context.Context, string) error
}
type OperationRequest ¶
type OperationRequest struct {
OperationName string
APIVersion string
RetryCount int
OperationId string
EntityId string
EntityType string
ExpirationDate *timestamppb.Timestamp
// Service bus for retry
ServiceBusConnectionString string
ServiceBusClientUrl string
ServiceBusSenderQueue string
// HTTP
Body []byte
HttpMethod string
}
All the fields that the operations might need. This struct will be part of every operation.
Click to show internal directories.
Click to hide internal directories.