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

55 lines
1.3 KiB
TypeScript

import PouchDB from "./PouchDB";
import type {
MessageDocument,
QRCodeDocument,
ServerSettingsDocument,
UserChatSettingsDocument,
WebPushSubscriptionDocument,
} from "@hereconnect/types";
import { PushSubscription } from "web-push";
export interface ServiceDoc {
_id: string;
lastSeq: string | number;
}
if (!process.env.API_URL) {
throw new Error("Environment variable API_URL is not set");
}
export const messagesDbUrl = `${process.env.API_URL}/messages`;
export const serverSettingsDb = new PouchDB<ServerSettingsDocument>(
`${process.env.API_URL}/server_settings`,
{
skip_setup: true,
},
);
export const qrDb = new PouchDB<QRCodeDocument>(`${process.env.API_URL}/qr`, {
skip_setup: true,
});
export const webPushSubscriptionsDb = new PouchDB<
WebPushSubscriptionDocument<PushSubscription>
>(`${process.env.API_URL}/web_push_subscriptions`, {
skip_setup: true,
});
export const { messagesDb, serviceDb } = (() => {
const messagesDB = new PouchDB(messagesDbUrl, {
skip_setup: true,
});
return {
messagesDb: messagesDB as PouchDB.Database<MessageDocument>,
serviceDb: messagesDB as PouchDB.Database<ServiceDoc>,
} as const;
})();
export const userChatSettingsDb = new PouchDB<UserChatSettingsDocument>(
`${process.env.API_URL}/user_chat_settings`,
{
skip_setup: true,
},
);