unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
56 lines • 1.92 kB
JavaScript
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