Skip to content

Commit d7d02b1

Browse files
committed
[webhooks] add simNumber field to payload
1 parent 587c972 commit d7d02b1

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

app/src/main/java/me/capcom/smsgateway/data/dao/MessagesDao.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ interface MessagesDao {
144144
_insertRecipientStatesByMessage(id, state)
145145
}
146146

147+
@Query("UPDATE message SET simNumber = :simNumber WHERE id = :id")
148+
fun updateSimNumber(
149+
id: String,
150+
simNumber: Int
151+
)
152+
147153
@Query("DELETE FROM message WHERE createdAt < :until AND state <> 'Pending'")
148154
suspend fun truncateLog(until: Long)
149155
}

app/src/main/java/me/capcom/smsgateway/modules/messages/MessagesService.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ class MessagesService(
236236
msg.message.source,
237237
phone?.let { setOf(it) } ?: msg.recipients.map { it.phoneNumber }.toSet(),
238238
state,
239+
msg.message.simNumber,
239240
error
240241
)
241242
)
@@ -262,7 +263,12 @@ class MessagesService(
262263
val message = request.message
263264
val id = message.id
264265

265-
val smsManager: SmsManager = getSmsManager(selectSimNumber(request))
266+
val simNumber = selectSimNumber(request)
267+
val smsManager: SmsManager = getSmsManager(simNumber)
268+
269+
if (request.message.simNumber == null && simNumber != null) {
270+
dao.updateSimNumber(id, simNumber + 1)
271+
}
266272

267273
@Suppress("NAME_SHADOWING")
268274
val messageText = when (message.isEncrypted) {

app/src/main/java/me/capcom/smsgateway/modules/messages/events/MessageStateChangedEvent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class MessageStateChangedEvent(
99
val source: EntitySource,
1010
val phoneNumbers: Set<String>,
1111
val state: ProcessingState,
12+
val simNumber: Int?,
1213
val error: String?
1314
): AppEvent(NAME) {
1415

app/src/main/java/me/capcom/smsgateway/modules/webhooks/EventsReceiver.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,21 @@ class EventsReceiver : EventsReceiver() {
4040
WebHookEvent.SmsSent -> SmsEventPayload.SmsSent(
4141
messageId = event.id,
4242
phoneNumber = phoneNumber,
43+
event.simNumber,
4344
sentAt = Date(),
4445
)
4546

4647
WebHookEvent.SmsDelivered -> SmsEventPayload.SmsDelivered(
4748
messageId = event.id,
4849
phoneNumber = phoneNumber,
50+
event.simNumber,
4951
deliveredAt = Date(),
5052
)
5153

5254
WebHookEvent.SmsFailed -> SmsEventPayload.SmsFailed(
5355
messageId = event.id,
5456
phoneNumber = phoneNumber,
57+
event.simNumber,
5558
failedAt = Date(),
5659
reason = event.error ?: "Unknown",
5760
)

app/src/main/java/me/capcom/smsgateway/modules/webhooks/payload/SmsEventPayload.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,27 @@ import java.util.Date
55
sealed class SmsEventPayload(
66
val messageId: String,
77
val phoneNumber: String,
8+
val simNumber: Int?,
89
) {
910
class SmsSent(
1011
messageId: String,
1112
phoneNumber: String,
12-
val sentAt: Date
13-
) : SmsEventPayload(messageId, phoneNumber)
13+
simNumber: Int?,
14+
val sentAt: Date,
15+
) : SmsEventPayload(messageId, phoneNumber, simNumber)
1416

1517
class SmsDelivered(
1618
messageId: String,
1719
phoneNumber: String,
18-
val deliveredAt: Date
19-
) : SmsEventPayload(messageId, phoneNumber)
20+
simNumber: Int?,
21+
val deliveredAt: Date,
22+
) : SmsEventPayload(messageId, phoneNumber, simNumber)
2023

2124
class SmsFailed(
2225
messageId: String,
2326
phoneNumber: String,
27+
simNumber: Int?,
2428
val failedAt: Date,
2529
val reason: String,
26-
) : SmsEventPayload(messageId, phoneNumber)
30+
) : SmsEventPayload(messageId, phoneNumber, simNumber)
2731
}

0 commit comments

Comments
 (0)