@@ -48,13 +48,13 @@ type MessageEventName string
4848
4949const (
5050 // MessageEventNameSent is emitted when a message is sent by the mobile phone
51- MessageEventNameSent = "SENT"
51+ MessageEventNameSent = MessageEventName ( "SENT" )
5252
5353 // MessageEventNameDelivered is emitted when a message is delivered by the mobile phone
54- MessageEventNameDelivered = "DELIVERED"
54+ MessageEventNameDelivered = MessageEventName ( "DELIVERED" )
5555
5656 // MessageEventNameFailed is emitted when a message is failed by the mobile phone
57- MessageEventNameFailed = "FAILED"
57+ MessageEventNameFailed = MessageEventName ( "FAILED" )
5858)
5959
6060// Message represents a message sent between 2 phone numbers
@@ -85,6 +85,16 @@ func (message *Message) IsSending() bool {
8585 return message .Status == MessageStatusSending
8686}
8787
88+ // IsDelivered checks if a message is delivered
89+ func (message * Message ) IsDelivered () bool {
90+ return message .Status == MessageStatusDelivered
91+ }
92+
93+ // IsPending checks if a message is pending
94+ func (message * Message ) IsPending () bool {
95+ return message .Status == MessageStatusPending
96+ }
97+
8898// IsExpired checks if a message is expired
8999func (message * Message ) IsExpired () bool {
90100 return message .Status == MessageStatusExpired
@@ -106,9 +116,10 @@ func (message *Message) Sent(timestamp time.Time) *Message {
106116}
107117
108118// Failed registers a message as failed
109- func (message * Message ) Failed (timestamp time.Time ) * Message {
119+ func (message * Message ) Failed (timestamp time.Time , errorMessage string ) * Message {
110120 message .SentAt = & timestamp
111121 message .Status = MessageStatusFailed
122+ message .FailureReason = & errorMessage
112123 message .updateOrderTimestamp (timestamp )
113124 return message
114125}
@@ -121,6 +132,14 @@ func (message *Message) Delivered(timestamp time.Time) *Message {
121132 return message
122133}
123134
135+ // Expired registers a message as expired
136+ func (message * Message ) Expired (timestamp time.Time ) * Message {
137+ message .SentAt = & timestamp
138+ message .Status = MessageStatusExpired
139+ message .updateOrderTimestamp (timestamp )
140+ return message
141+ }
142+
124143// AddSendAttempt configures a Message for sending
125144func (message * Message ) AddSendAttempt (timestamp time.Time ) * Message {
126145 message .Status = MessageStatusSending
0 commit comments