Skip to content

Commit b9bfa61

Browse files
committed
Add handlers for message sent events
1 parent db7127e commit b9bfa61

File tree

7 files changed

+19
-15
lines changed

7 files changed

+19
-15
lines changed
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
package events
22

3-
import "github.com/google/uuid"
3+
import (
4+
"time"
5+
6+
"github.com/google/uuid"
7+
)
48

59
// EventTypeMessagePhoneSent is emitted when the phone sends a message
610
const EventTypeMessagePhoneSent = "message.phone.sent"
711

812
// MessagePhoneSentPayload is the payload of the EventTypeMessagePhoneSent event
913
type MessagePhoneSentPayload struct {
10-
ID uuid.UUID `json:"id"`
11-
From string `json:"from"`
12-
To string `json:"to"`
13-
Content string `json:"content"`
14+
ID uuid.UUID `json:"id"`
15+
From string `json:"from"`
16+
To string `json:"to"`
17+
Timestamp time.Time `json:"timestamp"`
18+
Content string `json:"content"`
1419
}

api/pkg/handlers/message_handler.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ func (h *MessageHandler) PostEvent(c *fiber.Ctx) error {
198198
}
199199

200200
request.MessageID = c.Params("messageID")
201+
spew.Dump(request)
201202
if errors := h.validator.ValidateMessageEvent(ctx, request); len(errors) != 0 {
202203
msg := fmt.Sprintf("validation errors [%s], while storing event [%s] for message [%s]", spew.Sdump(errors), c.Body(), request.MessageID)
203204
ctxLogger.Warn(stacktrace.NewError(msg))

api/pkg/listeners/message_listener.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func (listener *MessageListener) OnMessagePhoneSent(ctx context.Context, event c
147147

148148
handleParams := services.HandleMessageParams{
149149
ID: payload.ID,
150-
Timestamp: event.Time(),
150+
Timestamp: payload.Timestamp,
151151
}
152152

153153
if err = listener.service.HandleMessageSent(ctx, handleParams); err != nil {

api/pkg/listeners/message_thread_listener.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func (listener *MessageThreadListener) OnMessagePhoneSent(ctx context.Context, e
111111
updateParams := services.MessageThreadUpdateParams{
112112
Owner: payload.From,
113113
Contact: payload.To,
114-
Timestamp: event.Time(),
114+
Timestamp: payload.Timestamp,
115115
Content: payload.Content,
116116
MessageID: payload.ID,
117117
}

api/pkg/requests/message_sent_request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
// MessageEvent is the payload for sending and SMS message
1313
type MessageEvent struct {
1414
// Timestamp is the time when the event was emitted, Please send the timestamp in UTC with as much precision as possible
15-
Timestamp time.Time `json:"sent_at" example:"2022-06-05T14:26:09.527976+03:00"`
15+
Timestamp time.Time `json:"timestamp" example:"2022-06-05T14:26:09.527976+03:00"`
1616

1717
// EventName is the type of event
1818
// * SENT: is emitted when a message is sent by the mobile phone (only SENT is implemented)

api/pkg/services/message_service.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,11 @@ func (service *MessageService) handleMessageSentEvent(ctx context.Context, param
125125
defer span.End()
126126

127127
event, err := service.createMessagePhoneSentEvent(params.Source, events.MessagePhoneSentPayload{
128-
ID: message.ID,
129-
From: message.From,
130-
To: message.To,
131-
Content: message.Content,
128+
ID: message.ID,
129+
From: message.From,
130+
Timestamp: params.Timestamp,
131+
To: message.To,
132+
Content: message.Content,
132133
})
133134
if err != nil {
134135
msg := fmt.Sprintf("cannot create event [%s] for message [%s]", events.EventTypeMessagePhoneSent, message.ID)

api/pkg/validators/message_handler_validator.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,6 @@ func (validator MessageHandlerValidator) ValidateMessageEvent(_ context.Context,
121121
v := govalidator.New(govalidator.Options{
122122
Data: &request,
123123
Rules: govalidator.MapData{
124-
"sent_at": []string{
125-
"required",
126-
},
127124
"event_name": []string{
128125
"required",
129126
"in:SENT",

0 commit comments

Comments
 (0)