Files
hereconnect/services/message-delivery-method-web-push/src/generate-keys.ts
T

46 lines
1.3 KiB
TypeScript
Raw Normal View History

2024-11-24 13:02:27 +02:00
import webpush from "web-push";
2024-12-02 08:50:25 +02:00
import PouchDB from "./PouchDB";
2024-12-02 10:01:23 +02:00
import { ServerSettingsDocument } from "@hereconnect/types";
2024-11-21 16:11:23 +02:00
2024-11-24 23:55:22 +02:00
if (!process.env.VAPID_SUBJECT) {
throw new Error("VAPID_SUBJECT env is empty!");
2024-11-24 23:55:22 +02:00
}
2024-11-21 16:11:23 +02:00
const vapidKeys = webpush.generateVAPIDKeys();
2024-12-02 10:01:23 +02:00
await new PouchDB<ServerSettingsDocument>(
`${process.env.API_URL}/server_settings`,
{ skip_setup: true },
).put({
2024-11-25 22:58:10 +02:00
_id: "server_settings:message_delivery_method_web_push_vapid",
type: "server_settings",
name: "message_delivery_method_web_push_vapid",
value: {
2024-11-24 13:02:27 +02:00
subject: process.env.VAPID_SUBJECT,
keys: vapidKeys,
},
2024-12-02 10:01:23 +02:00
created_at: new Date().toISOString(),
2024-11-24 13:02:27 +02:00
});
await new PouchDB(`${process.env.API_URL}/public_settings`, {
skip_setup: true,
}).put({
_id: "public_settings:message_delivery_method_web_push_vapid_public_key",
type: "public_settings",
name: "message_delivery_method_web_push_vapid_public_key",
value: vapidKeys.publicKey,
2024-12-02 10:01:23 +02:00
created_at: new Date().toISOString(),
});
2024-11-25 22:58:10 +02:00
if (process.env.GCM_API_KEY) {
await new PouchDB(`${process.env.API_URL}/public_settings`, {
skip_setup: true,
}).put({
_id: "server_settings:message_delivery_method_web_push_gcm_api_key",
type: "server_settings",
name: "message_delivery_method_web_push_gcm_api_key",
value: process.env.GCM_API_KEY,
2024-12-02 10:01:23 +02:00
created_at: new Date().toISOString(),
2024-11-25 22:58:10 +02:00
});
}