From 42f1110764d9403c5ff9d54ee305c89c046944f8 Mon Sep 17 00:00:00 2001 From: Rowan Seymour Date: Tue, 30 Nov 2021 16:38:14 -0500 Subject: [PATCH] Use response_to_external_id instead of response_to_id --- backends/rapidpro/backend.go | 2 +- backends/rapidpro/backend_test.go | 8 ++------ backends/rapidpro/msg.go | 2 -- handlers/chikka/chikka_test.go | 2 -- handlers/facebook/facebook.go | 2 +- handlers/facebook/facebook_test.go | 2 +- handlers/facebookapp/facebookapp.go | 2 +- handlers/facebookapp/facebookapp_test.go | 2 +- handlers/test.go | 3 +-- msg.go | 1 - test.go | 11 ++--------- 11 files changed, 10 insertions(+), 27 deletions(-) diff --git a/backends/rapidpro/backend.go b/backends/rapidpro/backend.go index da6df33c6..0d362e471 100644 --- a/backends/rapidpro/backend.go +++ b/backends/rapidpro/backend.go @@ -238,7 +238,7 @@ func (b *backend) IsMsgLoop(ctx context.Context, msg courier.Msg) (bool, error) m := msg.(*DBMsg) // things that aren't replies can't be loops, neither do we count retries - if m.ResponseToID_ == courier.NilMsgID || m.ErrorCount_ > 0 { + if m.ResponseToExternalID_ == "" || m.ErrorCount_ > 0 { return false, nil } diff --git a/backends/rapidpro/backend_test.go b/backends/rapidpro/backend_test.go index 14982c8b1..b803f8e7b 100644 --- a/backends/rapidpro/backend_test.go +++ b/backends/rapidpro/backend_test.go @@ -120,7 +120,6 @@ func (ts *BackendTestSuite) TestMsgUnmarshal() { "sent_on": null, "high_priority": true, "channel_id": 11, - "response_to_id": 15, "response_to_external_id": "external-id", "external_id": null, "is_resend": true, @@ -137,7 +136,6 @@ func (ts *BackendTestSuite) TestMsgUnmarshal() { ts.Equal(msg.ExternalID(), "") ts.Equal([]string{"Yes", "No"}, msg.QuickReplies()) ts.Equal("event", msg.Topic()) - ts.Equal(courier.NewMsgID(15), msg.ResponseToID()) ts.Equal("external-id", msg.ResponseToExternalID()) ts.True(msg.HighPriority()) ts.True(msg.IsResend()) @@ -162,8 +160,7 @@ func (ts *BackendTestSuite) TestMsgUnmarshal() { "sent_on": null, "high_priority": true, "channel_id": 11, - "response_to_id": null, - "response_to_external_id": "", + "response_to_external_id": null, "external_id": null, "metadata": null }` @@ -173,7 +170,6 @@ func (ts *BackendTestSuite) TestMsgUnmarshal() { ts.NoError(err) ts.Equal([]string{}, msg.QuickReplies()) ts.Equal("", msg.Topic()) - ts.Equal(courier.NilMsgID, msg.ResponseToID()) ts.Equal("", msg.ResponseToExternalID()) ts.False(msg.IsResend()) } @@ -756,7 +752,7 @@ func (ts *BackendTestSuite) TestLoop() { ctx := context.Background() dbMsg := readMsgFromDB(ts.b, courier.NewMsgID(10000)) - dbMsg.ResponseToID_ = courier.MsgID(5) + dbMsg.ResponseToExternalID_ = "65474" loop, err := ts.b.IsMsgLoop(ctx, dbMsg) ts.NoError(err) diff --git a/backends/rapidpro/msg.go b/backends/rapidpro/msg.go index 6f7ef5dfd..020071f84 100644 --- a/backends/rapidpro/msg.go +++ b/backends/rapidpro/msg.go @@ -489,7 +489,6 @@ type DBMsg struct { Text_ string `json:"text" db:"text"` Attachments_ pq.StringArray `json:"attachments" db:"attachments"` ExternalID_ null.String `json:"external_id" db:"external_id"` - ResponseToID_ courier.MsgID `json:"response_to_id" db:"response_to_id"` ResponseToExternalID_ string `json:"response_to_external_id"` IsResend_ bool `json:"is_resend,omitempty"` Metadata_ json.RawMessage `json:"metadata" db:"metadata"` @@ -534,7 +533,6 @@ func (m *DBMsg) ContactName() string { return m.ContactName_ } func (m *DBMsg) HighPriority() bool { return m.HighPriority_ } func (m *DBMsg) ReceivedOn() *time.Time { return m.SentOn_ } func (m *DBMsg) SentOn() *time.Time { return m.SentOn_ } -func (m *DBMsg) ResponseToID() courier.MsgID { return m.ResponseToID_ } func (m *DBMsg) ResponseToExternalID() string { return m.ResponseToExternalID_ } func (m *DBMsg) IsResend() bool { return m.IsResend_ } diff --git a/handlers/chikka/chikka_test.go b/handlers/chikka/chikka_test.go index dd6fbc38a..b31a9533e 100644 --- a/handlers/chikka/chikka_test.go +++ b/handlers/chikka/chikka_test.go @@ -71,7 +71,6 @@ var defaultSendTestCases = []ChannelSendTestCase{ {Label: "Plain Reply", Text: "Simple Message", URN: "tel:+63911231234", Status: "W", - ResponseToID: 5, ResponseToExternalID: "external-id", ResponseBody: "Success", ResponseStatus: 200, PostParams: map[string]string{ @@ -88,7 +87,6 @@ var defaultSendTestCases = []ChannelSendTestCase{ SendPrep: setSendURL}, {Label: "Failed Reply use Send", Text: "Simple Message", URN: "tel:+63911231234", - ResponseToID: 5, ResponseToExternalID: "external-id", ResponseBody: `{"status":400,"message":"BAD REQUEST","description":"Invalid\\/Used Request ID"}`, ResponseStatus: 400, diff --git a/handlers/facebook/facebook.go b/handlers/facebook/facebook.go index 62fd688bc..75aff3de4 100644 --- a/handlers/facebook/facebook.go +++ b/handlers/facebook/facebook.go @@ -481,7 +481,7 @@ func (h *handler) SendMsg(ctx context.Context, msg courier.Msg) (courier.MsgStat payload := mtPayload{} // set our message type - if msg.ResponseToID() != courier.NilMsgID { + if msg.ResponseToExternalID() != "" { payload.MessagingType = "RESPONSE" } else if topic != "" { payload.MessagingType = "MESSAGE_TAG" diff --git a/handlers/facebook/facebook_test.go b/handlers/facebook/facebook_test.go index 6a22ebbc9..42f2ad648 100644 --- a/handlers/facebook/facebook_test.go +++ b/handlers/facebook/facebook_test.go @@ -569,7 +569,7 @@ var defaultSendTestCases = []ChannelSendTestCase{ SendPrep: setSendURL}, {Label: "Plain Response", Text: "Simple Message", URN: "facebook:12345", - Status: "W", ExternalID: "mid.133", ResponseToID: 23526, + Status: "W", ExternalID: "mid.133", ResponseToExternalID: "23526", ResponseBody: `{"message_id": "mid.133"}`, ResponseStatus: 200, RequestBody: `{"messaging_type":"RESPONSE","recipient":{"id":"12345"},"message":{"text":"Simple Message"}}`, SendPrep: setSendURL}, diff --git a/handlers/facebookapp/facebookapp.go b/handlers/facebookapp/facebookapp.go index 09686c217..77982f4cb 100644 --- a/handlers/facebookapp/facebookapp.go +++ b/handlers/facebookapp/facebookapp.go @@ -488,7 +488,7 @@ func (h *handler) SendMsg(ctx context.Context, msg courier.Msg) (courier.MsgStat payload := mtPayload{} // set our message type - if msg.ResponseToID() != courier.NilMsgID { + if msg.ResponseToExternalID() != "" { payload.MessagingType = "RESPONSE" } else if topic != "" { payload.MessagingType = "MESSAGE_TAG" diff --git a/handlers/facebookapp/facebookapp_test.go b/handlers/facebookapp/facebookapp_test.go index 79e27f7e8..5514c7114 100644 --- a/handlers/facebookapp/facebookapp_test.go +++ b/handlers/facebookapp/facebookapp_test.go @@ -570,7 +570,7 @@ var defaultSendTestCases = []ChannelSendTestCase{ SendPrep: setSendURL}, {Label: "Plain Response", Text: "Simple Message", URN: "facebook:12345", - Status: "W", ExternalID: "mid.133", ResponseToID: 23526, + Status: "W", ExternalID: "mid.133", ResponseToExternalID: "23526", ResponseBody: `{"message_id": "mid.133"}`, ResponseStatus: 200, RequestBody: `{"messaging_type":"RESPONSE","recipient":{"id":"12345"},"message":{"text":"Simple Message"}}`, SendPrep: setSendURL}, diff --git a/handlers/test.go b/handlers/test.go index 6f139d194..9f5a88e3a 100644 --- a/handlers/test.go +++ b/handlers/test.go @@ -87,7 +87,6 @@ type ChannelSendTestCase struct { QuickReplies []string Topic string HighPriority bool - ResponseToID int64 ResponseToExternalID string Metadata json.RawMessage @@ -221,7 +220,7 @@ func RunChannelSendTestCases(t *testing.T, channel courier.Channel, handler cour t.Run(testCase.Label, func(t *testing.T) { require := require.New(t) - msg := mb.NewOutgoingMsg(channel, courier.NewMsgID(10), urns.URN(testCase.URN), testCase.Text, testCase.HighPriority, testCase.QuickReplies, testCase.Topic, testCase.ResponseToID, testCase.ResponseToExternalID) + msg := mb.NewOutgoingMsg(channel, courier.NewMsgID(10), urns.URN(testCase.URN), testCase.Text, testCase.HighPriority, testCase.QuickReplies, testCase.Topic, testCase.ResponseToExternalID) for _, a := range testCase.Attachments { msg.WithAttachment(a) diff --git a/msg.go b/msg.go index 7ee4044e9..809370f20 100644 --- a/msg.go +++ b/msg.go @@ -95,7 +95,6 @@ type Msg interface { QuickReplies() []string Topic() string Metadata() json.RawMessage - ResponseToID() MsgID ResponseToExternalID() string IsResend() bool diff --git a/test.go b/test.go index 527853648..09762d438 100644 --- a/test.go +++ b/test.go @@ -119,13 +119,8 @@ func (mb *MockBackend) NewIncomingMsg(channel Channel, urn urns.URN, text string } // NewOutgoingMsg creates a new outgoing message from the given params -func (mb *MockBackend) NewOutgoingMsg(channel Channel, id MsgID, urn urns.URN, text string, highPriority bool, quickReplies []string, topic string, responseToID int64, responseToExternalID string) Msg { - msgResponseToID := NilMsgID - if responseToID != 0 { - msgResponseToID = NewMsgID(responseToID) - } - - return &mockMsg{channel: channel, id: id, urn: urn, text: text, highPriority: highPriority, quickReplies: quickReplies, topic: topic, responseToID: msgResponseToID, responseToExternalID: responseToExternalID} +func (mb *MockBackend) NewOutgoingMsg(channel Channel, id MsgID, urn urns.URN, text string, highPriority bool, quickReplies []string, topic string, responseToExternalID string) Msg { + return &mockMsg{channel: channel, id: id, urn: urn, text: text, highPriority: highPriority, quickReplies: quickReplies, topic: topic, responseToExternalID: responseToExternalID} } // PushOutgoingMsg is a test method to add a message to our queue of messages to send @@ -568,7 +563,6 @@ type mockMsg struct { highPriority bool quickReplies []string topic string - responseToID MsgID responseToExternalID string metadata json.RawMessage alreadyWritten bool @@ -594,7 +588,6 @@ func (m *mockMsg) ContactName() string { return m.contactName } func (m *mockMsg) HighPriority() bool { return m.highPriority } func (m *mockMsg) QuickReplies() []string { return m.quickReplies } func (m *mockMsg) Topic() string { return m.topic } -func (m *mockMsg) ResponseToID() MsgID { return m.responseToID } func (m *mockMsg) ResponseToExternalID() string { return m.responseToExternalID } func (m *mockMsg) Metadata() json.RawMessage { return m.metadata } func (m *mockMsg) IsResend() bool { return m.isResend }