UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

56 lines 1.92 kB
import { SettingCreatedEvent, SettingDeletedEvent, SettingUpdatedEvent, } from '../types/index.js'; export default class SettingService { constructor({ settingStore }, config, eventService) { this.config = config; this.logger = config.getLogger('services/setting-service.ts'); this.settingStore = settingStore; this.eventService = eventService; } /** * @deprecated use getWithDefault instead */ async get(id, defaultValue) { const value = await this.settingStore.get(id); return value || defaultValue; } async getWithDefault(id, defaultValue) { const value = await this.settingStore.get(id); return value || defaultValue; } async insert(id, value, auditUser, hideEventDetails = true) { const existingSettings = await this.settingStore.get(id); let data = { id, ...value }; let preData = existingSettings; if (hideEventDetails) { preData = { hideEventDetails: true }; data = { id, hideEventDetails: true }; } if (existingSettings) { await this.settingStore.updateRow(id, value); await this.eventService.storeEvent(new SettingUpdatedEvent({ data, auditUser, }, preData)); } else { await this.settingStore.insert(id, value); await this.eventService.storeEvent(new SettingCreatedEvent({ auditUser, data, })); } } async delete(id, auditUser) { await this.settingStore.delete(id); await this.eventService.storeEvent(new SettingDeletedEvent({ auditUser, data: { id, }, })); } async deleteAll() { await this.settingStore.deleteAll(); } } //# sourceMappingURL=setting-service.js.map