unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
37 lines • 1.42 kB
JavaScript
import { UserPreferenceUpdatedEvent, } from '../../types/index.js';
export class UserSubscriptionsService {
constructor({ userUnsubscribeStore, userSubscriptionsReadModel, }, { getLogger }, eventService) {
this.userUnsubscribeStore = userUnsubscribeStore;
this.userSubscriptionsReadModel = userSubscriptionsReadModel;
this.eventService = eventService;
this.logger = getLogger('services/user-subscription-service.ts');
}
async getUserSubscriptions(userId) {
return this.userSubscriptionsReadModel.getUserSubscriptions(userId);
}
async subscribe(userId, subscription, auditUser) {
const entry = {
userId,
subscription,
};
await this.userUnsubscribeStore.delete(entry);
await this.eventService.storeEvent(new UserPreferenceUpdatedEvent({
userId,
data: { subscription, action: 'subscribed' },
auditUser,
}));
}
async unsubscribe(userId, subscription, auditUser) {
const entry = {
userId,
subscription,
};
await this.userUnsubscribeStore.insert(entry);
await this.eventService.storeEvent(new UserPreferenceUpdatedEvent({
userId,
data: { subscription, action: 'unsubscribed' },
auditUser,
}));
}
}
//# sourceMappingURL=user-subscriptions-service.js.map