flows

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2018 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NoRoute = Route{}

Functions

func GroupReferenceValidation added in v0.4.0

func GroupReferenceValidation(sl validator.StructLevel)

GroupReferenceValidation validates that the given group reference is either a concrete reference or a name matcher

func LabelReferenceValidation added in v0.4.0

func LabelReferenceValidation(sl validator.StructLevel)

LabelReferenceValidation validates that the given label reference is either a concrete reference or a name matcher

func ValidateURN added in v0.4.0

func ValidateURN(fl validator.FieldLevel) bool

ValidateURN validates whether the field value is a valid URN

func ValidateURNScheme added in v0.4.0

func ValidateURNScheme(fl validator.FieldLevel) bool

ValidateURNScheme validates whether the field value is a valid URN scheme

Types

type Action

type Action interface {
	UUID() ActionUUID

	Execute(FlowRun, Step, EventLog) error
	Validate(SessionAssets) error
	utils.Typed
}

type ActionUUID

type ActionUUID UUID

func (ActionUUID) String

func (u ActionUUID) String() string

type Attachment added in v0.4.0

type Attachment string

Attachment is a media attachment on a message

func (Attachment) ContentType added in v0.4.0

func (a Attachment) ContentType() string

ContentType returns the MIME type of this attachment

func (Attachment) Default added in v0.4.0

func (a Attachment) Default() interface{}

func (Attachment) Resolve added in v0.4.0

func (a Attachment) Resolve(key string) interface{}

func (Attachment) String added in v0.4.0

func (a Attachment) String() string

func (Attachment) URL added in v0.4.0

func (a Attachment) URL() string

URL returns the full URL of this attachment

type Channel

type Channel interface {
	UUID() ChannelUUID
	Name() string
	Address() string
	Type() ChannelType
	Reference() *ChannelReference
}

Channel represents a channel for sending and receiving messages

func ReadChannel

func ReadChannel(data json.RawMessage) (Channel, error)

ReadChannel decodes a channel from the passed in JSON

func ReadChannels added in v0.4.0

func ReadChannels(data []json.RawMessage) ([]Channel, error)

ReadChannels decodes channels from the passed in JSON

type ChannelReference added in v0.4.0

type ChannelReference struct {
	UUID ChannelUUID `json:"uuid" validate:"required,uuid4"`
	Name string      `json:"name"`
}

ChannelReference is used to reference a channel

func NewChannelReference added in v0.4.0

func NewChannelReference(uuid ChannelUUID, name string) *ChannelReference

NewChannelReference creates a new channel reference with the given UUID and name

type ChannelType

type ChannelType string

ChannelType represents the type of a Channel

func (ChannelType) String

func (ct ChannelType) String() string

type ChannelUUID

type ChannelUUID UUID

func (ChannelUUID) String

func (u ChannelUUID) String() string

type Contact

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

Contact represents a single contact

func NewContact added in v0.5.1

func NewContact(uuid ContactUUID, name string, language utils.Language, timezone *time.Location) *Contact

NewContact returns a new contact

func ReadContact

func ReadContact(session Session, data json.RawMessage) (*Contact, error)

ReadContact decodes a contact from the passed in JSON

func (*Contact) AddURN added in v0.4.0

func (c *Contact) AddURN(urn urns.URN)

AddURN adds a new URN to this contact

func (*Contact) Channel added in v0.4.0

func (c *Contact) Channel() Channel

Channel returns the preferred channel of this contact

func (*Contact) Clone added in v0.4.0

func (c *Contact) Clone() *Contact

Clone creates a copy of this contact

func (*Contact) Default

func (c *Contact) Default() interface{}

Default returns our default value in the context

func (*Contact) Fields

func (c *Contact) Fields() FieldValues

Fields returns this contact's field values

func (*Contact) Groups

func (c *Contact) Groups() *GroupList

Groups returns the groups that this contact belongs to

func (*Contact) Language

func (c *Contact) Language() utils.Language

Language gets the language for this contact

func (*Contact) MarshalJSON

func (c *Contact) MarshalJSON() ([]byte, error)

func (*Contact) Name

func (c *Contact) Name() string

Name returns the name of this contact

func (*Contact) Reference added in v0.4.0

func (c *Contact) Reference() *ContactReference

Reference returns a reference to this contact

func (*Contact) Resolve

func (c *Contact) Resolve(key string) interface{}

func (*Contact) ResolveQueryKey added in v0.4.0

func (c *Contact) ResolveQueryKey(key string) []interface{}

ResolveQueryKey resolves a contact query search key for this contact

func (*Contact) SetChannel added in v0.4.0

func (c *Contact) SetChannel(channel Channel)

SetChannel sets the preferred channel of this contact

func (*Contact) SetLanguage

func (c *Contact) SetLanguage(lang utils.Language)

SetLanguage sets the language for this contact

func (*Contact) SetName

func (c *Contact) SetName(name string)

SetName sets the name of this contact

func (*Contact) SetTimezone

func (c *Contact) SetTimezone(tz *time.Location)

SetTimezone sets the timezone of this contact

func (*Contact) String

func (c *Contact) String() string

String returns our string value in the context

func (*Contact) Timezone

func (c *Contact) Timezone() *time.Location

Timezone returns the timezone of this contact

func (*Contact) URNs

func (c *Contact) URNs() URNList

URNs returns the URNs of this contact

func (*Contact) UUID

func (c *Contact) UUID() ContactUUID

UUID returns the UUID of this contact

func (*Contact) UpdateDynamicGroups added in v0.4.0

func (c *Contact) UpdateDynamicGroups(session Session) error

UpdateDynamicGroups reevaluates membership of all dynamic groups for this contact

type ContactReference

type ContactReference struct {
	UUID ContactUUID `json:"uuid" validate:"required,uuid4"`
	Name string      `json:"name"`
}

ContactReference is used to reference a contact

func NewContactReference added in v0.4.0

func NewContactReference(uuid ContactUUID, name string) *ContactReference

NewContactReference creates a new contact reference with the given UUID and name

type ContactUUID

type ContactUUID UUID

func (ContactUUID) String

func (u ContactUUID) String() string

type Event

type Event interface {
	CreatedOn() time.Time
	SetCreatedOn(time.Time)

	FromCaller() bool
	SetFromCaller(bool)

	Apply(FlowRun) error

	utils.Typed
}

type EventLog added in v0.4.0

type EventLog interface {
	Add(Event)
	Events() []Event
}

type Exit

type Exit interface {
	UUID() ExitUUID
	DestinationNodeUUID() NodeUUID
	Name() string
}

type ExitUUID

type ExitUUID UUID

func (ExitUUID) String

func (u ExitUUID) String() string

type Field

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

Field represents a contact field

func NewField added in v0.4.0

func NewField(key FieldKey, label string, valueType FieldValueType) *Field

NewField returns a new field object with the passed in uuid, key and value type

func ReadField added in v0.4.0

func ReadField(data json.RawMessage) (*Field, error)

func (*Field) Key added in v0.4.0

func (f *Field) Key() FieldKey

Key returns the key of the field

func (*Field) ParseValue added in v0.4.0

func (f *Field) ParseValue(env utils.Environment, value string) (interface{}, error)

type FieldKey added in v0.4.0

type FieldKey string

FieldKey is the unique key for this field

type FieldReference added in v0.4.0

type FieldReference struct {
	Key   FieldKey `json:"key" validate:"required"`
	Label string   `json:"label"`
}

FieldReference is a reference to field

func NewFieldReference added in v0.4.0

func NewFieldReference(key FieldKey, label string) *FieldReference

NewFieldReference creates a new field reference with the given key and label

type FieldSet added in v0.4.0

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

FieldSet defines the unordered set of all fields for a session

func NewFieldSet added in v0.4.0

func NewFieldSet(fields []*Field) *FieldSet

func ReadFieldSet added in v0.4.0

func ReadFieldSet(data json.RawMessage) (*FieldSet, error)

func (*FieldSet) FindByKey added in v0.4.0

func (s *FieldSet) FindByKey(key FieldKey) *Field

type FieldValue added in v0.4.0

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

FieldValue represents a contact's value for a specific field

func NewFieldValue added in v0.4.0

func NewFieldValue(field *Field, value interface{}, createdOn time.Time) *FieldValue

func (*FieldValue) Default added in v0.4.0

func (v *FieldValue) Default() interface{}

Default returns the default value for FieldValue, which is the value

func (*FieldValue) Resolve added in v0.4.0

func (v *FieldValue) Resolve(key string) interface{}

func (*FieldValue) SerializeValue added in v0.4.0

func (v *FieldValue) SerializeValue() string

SerializeValue returns the string representation of this field value for serialization

func (*FieldValue) String added in v0.4.0

func (v *FieldValue) String() string

String returns the string representation of this field value

type FieldValueType added in v0.4.0

type FieldValueType string

FieldValueType is the data type of values for each field

const (
	FieldValueTypeText     FieldValueType = "text"
	FieldValueTypeNumeric  FieldValueType = "numeric"
	FieldValueTypeDatetime FieldValueType = "datetime"
	FieldValueTypeWard     FieldValueType = "ward"
	FieldValueTypeDistrict FieldValueType = "district"
	FieldValueTypeState    FieldValueType = "state"
)

type FieldValues added in v0.4.0

type FieldValues map[FieldKey]*FieldValue

func (FieldValues) Clone added in v0.4.0

func (f FieldValues) Clone() FieldValues

func (FieldValues) Default added in v0.4.0

func (f FieldValues) Default() interface{}

Default returns the default value for FieldValues, which is ourselves

func (FieldValues) Resolve added in v0.4.0

func (f FieldValues) Resolve(key string) interface{}

func (FieldValues) Save added in v0.4.0

func (f FieldValues) Save(env utils.Environment, field *Field, rawValue string) error

func (FieldValues) String added in v0.4.0

func (f FieldValues) String() string

String returns the string representation of these Fields, which is our JSON representation

type Flow

type Flow interface {
	UUID() FlowUUID
	Name() string
	Language() utils.Language
	ExpireAfterMinutes() int
	Translations() FlowTranslations

	Validate(SessionAssets) error
	Nodes() []Node
	GetNode(uuid NodeUUID) Node

	Reference() *FlowReference
}

type FlowReference added in v0.4.0

type FlowReference struct {
	UUID FlowUUID `json:"uuid" validate:"uuid4"`
	Name string   `json:"name"`
}

FlowReference is used to reference a flow from another flow

func NewFlowReference added in v0.4.0

func NewFlowReference(uuid FlowUUID, name string) *FlowReference

NewFlowReference creates a new flow reference with the given UUID and name

type FlowRun

type FlowRun interface {
	RunSummary

	Environment() utils.Environment
	Session() Session
	Context() utils.VariableResolver
	Input() Input
	Webhook() *utils.RequestResponse

	SetContact(*Contact)
	SetInput(Input)
	SetStatus(RunStatus)
	SetWebhook(*utils.RequestResponse)

	ApplyEvent(Step, Action, Event) error
	AddError(Step, Action, error)
	AddFatalError(Step, Action, error)

	CreateStep(Node) Step
	Path() []Step
	PathLocation() (Step, Node, error)

	GetText(uuid UUID, key string, native string) string
	GetTextArray(uuid UUID, key string, native []string) []string

	Snapshot() RunSummary
	Parent() RunSummary
	SessionParent() FlowRun
	Ancestors() []FlowRun

	CreatedOn() time.Time
	ExpiresOn() *time.Time
	ResetExpiration(*time.Time)
	ExitedOn() *time.Time
	Exit(RunStatus)
}

FlowRun represents a run in the current session

type FlowTranslations

type FlowTranslations interface {
	GetLanguageTranslations(utils.Language) Translations
}

FlowTranslations provide a way to get the Translations for a flow for a specific language

type FlowUUID

type FlowUUID UUID

func (FlowUUID) String

func (u FlowUUID) String() string

type Group

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

Group represents a grouping of contacts

func NewGroup

func NewGroup(uuid GroupUUID, name string, query string) *Group

NewGroup returns a new group object with the passed in uuid and name

func ReadGroup added in v0.4.0

func ReadGroup(data json.RawMessage) (*Group, error)

func (*Group) CheckDynamicMembership added in v0.4.0

func (g *Group) CheckDynamicMembership(session Session, contact *Contact) (bool, error)

func (*Group) Default

func (g *Group) Default() interface{}

Default returns the default value for this group

func (*Group) IsDynamic added in v0.4.0

func (g *Group) IsDynamic() bool

IsDynamic returns whether this group is dynamic

func (*Group) Name

func (g *Group) Name() string

Name returns the name of the group

func (*Group) ParsedQuery added in v0.4.0

func (g *Group) ParsedQuery() (*contactql.ContactQuery, error)

ParsedQuery returns the parsed query of a dynamic group (cached)

func (*Group) Query added in v0.4.0

func (g *Group) Query() string

Query returns the query of a dynamic group

func (*Group) Reference added in v0.4.0

func (g *Group) Reference() *GroupReference

func (*Group) Resolve

func (g *Group) Resolve(key string) interface{}

Resolve resolves the passed in key to a value

func (*Group) String

func (g *Group) String() string

String satisfies the stringer interface returning the name of the group

func (*Group) UUID

func (g *Group) UUID() GroupUUID

UUID returns the UUID of the group

type GroupList

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

GroupList defines a contact's list of groups

func NewGroupList added in v0.4.0

func NewGroupList(groups []*Group) *GroupList

func (*GroupList) Add added in v0.4.0

func (l *GroupList) Add(group *Group) bool

func (*GroupList) All added in v0.4.0

func (l *GroupList) All() []*Group

func (*GroupList) Clone added in v0.4.0

func (l *GroupList) Clone() *GroupList

func (*GroupList) Count added in v0.4.0

func (l *GroupList) Count() int

func (GroupList) Default

func (l GroupList) Default() interface{}

Default returns the default value for this group, which is our entire list

func (*GroupList) FindByUUID added in v0.4.0

func (l *GroupList) FindByUUID(uuid GroupUUID) *Group

FindGroup returns the group with the passed in UUID or nil if not found

func (*GroupList) Remove added in v0.4.0

func (l *GroupList) Remove(group *Group) bool

func (*GroupList) Resolve

func (l *GroupList) Resolve(key string) interface{}

Resolve looks up the passed in key for the group list, which must be either "count" or a numerical index

func (GroupList) String

func (l GroupList) String() string

String stringifies the group list, joining our names with a comma

type GroupReference added in v0.4.0

type GroupReference struct {
	UUID      GroupUUID `json:"uuid,omitempty" validate:"omitempty,uuid4"`
	Name      string    `json:"name,omitempty"`
	NameMatch string    `json:"name_match,omitempty"`
}

GroupReference is used to reference a group

func NewGroupReference added in v0.4.0

func NewGroupReference(uuid GroupUUID, name string) *GroupReference

NewGroupReference creates a new group reference with the given UUID and name

func NewVariableGroupReference added in v0.4.0

func NewVariableGroupReference(nameMatch string) *GroupReference

NewVariableGroupReference creates a new group reference from the given templatized name match

type GroupSet added in v0.4.0

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

GroupSet defines the unordered set of all groups for a session

func NewGroupSet added in v0.4.0

func NewGroupSet(groups []*Group) *GroupSet

func ReadGroupSet added in v0.4.0

func ReadGroupSet(data json.RawMessage) (*GroupSet, error)

func (*GroupSet) All added in v0.4.0

func (s *GroupSet) All() []*Group

func (*GroupSet) FindByName added in v0.4.0

func (s *GroupSet) FindByName(name string) *Group

FindByName looks for a group with the given name (case-insensitive)

func (*GroupSet) FindByUUID added in v0.4.0

func (s *GroupSet) FindByUUID(uuid GroupUUID) *Group

type GroupUUID

type GroupUUID UUID

func (GroupUUID) String

func (u GroupUUID) String() string

type Input

type Input interface {
	utils.VariableResolver
	utils.Typed

	UUID() InputUUID
	CreatedOn() time.Time
	Channel() Channel
}

type InputUUID added in v0.4.0

type InputUUID UUID

func (InputUUID) String added in v0.4.0

func (u InputUUID) String() string

type Label

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

Label represents a message label

func NewLabel

func NewLabel(uuid LabelUUID, name string) *Label

NewLabel creates a new label given the passed in uuid and name

func ReadLabel added in v0.4.0

func ReadLabel(data json.RawMessage) (*Label, error)

func (*Label) Name

func (l *Label) Name() string

Name returns the name of this label

func (*Label) Reference added in v0.4.0

func (l *Label) Reference() *LabelReference

func (*Label) UUID

func (l *Label) UUID() LabelUUID

UUID returns the UUID of this label

type LabelReference added in v0.4.0

type LabelReference struct {
	UUID      LabelUUID `json:"uuid,omitempty" validate:"omitempty,uuid4"`
	Name      string    `json:"name,omitempty"`
	NameMatch string    `json:"name_match,omitempty"`
}

LabelReference is used to reference a label

func NewLabelReference added in v0.4.0

func NewLabelReference(uuid LabelUUID, name string) *LabelReference

NewLabelReference creates a new label reference with the given UUID and name

func NewVariableLabelReference added in v0.4.0

func NewVariableLabelReference(nameMatch string) *LabelReference

NewVariableLabelReference creates a new label reference from the given templatized name match

type LabelSet added in v0.4.0

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

LabelSet defines the unordered set of all labels for a session

func NewLabelSet added in v0.4.0

func NewLabelSet(labels []*Label) *LabelSet

func ReadLabelSet added in v0.4.0

func ReadLabelSet(data json.RawMessage) (*LabelSet, error)

func (*LabelSet) FindByName added in v0.4.0

func (s *LabelSet) FindByName(name string) *Label

FindByName looks for a label with the given name (case-insensitive)

func (*LabelSet) FindByUUID added in v0.4.0

func (s *LabelSet) FindByUUID(uuid LabelUUID) *Label

type LabelUUID

type LabelUUID UUID

func (LabelUUID) String

func (u LabelUUID) String() string

type LogEntry added in v0.4.0

type LogEntry interface {
	Step() Step
	Action() Action
	Event() Event
}

LogEntry is a container for a new event generated by the engine, i.e. not from the caller

type MsgDirection

type MsgDirection string

MsgDirection is the direction of a Msg (either in or out)

const (
	// MsgOut represents an outgoing message
	MsgOut MsgDirection = "O"

	// MsgIn represents an incoming message
	MsgIn MsgDirection = "I"
)

type Node

type Node interface {
	UUID() NodeUUID

	Router() Router
	Actions() []Action
	Exits() []Exit
	Wait() Wait
}

type NodeUUID

type NodeUUID UUID

func (NodeUUID) String

func (u NodeUUID) String() string

type Result

type Result struct {
	Name              string    `json:"name"`
	Value             string    `json:"value"`
	Category          string    `json:"category,omitempty"`
	CategoryLocalized string    `json:"category_localized,omitempty"`
	NodeUUID          NodeUUID  `json:"node_uuid"`
	Input             string    `json:"input"`
	CreatedOn         time.Time `json:"created_on"`
}

Result represents a result value in our flow run. Results have a name for which they are the result for, the value itself of the result, optional category and the date and node the result was collected on

func (*Result) Default

func (r *Result) Default() interface{}

Default returns the default value for a result, which is our value

func (*Result) Resolve

func (r *Result) Resolve(key string) interface{}

Resolve resolves the passed in key to a value. Result values have a name, value, category, node and created_on

func (*Result) String

func (r *Result) String() string

String returns the string representation of a result, which is our value

type Results

type Results map[string]*Result

Results is our wrapper around a map of snakified result names to result objects

func NewResults

func NewResults() Results

func (Results) Clone added in v0.4.0

func (r Results) Clone() Results

func (Results) Default

func (r Results) Default() interface{}

Default returns the default value for our Results, which is the entire map

func (Results) Resolve

func (r Results) Resolve(key string) interface{}

Resolve resolves the passed in key, which is snakified before lookup

func (Results) Save

func (r Results) Save(name string, value string, category string, categoryLocalized string, nodeUUID NodeUUID, input string, createdOn time.Time)

Save saves a new result in our map. The key is saved in a snakified format

func (Results) String

func (r Results) String() string

String returns the string representation of our Results, which is a key/value pairing of our fields

type Route

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

func NewRoute

func NewRoute(exit ExitUUID, match string) Route

func (Route) Exit

func (r Route) Exit() ExitUUID

func (Route) Match

func (r Route) Match() string

type Router

type Router interface {
	PickRoute(FlowRun, []Exit, Step) (interface{}, Route, error)
	Validate([]Exit) error
	ResultName() string
	utils.Typed
}

type RunStatus

type RunStatus string

RunStatus represents the current status of the flow run

const (
	// RunStatusActive represents a run that is still active
	RunStatusActive RunStatus = "active"

	// RunStatusCompleted represents a run that has run to completion
	RunStatusCompleted RunStatus = "completed"

	// RunStatusWaiting represents a run which is waiting for something from the caller
	RunStatusWaiting RunStatus = "waiting"

	// RunStatusErrored represents a run that encountered an error
	RunStatusErrored RunStatus = "errored"

	// RunStatusExpired represents a run that expired due to inactivity
	RunStatusExpired RunStatus = "expired"

	// RunStatusInterrupted represents a run that was interrupted by another flow
	RunStatusInterrupted RunStatus = "interrupted"
)

func (RunStatus) String

func (r RunStatus) String() string

type RunSummary added in v0.4.0

type RunSummary interface {
	UUID() RunUUID
	Contact() *Contact
	Flow() Flow
	Status() RunStatus
	Results() Results
}

RunSummary represents the minimum information available about all runs (current or related) and is the representation of runs made accessible to router tests.

func NewRunSummaryFromRun added in v0.4.0

func NewRunSummaryFromRun(run FlowRun) RunSummary

func ReadRunSummary added in v0.4.0

func ReadRunSummary(session Session, data json.RawMessage) (RunSummary, error)

type RunUUID

type RunUUID UUID

func (RunUUID) String

func (u RunUUID) String() string

type Session

type Session interface {
	Assets() SessionAssets

	Environment() utils.Environment
	SetEnvironment(utils.Environment)

	Contact() *Contact
	SetContact(*Contact)

	Status() SessionStatus
	Trigger() Trigger
	PushFlow(Flow, FlowRun)
	Wait() Wait
	FlowOnStack(FlowUUID) bool

	Start(Trigger, []Event) error
	Resume([]Event) error
	Runs() []FlowRun
	GetRun(RunUUID) (FlowRun, error)
	GetCurrentChild(FlowRun) FlowRun

	Log() []LogEntry
	LogEvent(Step, Action, Event)
	ClearLog()
}

Session represents the session of a flow run which may contain many runs

type SessionAssets added in v0.4.0

type SessionAssets interface {
	GetChannel(ChannelUUID) (Channel, error)

	GetField(FieldKey) (*Field, error)
	GetFieldSet() (*FieldSet, error)

	GetFlow(FlowUUID) (Flow, error)

	GetGroup(GroupUUID) (*Group, error)
	GetGroupSet() (*GroupSet, error)

	GetLabel(LabelUUID) (*Label, error)
	GetLabelSet() (*LabelSet, error)

	HasLocations() bool
	GetLocationHierarchy() (*utils.LocationHierarchy, error)
}

type SessionStatus added in v0.4.0

type SessionStatus string

RunStatus represents the current status of the engine session

const (
	// SessionStatusActive represents a session that is still active
	SessionStatusActive SessionStatus = "active"

	// SessionStatusCompleted represents a session that has run to completion
	SessionStatusCompleted SessionStatus = "completed"

	// SessionStatusWaiting represents a session which is waiting for something from the caller
	SessionStatusWaiting SessionStatus = "waiting"

	// SessionStatusErrored represents a session that encountered an error
	SessionStatusErrored SessionStatus = "errored"
)

func (SessionStatus) String added in v0.4.0

func (r SessionStatus) String() string

type Step

type Step interface {
	utils.VariableResolver

	UUID() StepUUID
	NodeUUID() NodeUUID
	ExitUUID() ExitUUID

	ArrivedOn() time.Time
	LeftOn() *time.Time

	Leave(ExitUUID)

	Events() []Event
}

type StepUUID

type StepUUID UUID

func (StepUUID) String

func (u StepUUID) String() string

type Translations

type Translations interface {
	GetTextArray(uuid UUID, key string) []string
}

Translations provide a way to get the translation for a specific language for a uuid/key pair

type Trigger added in v0.4.0

type Trigger interface {
	utils.VariableResolver
	utils.Typed

	Environment() utils.Environment
	Flow() Flow
	Contact() *Contact
	Params() utils.JSONFragment
	TriggeredOn() time.Time
}

type URNList

type URNList []urns.URN

URNList is the list of a contact's URNs

func (URNList) Clone added in v0.4.0

func (l URNList) Clone() URNList

func (URNList) Default

func (l URNList) Default() interface{}

func (URNList) Resolve

func (l URNList) Resolve(key string) interface{}

func (URNList) String

func (l URNList) String() string

func (URNList) WithScheme added in v0.4.4

func (l URNList) WithScheme(scheme string) URNList

type UUID

type UUID string

type Wait

type Wait interface {
	utils.Typed

	Begin(FlowRun, Step)
	CanResume(FlowRun, Step) bool
	HasTimedOut() bool

	Resume(FlowRun)
	ResumeByTimeOut(FlowRun)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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