Skip to content

Commit

Permalink
[webhooks] add sms:sent event
Browse files Browse the repository at this point in the history
  • Loading branch information
capcom6 committed Aug 9, 2024
1 parent ba94f6b commit 2b0bcfe
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@ package me.capcom.smsgateway.modules.webhooks
import android.util.Log
import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import me.capcom.smsgateway.domain.ProcessingState
import me.capcom.smsgateway.modules.events.EventBus
import me.capcom.smsgateway.modules.events.EventsReceiver
import me.capcom.smsgateway.modules.messages.events.MessageStateChangedEvent
import me.capcom.smsgateway.modules.ping.events.PingEvent
import me.capcom.smsgateway.modules.webhooks.domain.WebHookEvent
import me.capcom.smsgateway.modules.webhooks.payload.SmsSentPayload
import org.koin.core.component.get
import java.util.Date

class EventsReceiver : EventsReceiver() {
override suspend fun collect(eventBus: EventBus) {
Expand All @@ -19,6 +23,27 @@ class EventsReceiver : EventsReceiver() {
get<WebHooksService>().emit(WebHookEvent.SystemPing, object {})
}
}

launch {
eventBus.collect<MessageStateChangedEvent> { event ->
Log.d("EventsReceiver", "Event: $event")

val webhookEventType = when (event.state) {
ProcessingState.Sent -> WebHookEvent.SmsSent
else -> return@collect
}

event.phoneNumbers.forEach { phoneNumber ->
get<WebHooksService>().emit(
webhookEventType, SmsSentPayload(
messageId = event.id,
phoneNumber = phoneNumber,
sentAt = Date(),
)
)
}
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ enum class WebHookEvent {
@SerializedName("sms:received")
SmsReceived,

@SerializedName("sms:sent")
SmsSent,

@SerializedName("system:ping")
SystemPing,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package me.capcom.smsgateway.modules.webhooks.payload

import java.util.Date

data class SmsSentPayload(
val messageId: String,
val phoneNumber: String,
val sentAt: Date,
)

0 comments on commit 2b0bcfe

Please sign in to comment.