diff --git a/README.md b/README.md index 4aa526b..7076f40 100644 --- a/README.md +++ b/README.md @@ -218,6 +218,46 @@ server.info: Интерфейсы и компоненты для модулей по обеспечению интеграции с сервисами отправки пуш-уведомлений. +Далее рассматривается пример использования подключаемых модулей-провайдеров. +``` kotlin +@Service +class PushSendingService( + private val pushMessageProviderServiceFactory: PushMessageProviderServiceFactory +) { + + fun sendPushMessage() { + val yourPushToken = "pushTokenForChecking" + val platform = PlatformType.ANDROID_GOOGLE + + val pushMessageProvider: PushMessageProviderService = pushMessageProviderServiceFactory.get(platform) + + val result = pushMessageProvider.check( // Проверка валидности токена для обозначения целесообразности отправки + PushTokenCheck( + pushToken = yourPushToken + ) + ) + + if (result.status == PushTokenStatus.VALID) { // Токен валиден, PushMessageProviderService интегрирован в систему + // Отправка пуш-уведомления + pushMessageProvider.send( + PushTokenMessage( + token = yourPushToken, + pushMessageNotification = PushMessageNotification( + title = "Your PushMessage", + description = "Provided by PushMessageProviderService", + imageUrl = null + ), + data = mapOf( + "customKey" to "customData" + ) + ) + ) + } + } + +} +``` + ## push-message-provider-fcm Модуль по обеспечению интеграции с Firebase Cloud Messaging. diff --git a/push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt b/push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt new file mode 100644 index 0000000..77e8a2b --- /dev/null +++ b/push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt @@ -0,0 +1,47 @@ +package ru.touchin.push.message.provider.hpk.services + +import org.springframework.stereotype.Service +import ru.touchin.push.message.provider.dto.PushMessageNotification +import ru.touchin.push.message.provider.dto.request.PushTokenCheck +import ru.touchin.push.message.provider.dto.request.PushTokenMessage +import ru.touchin.push.message.provider.enums.PlatformType +import ru.touchin.push.message.provider.enums.PushTokenStatus +import ru.touchin.push.message.provider.factories.PushMessageProviderServiceFactory +import ru.touchin.push.message.provider.services.PushMessageProviderService + +@Service +class PushSendingService( + private val pushMessageProviderServiceFactory: PushMessageProviderServiceFactory +) { + + fun sendPushMessage() { + val yourPushToken = "pushTokenForChecking" + val platform = PlatformType.ANDROID_GOOGLE + + val pushMessageProvider: PushMessageProviderService = pushMessageProviderServiceFactory.get(platform) + + val result = pushMessageProvider.check( // Проверка валидности токена для обозначения целесообразности отправки + PushTokenCheck( + pushToken = yourPushToken + ) + ) + + if (result.status == PushTokenStatus.VALID) { // Токен валиден, PushMessageProviderService интегрирован в систему + // Отправка пуш-уведомления + pushMessageProvider.send( + PushTokenMessage( + token = yourPushToken, + pushMessageNotification = PushMessageNotification( + title = "Your PushMessage", + description = "Provided by PushMessageProviderService", + imageUrl = null + ), + data = mapOf( + "customKey" to "customData" + ) + ) + ) + } + } + +}