From 6d308886b4709fac21107fa7df9dad77df1b9e59 Mon Sep 17 00:00:00 2001 From: Vasilii Mikhailovskii Date: Mon, 25 Nov 2024 01:08:46 +0200 Subject: [PATCH] read message_delivery_method_web_push_vapid_public_key from public settings db --- apps/frontend/src/api/dbs.ts | 8 +++ apps/frontend/src/api/webPush.ts | 9 ++- .../create/CreateMessageDeliveryOption.vue | 9 ++- .../CreateMessageDeliveryOptionWebPush.vue | 65 +++++++++---------- .../DBDocumentTypes/PublicSettingsDocument.ts | 16 +++++ .../migrations/1732483677017-dbs.js | 15 +++-- .../generate-keys.js | 11 +++- .../package.json | 5 +- .../test-send-notification.js | 24 ++++++- 9 files changed, 113 insertions(+), 49 deletions(-) create mode 100644 apps/frontend/src/types/DBDocumentTypes/PublicSettingsDocument.ts diff --git a/apps/frontend/src/api/dbs.ts b/apps/frontend/src/api/dbs.ts index 1a5829a..c7616fa 100644 --- a/apps/frontend/src/api/dbs.ts +++ b/apps/frontend/src/api/dbs.ts @@ -5,6 +5,7 @@ import type { MessageDocument, WebPushSubscriptionDocument, } from '@/types/DBDocumentTypes' +import type { PublicSettingsDocument } from '@/types/DBDocumentTypes/PublicSettingsDocument' export const qrCodeDbRemote = new PouchDB(`${import.meta.env.VITE_API_URL}/qr`, { skip_setup: true, @@ -21,6 +22,13 @@ export const webPushSubscriptionsDbRemote = new PouchDB( + `${import.meta.env.VITE_API_URL}/public_settings`, + { + skip_setup: true, + }, +) + export const messagesDbRemote = new PouchDB( `${import.meta.env.VITE_API_URL}/messages`, { diff --git a/apps/frontend/src/api/webPush.ts b/apps/frontend/src/api/webPush.ts index da3cecf..fc73788 100644 --- a/apps/frontend/src/api/webPush.ts +++ b/apps/frontend/src/api/webPush.ts @@ -1,5 +1,5 @@ import type { WebPushSubscriptionDocument } from '@/types/DBDocumentTypes' -import { webPushSubscriptionsDbRemote } from '@/api/dbs' +import { publicSettingsDbRemote, webPushSubscriptionsDbRemote } from '@/api/dbs' import { getUserUuid } from '@/utils/getUserUuid' import { getBrowserUuid } from '@/utils/getBrowserUuid' @@ -39,3 +39,10 @@ export const saveWebPushSubscription = async (subscription: PushSubscription) => console.error('Ошибка сохранения подписки:', error) } } + +export const getVapidPublicKey = async () => { + const { value } = await publicSettingsDbRemote.get( + 'public_settings:message_delivery_method_web_push_vapid_public_key', + ) + return value +} diff --git a/apps/frontend/src/components/create/CreateMessageDeliveryOption.vue b/apps/frontend/src/components/create/CreateMessageDeliveryOption.vue index dbe8711..7c84e44 100644 --- a/apps/frontend/src/components/create/CreateMessageDeliveryOption.vue +++ b/apps/frontend/src/components/create/CreateMessageDeliveryOption.vue @@ -1,6 +1,9 @@