Help us shape the future of Go! Take the 2026 Go Developer Survey

assets

package
v0.160.0 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2022 License: AGPL-3.0 Imports: 7 Imported by: 51

Documentation

Index

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

func UserReferenceValidation added in v0.134.0

func UserReferenceValidation(sl validator.StructLevel)

UserReferenceValidation validates that the given user reference is either a concrete reference or an email matcher

Types

type Channel added in v0.15.0

type Channel interface {
	UUID() ChannelUUID
	Name() string
	Address() string
	Schemes() []string
	Roles() []ChannelRole
	Parent() *ChannelReference
	Country() envs.Country
	MatchPrefixes() []string
	AllowInternational() bool
}

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) GenericUUID added in v0.39.4

func (r *ChannelReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

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

type ChannelUUID uuids.UUID

ChannelUUID is the UUID of a channel

type Classifier added in v0.51.0

type Classifier interface {
	UUID() ClassifierUUID
	Name() string
	Type() string
	Intents() []string
}

Classifier is an NLU classifier.

{
  "uuid": "37657cf7-5eab-4286-9cb0-bbf270587bad",
  "name": "Booking",
  "type": "wit",
  "intents": ["book_flight", "book_hotel"]
}

@asset classifier

type ClassifierReference added in v0.51.0

type ClassifierReference struct {
	UUID ClassifierUUID `json:"uuid" validate:"required,uuid"`
	Name string         `json:"name"`
}

ClassifierReference is used to reference a classifier

func NewClassifierReference added in v0.51.0

func NewClassifierReference(uuid ClassifierUUID, name string) *ClassifierReference

NewClassifierReference creates a new classifier reference with the given UUID and name

func (*ClassifierReference) GenericUUID added in v0.51.0

func (r *ClassifierReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

func (*ClassifierReference) Identity added in v0.51.0

func (r *ClassifierReference) Identity() string

Identity returns the unique identity of the asset

func (*ClassifierReference) String added in v0.51.0

func (r *ClassifierReference) String() string

func (*ClassifierReference) Type added in v0.51.0

func (r *ClassifierReference) Type() string

Type returns the name of the asset type

func (*ClassifierReference) Variable added in v0.51.0

func (r *ClassifierReference) Variable() bool

Variable returns whether this a variable (vs concrete) reference

type ClassifierUUID added in v0.51.0

type ClassifierUUID uuids.UUID

ClassifierUUID is the UUID of an NLU classifier

type Field added in v0.15.0

type Field interface {
	UUID() FieldUUID
	Key() string
	Name() string
	Type() FieldType
}

Field is a custom contact property.

{
  "uuid": "d66a7823-eada-40e5-9a3a-57239d4690bf",
  "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 a 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 name

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

const (
	FieldTypeText     FieldType = "text"
	FieldTypeNumber   FieldType = "number"
	FieldTypeDatetime FieldType = "datetime"
	FieldTypeWard     FieldType = "ward"
	FieldTypeDistrict FieldType = "district"
	FieldTypeState    FieldType = "state"
)

field value types

type FieldUUID added in v0.46.0

type FieldUUID uuids.UUID

FieldUUID is the UUID of a 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) GenericUUID added in v0.39.4

func (r *FlowReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

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 FlowUUID added in v0.15.0

type FlowUUID uuids.UUID

FlowUUID is the UUID of a flow

type Global added in v0.57.0

type Global interface {
	Key() string
	Name() string
	Value() string
}

Global is a named constant.

{
  "key": "organization_name",
  "name": "Organization Name",
  "value": "U-Report"
}

@asset global

type GlobalReference added in v0.57.0

type GlobalReference struct {
	Key  string `json:"key" validate:"required"`
	Name string `json:"name"`
}

GlobalReference is a reference to a global

func NewGlobalReference added in v0.57.0

func NewGlobalReference(key string, name string) *GlobalReference

NewGlobalReference creates a new global reference with the given key and name

func (*GlobalReference) Identity added in v0.57.0

func (r *GlobalReference) Identity() string

Identity returns the unique identity of the asset

func (*GlobalReference) String added in v0.57.0

func (r *GlobalReference) String() string

func (*GlobalReference) Type added in v0.57.0

func (r *GlobalReference) Type() string

Type returns the name of the asset type

func (*GlobalReference) Variable added in v0.57.0

func (r *GlobalReference) Variable() bool

Variable returns whether this a variable (vs concrete) reference

type Group added in v0.15.0

type Group interface {
	UUID() GroupUUID
	Name() string
	Query() string
}

Group is a set of contacts which can be added to and removed from manually, or 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" engine:"evaluated"`
}

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) GenericUUID added in v0.39.4

func (r *GroupReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

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 GroupUUID added in v0.15.0

type GroupUUID uuids.UUID

GroupUUID is the UUID of a group

type Label added in v0.15.0

type Label interface {
	UUID() LabelUUID
	Name() string
}

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" engine:"evaluated"`
}

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) GenericUUID added in v0.39.4

func (r *LabelReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

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 LabelUUID added in v0.15.0

type LabelUUID uuids.UUID

LabelUUID is the UUID of a label

type LocationHierarchy added in v0.15.0

type LocationHierarchy interface {
	FindByPath(path envs.LocationPath) *envs.Location
	FindByName(name string, level envs.LocationLevel, parent *envs.Location) []*envs.Location
}

LocationHierarchy is a searchable hierarchy 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, error)

MissingCallback is callback to be invoked when an asset is missing

var IgnoreMissing MissingCallback = func(Reference, error) {}

IgnoreMissing does nothing if an asset is reported missing

var PanicOnMissing MissingCallback = func(a Reference, err error) { panic(fmt.Sprintf("missing asset: %s, due to: %s", a, err)) }

PanicOnMissing panics if an asset is reported missing

type Reference added in v0.26.0

type Reference interface {
	fmt.Stringer

	Type() string
	Identity() string
	Variable() bool
}

Reference is interface for all reference types

type Resthook added in v0.15.0

type Resthook interface {
	Slug() string
	Subscribers() []string
}

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 Source added in v0.48.1

type Source interface {
	Channels() ([]Channel, error)
	Classifiers() ([]Classifier, error)
	Fields() ([]Field, error)
	FlowByUUID(FlowUUID) (Flow, error)
	FlowByName(string) (Flow, error)
	Globals() ([]Global, error)
	Groups() ([]Group, error)
	Labels() ([]Label, error)
	Locations() ([]LocationHierarchy, error)
	Resthooks() ([]Resthook, error)
	Templates() ([]Template, error)
	Ticketers() ([]Ticketer, error)
	Topics() ([]Topic, error)
	Users() ([]User, error)
}

Source is a source of assets

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 NewTemplateReference added in v0.38.1

func NewTemplateReference(uuid TemplateUUID, name string) *TemplateReference

NewTemplateReference creates a new template reference with the given UUID and name

func (*TemplateReference) GenericUUID added in v0.39.4

func (r *TemplateReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

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() envs.Language
	Country() envs.Country
	Namespace() string
	VariableCount() int
	Channel() ChannelReference
}

TemplateTranslation represents a single translation for a specific template and channel

type TemplateUUID added in v0.32.0

type TemplateUUID uuids.UUID

TemplateUUID is the UUID of a template

type Ticketer added in v0.86.0

type Ticketer interface {
	UUID() TicketerUUID
	Name() string
	Type() string
}

Ticketer is a system which can open or close tickets

{
  "uuid": "37657cf7-5eab-4286-9cb0-bbf270587bad",
  "name": "Support Tickets",
  "type": "mailgun"
}

@asset ticketer

type TicketerReference added in v0.86.0

type TicketerReference struct {
	UUID TicketerUUID `json:"uuid" validate:"required,uuid"`
	Name string       `json:"name"`
}

TicketerReference is used to reference a ticketer

func NewTicketerReference added in v0.86.0

func NewTicketerReference(uuid TicketerUUID, name string) *TicketerReference

NewTicketerReference creates a new classifier reference with the given UUID and name

func (*TicketerReference) GenericUUID added in v0.86.0

func (r *TicketerReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

func (*TicketerReference) Identity added in v0.86.0

func (r *TicketerReference) Identity() string

Identity returns the unique identity of the asset

func (*TicketerReference) String added in v0.86.0

func (r *TicketerReference) String() string

func (*TicketerReference) Type added in v0.86.0

func (r *TicketerReference) Type() string

Type returns the name of the asset type

func (*TicketerReference) Variable added in v0.86.0

func (r *TicketerReference) Variable() bool

Variable returns whether this a variable (vs concrete) reference

type TicketerUUID added in v0.86.0

type TicketerUUID uuids.UUID

TicketerUUID is the UUID of a ticketer

type Topic added in v0.132.0

type Topic interface {
	UUID() TopicUUID
	Name() string
}

Topic categorizes tickets

{
  "uuid": "cd48bd11-08b9-44e3-9778-8e26adf08a7a",
  "name": "Weather"
}

@asset topic

type TopicReference added in v0.132.0

type TopicReference struct {
	UUID TopicUUID `json:"uuid" validate:"required,uuid"`
	Name string    `json:"name"`
}

TopicReference is used to reference a topic

func NewTopicReference added in v0.132.0

func NewTopicReference(uuid TopicUUID, name string) *TopicReference

NewTopicReference creates a new topic reference with the given UUID and name

func (*TopicReference) GenericUUID added in v0.132.0

func (r *TopicReference) GenericUUID() uuids.UUID

GenericUUID returns the untyped UUID

func (*TopicReference) Identity added in v0.132.0

func (r *TopicReference) Identity() string

Identity returns the unique identity of the asset

func (*TopicReference) String added in v0.132.0

func (r *TopicReference) String() string

func (*TopicReference) Type added in v0.132.0

func (r *TopicReference) Type() string

Type returns the name of the asset type

func (*TopicReference) Variable added in v0.132.0

func (r *TopicReference) Variable() bool

Variable returns whether this a variable (vs concrete) reference

type TopicUUID added in v0.132.0

type TopicUUID uuids.UUID

TopicUUID is the UUID of a topic

type TypedReference added in v0.71.3

type TypedReference struct {
	Reference Reference `json:"-"`
	Type      string    `json:"type"`
}

TypedReference is a utility struct for when we need to serialize a reference with a type

func NewTypedReference added in v0.71.3

func NewTypedReference(r Reference) TypedReference

NewTypedReference creates a new typed reference

func (TypedReference) MarshalJSON added in v0.71.3

func (r TypedReference) MarshalJSON() ([]byte, error)

type UUIDReference added in v0.39.4

type UUIDReference interface {
	Reference
	GenericUUID() uuids.UUID
}

UUIDReference is interface for all reference types that contain a UUID

type User added in v0.124.0

type User interface {
	Email() string
	Name() string
}

User is an person who can trigger flows or be assigned tickets etc.

{
  "email": "bob@nyaruka.com",
  "name": "Bob"
}

@asset user

type UserReference added in v0.124.0

type UserReference struct {
	Email      string `json:"email,omitempty" validate:"omitempty,email"`
	Name       string `json:"name,omitempty"`
	EmailMatch string `json:"email_match,omitempty" engine:"evaluated"`
}

UserReference is used to reference a user

func NewUserReference added in v0.124.0

func NewUserReference(email, name string) *UserReference

NewUserReference creates a new user reference with the given key and name

func NewVariableUserReference added in v0.134.0

func NewVariableUserReference(emailMatch string) *UserReference

NewVariableUserReference creates a new user reference from the given templatized email match

func (*UserReference) Identity added in v0.124.0

func (r *UserReference) Identity() string

Identity returns the unique identity of the asset

func (*UserReference) String added in v0.124.0

func (r *UserReference) String() string

func (*UserReference) Type added in v0.124.0

func (r *UserReference) Type() string

Type returns the name of the asset type

func (*UserReference) UnmarshalJSON added in v0.124.0

func (r *UserReference) UnmarshalJSON(data []byte) error

UmarshalJSON unmarshals this object from JSON

func (*UserReference) Variable added in v0.124.0

func (r *UserReference) Variable() bool

Variable returns whether this a variable (vs concrete) reference

Directories

Path Synopsis
Package static is an implementation of Source which loads assets from a static JSON file.
Package static is an implementation of Source which loads assets from a static JSON file.

Jump to

Keyboard shortcuts

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