Skip to content

Commit

Permalink
Merge pull request #100 from weni-ai/fix/broadcast-new-type-field
Browse files Browse the repository at this point in the history
feat: add new broadcast_type attribute
  • Loading branch information
paulobernardoaf authored Nov 22, 2024
2 parents 10f5e51 + 9476c61 commit 1d18119
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 39 deletions.
4 changes: 4 additions & 0 deletions WENI-CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
1.5.3
----------
* Add new broadcast_type attribute

1.5.2
----------
* Add queue uuid on topic
Expand Down
2 changes: 1 addition & 1 deletion cmd/flowrunner/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func TestPrintEvent(t *testing.T) {
event flows.Event
expected string
}{
{events.NewBroadcastCreated(map[envs.Language]*events.BroadcastTranslation{"eng": {Text: "hello"}}, "eng", nil, nil, nil), `🔉 broadcasted 'hello' to ...`},
{events.NewBroadcastCreated(map[envs.Language]*events.BroadcastTranslation{"eng": {Text: "hello"}}, "eng", nil, nil, nil, events.BroadcastTypeDefault), `🔉 broadcasted 'hello' to ...`},
{events.NewContactFieldChanged(sa.Fields().Get("gender"), flows.NewValue(types.NewXText("M"), nil, nil, "", "", "")), `✏️ field 'gender' changed to 'M'`},
{events.NewContactFieldChanged(sa.Fields().Get("gender"), nil), `✏️ field 'gender' cleared`},
{events.NewContactGroupsChanged([]*flows.Group{sa.Groups().Get("b7cf0d83-f1c9-411c-96fd-c511a4cfa86d")}, nil), `👪 added to 'Testers'`},
Expand Down
14 changes: 7 additions & 7 deletions flows/actions/send_broadcast.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ const TypeSendBroadcast string = "send_broadcast"
// The URNs and text fields may be templates. A [event:broadcast_created] event will be created for each unique urn, contact and group
// with the evaluated text.
//
// {
// "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
// "type": "send_broadcast",
// "urns": ["tel:+12065551212"],
// "text": "Hi @contact.name, are you ready to complete today's survey?"
// }
// {
// "uuid": "8eebd020-1af5-431c-b943-aa670fc74da9",
// "type": "send_broadcast",
// "urns": ["tel:+12065551212"],
// "text": "Hi @contact.name, are you ready to complete today's survey?"
// }
//
// @action send_broadcast
type SendBroadcastAction struct {
Expand Down Expand Up @@ -84,7 +84,7 @@ func (a *SendBroadcastAction) Execute(run flows.FlowRun, step flows.Step, logMod

// if we have any recipients, log an event
if len(urnList) > 0 || len(contactRefs) > 0 || len(groupRefs) > 0 {
logEvent(events.NewBroadcastCreated(translations, run.Flow().Language(), groupRefs, contactRefs, urnList))
logEvent(events.NewBroadcastCreated(translations, run.Flow().Language(), groupRefs, contactRefs, urnList, events.BroadcastTypeDefault))
}

return nil
Expand Down
3 changes: 3 additions & 0 deletions flows/actions/testdata/send_broadcast.json
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
"events": [
{
"type": "broadcast_created",
"broadcast_type": "D",
"created_on": "2018-10-18T14:20:30.000123456Z",
"step_uuid": "59d74b86-3e2f-4a93-aece-b05d2fdcde0c",
"translations": {
Expand Down Expand Up @@ -168,6 +169,7 @@
},
{
"type": "broadcast_created",
"broadcast_type": "D",
"created_on": "2018-10-18T14:20:30.000123456Z",
"step_uuid": "59d74b86-3e2f-4a93-aece-b05d2fdcde0c",
"translations": {
Expand Down Expand Up @@ -269,6 +271,7 @@
"events": [
{
"type": "broadcast_created",
"broadcast_type": "D",
"created_on": "2018-10-18T14:20:30.000123456Z",
"step_uuid": "59d74b86-3e2f-4a93-aece-b05d2fdcde0c",
"translations": {
Expand Down
2 changes: 2 additions & 0 deletions flows/events/base_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,11 @@ func TestEventMarshaling(t *testing.T) {
flows.NewContactReference(flows.ContactUUID("b2aaf598-1bb3-4c7d-b6bb-1f8dbe2ac16f"), "Jim"),
},
[]urns.URN{urns.URN("tel:+12345678900")},
events.BroadcastTypeDefault,
),
`{
"base_language": "eng",
"broadcast_type": "D",
"contacts": [
{
"name": "Jim",
Expand Down
71 changes: 40 additions & 31 deletions flows/events/broadcast_created.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ func init() {
registerType(TypeBroadcastCreated, func() flows.Event { return &BroadcastCreatedEvent{} })
}

type BroadcastType string

const (
BroadcastTypeDefault = BroadcastType("D")
BroadcastTypeWhatsApp = BroadcastType("W")
)

// TypeBroadcastCreated is a constant for outgoing message events
const TypeBroadcastCreated string = "broadcast_created"

Expand All @@ -24,46 +31,48 @@ type BroadcastTranslation struct {

// BroadcastCreatedEvent events are created when an action wants to send a message to other contacts.
//
// {
// "type": "broadcast_created",
// "created_on": "2006-01-02T15:04:05Z",
// "translations": {
// "eng": {
// "text": "hi, what's up",
// "attachments": [],
// "quick_replies": ["All good", "Got 99 problems"]
// },
// "spa": {
// "text": "Que pasa",
// "attachments": [],
// "quick_replies": ["Todo bien", "Tengo 99 problemas"]
// }
// },
// "base_language": "eng",
// "urns": ["tel:+12065551212"],
// "contacts": [{"uuid": "0e06f977-cbb7-475f-9d0b-a0c4aaec7f6a", "name": "Bob"}]
// }
// {
// "type": "broadcast_created",
// "created_on": "2006-01-02T15:04:05Z",
// "translations": {
// "eng": {
// "text": "hi, what's up",
// "attachments": [],
// "quick_replies": ["All good", "Got 99 problems"]
// },
// "spa": {
// "text": "Que pasa",
// "attachments": [],
// "quick_replies": ["Todo bien", "Tengo 99 problemas"]
// }
// },
// "base_language": "eng",
// "urns": ["tel:+12065551212"],
// "contacts": [{"uuid": "0e06f977-cbb7-475f-9d0b-a0c4aaec7f6a", "name": "Bob"}]
// }
//
// @event broadcast_created
type BroadcastCreatedEvent struct {
baseEvent

Translations map[envs.Language]*BroadcastTranslation `json:"translations" validate:"min=1,dive"`
BaseLanguage envs.Language `json:"base_language" validate:"required"`
Groups []*assets.GroupReference `json:"groups,omitempty" validate:"dive"`
Contacts []*flows.ContactReference `json:"contacts,omitempty" validate:"dive"`
URNs []urns.URN `json:"urns,omitempty" validate:"dive,urn"`
Translations map[envs.Language]*BroadcastTranslation `json:"translations" validate:"min=1,dive"`
BaseLanguage envs.Language `json:"base_language" validate:"required"`
Groups []*assets.GroupReference `json:"groups,omitempty" validate:"dive"`
Contacts []*flows.ContactReference `json:"contacts,omitempty" validate:"dive"`
URNs []urns.URN `json:"urns,omitempty" validate:"dive,urn"`
BroadcastType BroadcastType `json:"broadcast_type,omitempty"`
}

// NewBroadcastCreated creates a new outgoing msg event for the given recipients
func NewBroadcastCreated(translations map[envs.Language]*BroadcastTranslation, baseLanguage envs.Language, groups []*assets.GroupReference, contacts []*flows.ContactReference, urns []urns.URN) *BroadcastCreatedEvent {
func NewBroadcastCreated(translations map[envs.Language]*BroadcastTranslation, baseLanguage envs.Language, groups []*assets.GroupReference, contacts []*flows.ContactReference, urns []urns.URN, broadcastType BroadcastType) *BroadcastCreatedEvent {
return &BroadcastCreatedEvent{
baseEvent: newBaseEvent(TypeBroadcastCreated),
Translations: translations,
BaseLanguage: baseLanguage,
Groups: groups,
Contacts: contacts,
URNs: urns,
baseEvent: newBaseEvent(TypeBroadcastCreated),
Translations: translations,
BaseLanguage: baseLanguage,
Groups: groups,
Contacts: contacts,
URNs: urns,
BroadcastType: broadcastType,
}
}

Expand Down
4 changes: 4 additions & 0 deletions test/testdata/runner/all_actions.test.json
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@
},
{
"base_language": "eng",
"broadcast_type": "D",
"created_on": "2018-07-06T12:30:21.123456789Z",
"step_uuid": "8720f157-ca1c-432f-9c0b-2014ddc77094",
"translations": {
Expand All @@ -189,6 +190,7 @@
},
{
"base_language": "eng",
"broadcast_type": "D",
"created_on": "2018-07-06T12:30:23.123456789Z",
"groups": [
{
Expand Down Expand Up @@ -646,6 +648,7 @@
},
{
"base_language": "eng",
"broadcast_type": "D",
"created_on": "2018-07-06T12:30:21.123456789Z",
"step_uuid": "8720f157-ca1c-432f-9c0b-2014ddc77094",
"translations": {
Expand All @@ -663,6 +666,7 @@
},
{
"base_language": "eng",
"broadcast_type": "D",
"created_on": "2018-07-06T12:30:23.123456789Z",
"groups": [
{
Expand Down

0 comments on commit 1d18119

Please sign in to comment.