|
|
|
|
@ -138,22 +138,17 @@ export class SettingsRegistry { |
|
|
|
|
|
|
|
|
|
const settingFromCodeOverwritten = overwriteSetting(settingFromCode); |
|
|
|
|
|
|
|
|
|
const settingOverwrittenDefault = overrideSetting(settingFromCode); |
|
|
|
|
|
|
|
|
|
const settingStored = this.store.getSetting(_id); |
|
|
|
|
|
|
|
|
|
const settingStoredOverwritten = settingStored && overwriteSetting(settingStored); |
|
|
|
|
|
|
|
|
|
const isOverwritten = settingFromCode !== settingFromCodeOverwritten || (settingStored && settingStored !== settingStoredOverwritten); |
|
|
|
|
|
|
|
|
|
const updatedSettingAfterApplyingOverwrite = isOverwritten ? settingFromCodeOverwritten : settingOverwrittenDefault; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
validateSetting(settingFromCode._id, settingFromCode.type, settingFromCode.value); |
|
|
|
|
} catch (e) { |
|
|
|
|
IS_DEVELOPMENT && SystemLogger.error(`Invalid setting code ${_id}: ${(e as Error).message}`); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const isOverwritten = settingFromCode !== settingFromCodeOverwritten || (settingStored && settingStored !== settingStoredOverwritten); |
|
|
|
|
|
|
|
|
|
const { _id: _, ...settingProps } = settingFromCodeOverwritten; |
|
|
|
|
|
|
|
|
|
if (settingStored && !compareSettings(settingStored, settingFromCodeOverwritten)) { |
|
|
|
|
@ -171,9 +166,6 @@ export class SettingsRegistry { |
|
|
|
|
})(); |
|
|
|
|
|
|
|
|
|
await this.saveUpdatedSetting(_id, updatedProps, removedKeys); |
|
|
|
|
|
|
|
|
|
this.store.set(updatedSettingAfterApplyingOverwrite); |
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -183,8 +175,6 @@ export class SettingsRegistry { |
|
|
|
|
const removedKeys = Object.keys(settingStored).filter((key) => !['_updatedAt'].includes(key) && !overwrittenKeys.includes(key)); |
|
|
|
|
|
|
|
|
|
await this.saveUpdatedSetting(_id, settingProps, removedKeys); |
|
|
|
|
|
|
|
|
|
this.store.set(updatedSettingAfterApplyingOverwrite); |
|
|
|
|
} |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
@ -198,9 +188,13 @@ export class SettingsRegistry { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
await this.model.insertOne(updatedSettingAfterApplyingOverwrite); // no need to emit unless we remove the oplog
|
|
|
|
|
const settingOverwrittenDefault = overrideSetting(settingFromCode); |
|
|
|
|
|
|
|
|
|
const setting = isOverwritten ? settingFromCodeOverwritten : settingOverwrittenDefault; |
|
|
|
|
|
|
|
|
|
await this.model.insertOne(setting); // no need to emit unless we remove the oplog
|
|
|
|
|
|
|
|
|
|
this.store.set(updatedSettingAfterApplyingOverwrite); |
|
|
|
|
this.store.set(setting); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|