Documentation ¶
Index ¶
- func GroupReferenceValidation(sl validator.StructLevel)
- func LabelReferenceValidation(sl validator.StructLevel)
- type AssetSource
- type Channel
- type ChannelReference
- type ChannelRole
- type ChannelUUID
- type Field
- type FieldReference
- type FieldType
- type Flow
- type FlowReference
- type FlowUUID
- type Group
- type GroupReference
- type GroupUUID
- type Label
- type LabelReference
- type LabelUUID
- type LocationHierarchy
- type MissingCallback
- type Reference
- type Resthook
- type Template
- type TemplateReference
- type TemplateTranslation
- type TemplateUUID
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GroupReferenceValidation ¶ added in v0.15.1
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.15.1
func LabelReferenceValidation(sl validator.StructLevel)
LabelReferenceValidation validates that the given label reference is either a concrete reference or a name matcher
Types ¶
type AssetSource ¶ added in v0.15.0
type AssetSource interface { Channels() ([]Channel, error) Fields() ([]Field, error) Flow(FlowUUID) (Flow, error) Groups() ([]Group, error) Labels() ([]Label, error) Locations() ([]LocationHierarchy, error) Resthooks() ([]Resthook, error) Templates() ([]Template, error) }
AssetSource is a source of assets
type Channel ¶ added in v0.15.0
type Channel interface { UUID() ChannelUUID Name() string Address() string Schemes() []string Roles() []ChannelRole Parent() *ChannelReference Country() string MatchPrefixes() []string }
Channel is something that can send/receive messages.
{ "uuid": "14782905-81a6-4910-bc9f-93ad287b23c3", "name": "My Android", "address": "+593979011111", "schemes": ["tel"], "roles": ["send", "receive"], "country": "EC" }
@asset channel
type ChannelReference ¶ added in v0.15.1
type ChannelReference struct { UUID ChannelUUID `json:"uuid" validate:"required,uuid"` Name string `json:"name"` }
ChannelReference is used to reference a channel
func NewChannelReference ¶ added in v0.15.1
func NewChannelReference(uuid ChannelUUID, name string) *ChannelReference
NewChannelReference creates a new channel reference with the given UUID and name
func (*ChannelReference) Identity ¶ added in v0.26.0
func (r *ChannelReference) Identity() string
Identity returns the unique identity of the asset
func (*ChannelReference) String ¶ added in v0.26.0
func (r *ChannelReference) String() string
func (*ChannelReference) Type ¶ added in v0.26.0
func (r *ChannelReference) Type() string
Type returns the name of the asset type
func (*ChannelReference) Variable ¶ added in v0.29.0
func (r *ChannelReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type ChannelRole ¶ added in v0.15.0
type ChannelRole string
ChannelRole is a role that a channel can perform
const ( ChannelRoleSend ChannelRole = "send" ChannelRoleReceive ChannelRole = "receive" ChannelRoleCall ChannelRole = "call" ChannelRoleAnswer ChannelRole = "answer" ChannelRoleUSSD ChannelRole = "ussd" )
different roles that channels can perform
type ChannelUUID ¶ added in v0.15.0
ChannelUUID is the UUID of a channel
type Field ¶ added in v0.15.0
Field is a custom contact property.
{ "key": "gender", "name": "Gender", "type": "text" }
@asset field
type FieldReference ¶ added in v0.15.1
type FieldReference struct { Key string `json:"key" validate:"required"` Name string `json:"name"` }
FieldReference is a reference to field
func NewFieldReference ¶ added in v0.15.1
func NewFieldReference(key string, name string) *FieldReference
NewFieldReference creates a new field reference with the given key and label
func (*FieldReference) Identity ¶ added in v0.26.0
func (r *FieldReference) Identity() string
Identity returns the unique identity of the asset
func (*FieldReference) String ¶ added in v0.26.0
func (r *FieldReference) String() string
func (*FieldReference) Type ¶ added in v0.26.0
func (r *FieldReference) Type() string
Type returns the name of the asset type
func (*FieldReference) Variable ¶ added in v0.29.0
func (r *FieldReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type FieldType ¶ added in v0.15.0
type FieldType string
FieldType is the data type of values for each field
type Flow ¶ added in v0.15.0
type Flow interface { UUID() FlowUUID Name() string Definition() json.RawMessage }
Flow is graph of nodes with actions and routers.
{ "uuid": "14782905-81a6-4910-bc9f-93ad287b23c3", "name": "Registration", "definition": { "nodes": [] } }
@asset flow
type FlowReference ¶ added in v0.15.1
type FlowReference struct { UUID FlowUUID `json:"uuid" validate:"required,uuid4"` Name string `json:"name"` }
FlowReference is used to reference a flow from another flow
func NewFlowReference ¶ added in v0.15.1
func NewFlowReference(uuid FlowUUID, name string) *FlowReference
NewFlowReference creates a new flow reference with the given UUID and name
func (*FlowReference) Identity ¶ added in v0.26.0
func (r *FlowReference) Identity() string
Identity returns the unique identity of the asset
func (*FlowReference) String ¶ added in v0.26.0
func (r *FlowReference) String() string
func (*FlowReference) Type ¶ added in v0.26.0
func (r *FlowReference) Type() string
Type returns the name of the asset type
func (*FlowReference) Variable ¶ added in v0.29.0
func (r *FlowReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type Group ¶ added in v0.15.0
Group is a set of contacts which can be static or dynamic (i.e. based on a query).
{ "uuid": "14782905-81a6-4910-bc9f-93ad287b23c3", "name": "Youth", "query": "age <= 18" }
@asset group
type GroupReference ¶ added in v0.15.1
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.15.1
func NewGroupReference(uuid GroupUUID, name string) *GroupReference
NewGroupReference creates a new group reference with the given UUID and name
func NewVariableGroupReference ¶ added in v0.15.1
func NewVariableGroupReference(nameMatch string) *GroupReference
NewVariableGroupReference creates a new group reference from the given templatized name match
func (*GroupReference) Identity ¶ added in v0.26.0
func (r *GroupReference) Identity() string
Identity returns the unique identity of the asset
func (*GroupReference) String ¶ added in v0.26.0
func (r *GroupReference) String() string
func (*GroupReference) Type ¶ added in v0.26.0
func (r *GroupReference) Type() string
Type returns the name of the asset type
func (*GroupReference) Variable ¶ added in v0.29.0
func (r *GroupReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type Label ¶ added in v0.15.0
Label is an organizational tag that can be applied to a message.
{ "uuid": "14782905-81a6-4910-bc9f-93ad287b23c3", "name": "Spam" }
@asset label
type LabelReference ¶ added in v0.15.1
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.15.1
func NewLabelReference(uuid LabelUUID, name string) *LabelReference
NewLabelReference creates a new label reference with the given UUID and name
func NewVariableLabelReference ¶ added in v0.15.1
func NewVariableLabelReference(nameMatch string) *LabelReference
NewVariableLabelReference creates a new label reference from the given templatized name match
func (*LabelReference) Identity ¶ added in v0.26.0
func (r *LabelReference) Identity() string
Identity returns the unique identity of the asset
func (*LabelReference) String ¶ added in v0.26.0
func (r *LabelReference) String() string
func (*LabelReference) Type ¶ added in v0.26.0
func (r *LabelReference) Type() string
Type returns the name of the asset type
func (*LabelReference) Variable ¶ added in v0.29.0
func (r *LabelReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type LocationHierarchy ¶ added in v0.15.0
type LocationHierarchy interface { FindByPath(path utils.LocationPath) *utils.Location FindByName(name string, level utils.LocationLevel, parent *utils.Location) []*utils.Location }
LocationHierarchy is a searchable hierachy of locations.
{ "name": "Rwanda", "aliases": ["Ruanda"], "children": [ { "name": "Kigali City", "aliases": ["Kigali", "Kigari"], "children": [ { "name": "Gasabo", "children": [ { "id": "575743222", "name": "Gisozi" }, { "id": "457378732", "name": "Ndera" } ] }, { "name": "Nyarugenge", "children": [] } ] }, { "name": "Eastern Province" } ] }
@asset location
type MissingCallback ¶ added in v0.26.0
type MissingCallback func(Reference)
MissingCallback is callback to be invoked when an asset is missing
var IgnoreMissing MissingCallback = func(Reference) {}
IgnoreMissing does nothing if an asset is reported missing
var PanicOnMissing MissingCallback = func(a Reference) { panic(fmt.Sprintf("unable to find asset %s", a.String())) }
PanicOnMissing panics if an asset is reported missing
type Resthook ¶ added in v0.15.0
Resthook is a set of URLs which are subscribed to the named event.
{ "slug": "new-registration", "subscribers": [ "http://example.com/record.php?@contact.uuid" ] }
@asset resthook
type Template ¶ added in v0.32.0
type Template interface { UUID() TemplateUUID Name() string Translations() []TemplateTranslation }
Template is a message template, currently only used by WhatsApp channels
{ "name": "revive-issue", "uuid": "14782905-81a6-4910-bc9f-93ad287b23c3", "translations": [ { "language": "eng", "content": "Hi {{1}}, are you still experiencing your issue?", "channel": { "uuid": "cf26be4c-875f-4094-9e08-162c3c9dcb5b", "name": "Twilio Channel" } }, { "language": "fra", "content": "Bonjour {{1}}", "channel": { "uuid": "cf26be4c-875f-4094-9e08-162c3c9dcb5b", "name": "Twilio Channel" } } ] }
@asset template
type TemplateReference ¶ added in v0.32.0
type TemplateReference struct { UUID TemplateUUID `json:"uuid" validate:"required,uuid"` Name string `json:"name"` }
TemplateReference is used to reference a Template
func (*TemplateReference) Identity ¶ added in v0.32.0
func (r *TemplateReference) Identity() string
Identity returns the unique identity of the asset
func (*TemplateReference) String ¶ added in v0.32.0
func (r *TemplateReference) String() string
func (*TemplateReference) Type ¶ added in v0.32.0
func (r *TemplateReference) Type() string
Type returns the name of the asset type
func (*TemplateReference) Variable ¶ added in v0.32.0
func (r *TemplateReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type TemplateTranslation ¶ added in v0.32.0
type TemplateTranslation interface { Content() string Language() utils.Language VariableCount() int Channel() ChannelReference }
TemplateTranslation represents a single translation for a specific template and channel