unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
36 lines • 1.36 kB
JavaScript
import { UserPreferenceUpdatedEvent, } from '../../types/index.js';
export class UserSubscriptionsService {
constructor({ userUnsubscribeStore, userSubscriptionsReadModel, }, { getLogger: _getLogger }, eventService) {
this.userUnsubscribeStore = userUnsubscribeStore;
this.userSubscriptionsReadModel = userSubscriptionsReadModel;
this.eventService = eventService;
}
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