From b5cbbb83e30d2cb2338699118e0f499fbcc0b1fe Mon Sep 17 00:00:00 2001 From: Korna <17145209+Korna@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:26:38 +0300 Subject: [PATCH 1/5] Add readme for PMP-HPK --- README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/README.md b/README.md index 8d97463..c58e1d8 100644 --- a/README.md +++ b/README.md @@ -271,3 +271,32 @@ C) Данные из файла консоли Firebase, добавляемые authProviderX509CertUrl: testAuthProviderX509CertUrl clientX509CertUrl: testClientX509CertUrl ``` + +## push-message-provider-hpk + +Модуль по обеспечению интеграции с Huawei Push Kit. + +1) Подключение компонентов Spring осуществляется при помощи аннотации `@EnablePushMessageProviderHpk`. +2) Необходимо добавление конфигурации для модуля. Пример файла конфигурации в формате yaml: +``` yaml +push-message-provider: + platformProviders: + ANDROID_HUAWEI: + - HPK + hpk: + web-services: + client-id: testClientId + oauth: + client-secret: testClientSecret + url: https://oauth-login.cloud.huawei.com/oauth2/v3/ + http: + connection-timeout: 1s + read-timeout: 10s + write-timeout: 10s + hpk: + url: https://push-api.cloud.huawei.com/v1/ + http: + connection-timeout: 1s + read-timeout: 10s + write-timeout: 10s +``` From f1881cf4eb0043e4a205b92f7e053be304fab73c Mon Sep 17 00:00:00 2001 From: Korna <17145209+Korna@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:28:42 +0300 Subject: [PATCH 2/5] Update PMP readme's --- README.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c58e1d8..4aa526b 100644 --- a/README.md +++ b/README.md @@ -258,18 +258,17 @@ C) Данные из файла консоли Firebase, добавляемые auth: credentialsData: type: service_account - projectId: testProjectId - privateKeyId: testPrivateKeyId + projectId: yourProjectId + privateKeyId: yourPrivateKeyId privateKey: | -----BEGIN PRIVATE KEY----- - MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALfBshaLMW2yddmAZJRNXTZzcSbwvY93Dnjj6naWgoBJoB3mOM5bcoyWwBw12A4rwecorz74OUOc6zdqX3j8hwsSyzgAUStKM5PkOvPNRKsI4eXAWU0fmb8h1jyXwftl7EzeBjEMBTpyXkgDk3wLfHN6ciCZrnQndOvS+mMl3b0hAgMBAAECgYEAmIQZByMSrITR0ewCDyFDO52HjhWEkF310hsBkNoNiOMTFZ3vCj/WjJ/W5dM+90wUTYN0KOSnytmkVUNh6K5Yekn+yRg/mBRTwwn88hU6umB8tUqoNz7AyUltAOGyQMWqAAcVgxV+mAp/Y018j69poEHgrW4qKol65/NRZyV7/J0CQQD4rCDjmxGEuA1yMzL2i8NyNl/5vvLVfLcEnVqpHbc1+KfUHZuY7iv38xpzfmErqhCxAXfQ52edq5rXmMIVSbFrAkEAvSvfSSK9XQDJl3NEyfR3BGbsoqKIYOuJAnv4OQPSODZfTNWhc11S8y914qaSWB+Iid9HoLvAIgPH5mrzPzjSowJBAJcw4FZCI+aTmOlEI8ous8gvMy8/X5lZWFUf7s0/2fKgmjmnPsE+ndEFJ6HsxturbLaR8+05pJAClARdRjN3OL0CQGoF+8gmw1ErztCmVyiFbms2MGxagesoN4r/5jg2Tw0YVENg/HMHHCWWNREJ4L2pNsJnNOL+N4oY6mHXEWwesdcCQCUYTfLYxi+Wg/5BSC7fgl/gu0mlx07AzMoMQLDOXdisV5rpxrOoT3BOLBqyccv37AZ3e2gqb8JYyNzO6C0zswQ= -----END PRIVATE KEY----- - clientEmail: testClientEmail - clientId: testClientId - authUri: testAuthUri - tokenUri: testTokenUri - authProviderX509CertUrl: testAuthProviderX509CertUrl - clientX509CertUrl: testClientX509CertUrl + clientEmail: yourClientEmail + clientId: yourClientId + authUri: yourAuthUri + tokenUri: yourTokenUri + authProviderX509CertUrl: yourAuthProviderX509CertUrl + clientX509CertUrl: yourClientX509CertUrl ``` ## push-message-provider-hpk @@ -285,9 +284,9 @@ push-message-provider: - HPK hpk: web-services: - client-id: testClientId + client-id: yourClientId oauth: - client-secret: testClientSecret + client-secret: yourClientSecret url: https://oauth-login.cloud.huawei.com/oauth2/v3/ http: connection-timeout: 1s From 22aac8155e562df5ccfaa007fdd1b9eb44830035 Mon Sep 17 00:00:00 2001 From: Korna <17145209+Korna@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:40:57 +0300 Subject: [PATCH 3/5] Update readme --- README.md | 40 ++++++++++++++++ .../hpk/services/PushSendingService.kt | 47 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt 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" + ) + ) + ) + } + } + +} From 2a6003fee1e875fcdf1c4a84e6929f5cebe5c361 Mon Sep 17 00:00:00 2001 From: Korna <17145209+Korna@users.noreply.github.com> Date: Mon, 7 Nov 2022 20:43:13 +0300 Subject: [PATCH 4/5] Remove unnecessary class --- .../hpk/services/PushSendingService.kt | 47 ------------------- 1 file changed, 47 deletions(-) delete mode 100644 push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt 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 deleted file mode 100644 index 77e8a2b..0000000 --- a/push-message-provider-hpk/src/main/kotlin/ru/touchin/push/message/provider/hpk/services/PushSendingService.kt +++ /dev/null @@ -1,47 +0,0 @@ -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" - ) - ) - ) - } - } - -} From b1cd63bd3cdac0ff50a7a3c762189aedcea44e1d Mon Sep 17 00:00:00 2001 From: Korna <17145209+Korna@users.noreply.github.com> Date: Mon, 7 Nov 2022 21:12:58 +0300 Subject: [PATCH 5/5] Update pmp-fcm readme block --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7076f40..fb8eb64 100644 --- a/README.md +++ b/README.md @@ -271,7 +271,7 @@ push-message-provider: IOS: - FCM fcm: - appName: # Название приложения + appName: yourAppName auth: # Выбранный тип авторизации client: