Skip to content

Commit 96e2150

Browse files
authored
Merge pull request #1487 from nyaruka/msg_received_with_ticket
Add ticket_uuid to msg_received event
2 parents 2766330 + 1bf9b73 commit 96e2150

File tree

11 files changed

+77
-14
lines changed

11 files changed

+77
-14
lines changed

cmd/flowrunner/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ func RunFlow(eng flows.Engine, assetsPath string, flowUUID assets.FlowUUID, init
163163
var call *flows.Call
164164

165165
if initialMsg != "" {
166-
msg := events.NewMsgReceived(createMessage(contact, initialMsg))
166+
msg := events.NewMsgReceived(createMessage(contact, initialMsg), "")
167167
repro.Trigger = triggers.NewBuilder(flow.Reference(false)).MsgReceived(msg).Build()
168168

169169
printEvents([]flows.Event{msg}, out)
@@ -204,7 +204,7 @@ func RunFlow(eng flows.Engine, assetsPath string, flowUUID assets.FlowUUID, init
204204
status := flows.DialStatus(strings.TrimSpace(text[5:]))
205205
resume = resumes.NewDial(events.NewDialEnded(flows.NewDial(status, 10)))
206206
} else {
207-
msg := events.NewMsgReceived(createMessage(contact, scanner.Text()))
207+
msg := events.NewMsgReceived(createMessage(contact, scanner.Text()), "")
208208
resume = resumes.NewMsg(msg)
209209

210210
printEvents([]flows.Event{msg}, out)

flows/actions/base_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ func testActionType(t *testing.T, assetsJSON []byte, typeName string) {
213213
},
214214
"",
215215
)
216-
trigger = triggers.NewBuilder(flow.Reference(false)).MsgReceived(events.NewMsgReceived(msg)).Build()
216+
trigger = triggers.NewBuilder(flow.Reference(false)).MsgReceived(events.NewMsgReceived(msg, "")).Build()
217217
}
218218

219219
// create an engine instance
@@ -982,7 +982,7 @@ func TestStartSessionLoopProtectionWithInput(t *testing.T) {
982982
}
983983

984984
if session.Status() == flows.SessionStatusWaiting {
985-
resume := resumes.NewMsg(events.NewMsgReceived(flows.NewMsgIn(urns.NilURN, nil, "Hi there", nil, "SMS1234")))
985+
resume := resumes.NewMsg(events.NewMsgReceived(flows.NewMsgIn(urns.NilURN, nil, "Hi there", nil, "SMS1234"), ""))
986986
sprint, err = session.Resume(ctx, resume)
987987
require.NoError(t, err)
988988
}

flows/engine/session_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ func TestMaxSprintsPerSession(t *testing.T) {
374374
numResumes := 0
375375
for {
376376
msg := flows.NewMsgIn("tel:+593979123456", nil, "Teal", nil, "SMS1234")
377-
resume := resumes.NewMsg(events.NewMsgReceived(msg))
377+
resume := resumes.NewMsg(events.NewMsgReceived(msg, ""))
378378
numResumes++
379379

380380
_, err := session.Resume(ctx, resume)

flows/events/base_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,36 @@ func TestEventMarshaling(t *testing.T) {
264264
},
265265
`llm_called`,
266266
},
267+
{
268+
func() flows.Event {
269+
return events.NewMsgReceived(
270+
flows.NewMsgIn(
271+
urns.URN("tel:+12065551212"),
272+
assets.NewChannelReference(assets.ChannelUUID("57f1078f-88aa-46f4-a59a-948a5739c03d"), "My Android Phone"),
273+
"hi there",
274+
nil,
275+
"",
276+
),
277+
"",
278+
)
279+
},
280+
`msg_received`,
281+
},
282+
{
283+
func() flows.Event {
284+
return events.NewMsgReceived(
285+
flows.NewMsgIn(
286+
urns.URN("tel:+12065551212"),
287+
assets.NewChannelReference(assets.ChannelUUID("57f1078f-88aa-46f4-a59a-948a5739c03d"), "My Android Phone"),
288+
"hi there",
289+
[]utils.Attachment{"image/jpeg:https://s3.amazon.com/mybucket/attachment.jpg"},
290+
"ext-id-123",
291+
),
292+
"7481888c-07dd-47dc-bf22-ef7448696ffe",
293+
)
294+
},
295+
`msg_received_rich`,
296+
},
267297
{
268298
func() flows.Event {
269299
return events.NewMsgCreated(

flows/events/msg_received.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,16 @@ const TypeMsgReceived string = "msg_received"
3131
type MsgReceived struct {
3232
BaseEvent
3333

34-
Msg *flows.MsgIn `json:"msg" validate:"required"`
34+
Msg *flows.MsgIn `json:"msg" validate:"required"`
35+
TicketUUID flows.TicketUUID `json:"ticket_uuid,omitempty" validate:"omitempty,uuid"`
3536
}
3637

3738
// NewMsgReceived creates a new incoming msg event for the passed in channel, URN and text
38-
func NewMsgReceived(msg *flows.MsgIn) *MsgReceived {
39+
func NewMsgReceived(msg *flows.MsgIn, ticketUUID flows.TicketUUID) *MsgReceived {
3940
return &MsgReceived{
40-
BaseEvent: NewBaseEvent(TypeMsgReceived),
41-
Msg: msg,
41+
BaseEvent: NewBaseEvent(TypeMsgReceived),
42+
Msg: msg,
43+
TicketUUID: ticketUUID,
4244
}
4345
}
4446

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"uuid": "01969b47-0583-76f8-ae7f-f8b243c49ff5",
3+
"type": "msg_received",
4+
"created_on": "2025-05-04T12:30:46.123456789Z",
5+
"msg": {
6+
"urn": "tel:+12065551212",
7+
"channel": {
8+
"uuid": "57f1078f-88aa-46f4-a59a-948a5739c03d",
9+
"name": "My Android Phone"
10+
},
11+
"text": "hi there"
12+
}
13+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"uuid": "01969b47-0583-76f8-ae7f-f8b243c49ff5",
3+
"type": "msg_received",
4+
"created_on": "2025-05-04T12:30:46.123456789Z",
5+
"msg": {
6+
"urn": "tel:+12065551212",
7+
"channel": {
8+
"uuid": "57f1078f-88aa-46f4-a59a-948a5739c03d",
9+
"name": "My Android Phone"
10+
},
11+
"text": "hi there",
12+
"attachments": [
13+
"image/jpeg:https://s3.amazon.com/mybucket/attachment.jpg"
14+
],
15+
"external_id": "ext-id-123"
16+
},
17+
"ticket_uuid": "7481888c-07dd-47dc-bf22-ef7448696ffe"
18+
}

flows/inputs/msg_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func TestMsgInput(t *testing.T) {
3333
"video/mp4:http://example.com/test.mp4",
3434
},
3535
"ext12345",
36-
))
36+
), "")
3737

3838
input := inputs.NewMsg(session.Assets(), msgEvt)
3939
assert.Equal(t, "msg", input.Type())

flows/resumes/base_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ func TestResumeContext(t *testing.T) {
166166
env := envs.NewBuilder().Build()
167167

168168
var resume flows.Resume = resumes.NewMsg(
169-
events.NewMsgReceived(flows.NewMsgIn(urns.URN("tel:1234567890"), nil, "Hello", nil, "SMS1234")),
169+
events.NewMsgReceived(flows.NewMsgIn(urns.URN("tel:1234567890"), nil, "Hello", nil, "SMS1234"), ""),
170170
)
171171

172172
assert.Equal(t, map[string]types.XValue{

flows/triggers/base_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ func TestTriggerMarshaling(t *testing.T) {
286286
},
287287
{
288288
triggers.NewBuilder(flow).
289-
MsgReceived(events.NewMsgReceived(flows.NewMsgIn(urns.URN("tel:+1234567890"), channel, "Hi there", nil, "SMS1234"))).
289+
MsgReceived(events.NewMsgReceived(flows.NewMsgIn(urns.URN("tel:+1234567890"), channel, "Hi there", nil, "SMS1234"), "")).
290290
WithMatch(triggers.NewKeywordMatch(triggers.KeywordMatchTypeFirstWord, "hi")).
291291
Build(),
292292
"msg",

0 commit comments

Comments
 (0)