42 lines
938 B
TypeScript
42 lines
938 B
TypeScript
import DBService from './db.js';
|
|
import { Subscription } from './Subscription.js';
|
|
|
|
export interface SubscriptionData {
|
|
endpoint: string;
|
|
keys: {
|
|
p256dh: string;
|
|
auth: string;
|
|
};
|
|
}
|
|
|
|
class SubscriptionService {
|
|
private static instance: SubscriptionService;
|
|
private dbService: DBService = DBService.getInstance();
|
|
|
|
private constructor() {
|
|
}
|
|
|
|
|
|
public static getInstance(): SubscriptionService {
|
|
if (!SubscriptionService.instance) {
|
|
SubscriptionService.instance = new SubscriptionService();
|
|
}
|
|
return SubscriptionService.instance;
|
|
}
|
|
|
|
|
|
async addSubscription(subscription: SubscriptionData): Promise<void> {
|
|
await this.dbService.saveSubscription(
|
|
subscription.endpoint,
|
|
subscription.keys.p256dh,
|
|
subscription.keys.auth
|
|
);
|
|
}
|
|
|
|
|
|
async fetchSubscriptions(): Promise<Subscription[]> {
|
|
return this.dbService.getSubscriptions();
|
|
}
|
|
}
|
|
|
|
export default SubscriptionService; |