Skip to content

Commit 9a02257

Browse files
committed
fix: add missing error code and error message field for undelivered & failed message status webhook event
Signed-off-by: sarthakjdev <jsarthak448@gmail.com>
1 parent 6c1a00a commit 9a02257

3 files changed

Lines changed: 20 additions & 4 deletions

File tree

manager/webhook_manager.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,30 +370,38 @@ func (wh *WebhookManager) handleMessagesSubscriptionEvents(payload HandleMessage
370370
case string(MessageStatusFailed):
371371
{
372372
failedReason := ""
373+
errorCode := 0
374+
errorMessage := ""
373375
if len(status.Errors) > 0 {
374376
for _, err := range status.Errors {
375377
failedReason = err.Title
378+
errorCode = err.Code
379+
errorMessage = err.Message
376380
break
377381
}
378382
}
379383

380384
wh.EventManager.Publish(events.MessageFailedEventType, events.NewMessageFailedEvent(events.BaseSystemEvent{
381385
Timestamp: status.Timestamp,
382-
}, status.Id, status.RecipientId, failedReason))
386+
}, status.Id, status.RecipientId, failedReason, errorCode, errorMessage))
383387
}
384388
case string(MessageStatusUnDelivered):
385389
{
386390
undeliveredReason := ""
391+
errorCode := 0
392+
errorMessage := ""
387393
if len(status.Errors) > 0 {
388394
for _, err := range status.Errors {
389395
undeliveredReason = err.Title
396+
errorCode = err.Code
397+
errorMessage = err.Message
390398
break
391399
}
392400
}
393401

394402
wh.EventManager.Publish(events.MessageUndeliveredEventType, events.NewMessageUndeliveredEvent(events.BaseSystemEvent{
395403
Timestamp: status.Timestamp,
396-
}, status.Id, status.RecipientId, undeliveredReason))
404+
}, status.Id, status.RecipientId, undeliveredReason, errorCode, errorMessage))
397405
}
398406
}
399407

pkg/events/message_failed_event.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@ type MessageFailedEvent struct {
55
MessageId string `json:"messageId"`
66
SentTo string `json:"sentTo"`
77
FailReason string `json:"failReason"`
8+
ErrorCode int `json:"errorCode"`
9+
ErrorMessage string `json:"errorMessage"`
810
}
911

10-
func NewMessageFailedEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo, failReason string) *MessageFailedEvent {
12+
func NewMessageFailedEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo, failReason string, errCode int, errorMessage string) *MessageFailedEvent {
1113
return &MessageFailedEvent{
1214
BaseSystemEvent: baseSystemEvent,
1315
MessageId: messageId,
1416
SentTo: sendTo,
1517
FailReason: failReason,
18+
ErrorCode: errCode,
19+
ErrorMessage: errorMessage,
1620
}
1721

1822
}

pkg/events/message_undelivered_event.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,18 @@ type MessageUndeliveredEvent struct {
66
MessageId string `json:"messageId"`
77
SentTo string `json:"sentTo"`
88
Reason string `json:"reason"`
9+
ErrorCode int `json:"errorCode"`
10+
ErrorMessage string `json:"errorMessage"`
911
}
1012

1113
// NewMessageUndeliveredEvent creates a new instance of MessageUndeliveredEvent.
12-
func NewMessageUndeliveredEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo, reason string) *MessageUndeliveredEvent {
14+
func NewMessageUndeliveredEvent(baseSystemEvent BaseSystemEvent, messageId, sendTo, reason string, errorCode int, errorMessage string) *MessageUndeliveredEvent {
1315
return &MessageUndeliveredEvent{
1416
BaseSystemEvent: baseSystemEvent,
1517
MessageId: messageId,
1618
SentTo: sendTo,
1719
Reason: reason,
20+
ErrorCode: errorCode,
21+
ErrorMessage: errorMessage,
1822
}
1923
}

0 commit comments

Comments
 (0)