diff --git a/server/controllers/settingsController.js b/server/controllers/settingsController.js index d1010c093..dd5c1b6d7 100755 --- a/server/controllers/settingsController.js +++ b/server/controllers/settingsController.js @@ -11,8 +11,7 @@ class SettingsController { this.emailService = emailService; } - getAppSettings = async (req, res, next) => { - const dbSettings = await this.settingsService.getDBSettings(); + buildAppSettings = (dbSettings) => { const sanitizedSettings = { ...dbSettings }; delete sanitizedSettings.version; @@ -30,6 +29,14 @@ class SettingsController { delete sanitizedSettings.systemEmailPassword; } returnSettings.settings = sanitizedSettings; + return returnSettings; + }; + + getAppSettings = async (req, res, next) => { + const dbSettings = await this.settingsService.getDBSettings(); + + const returnSettings = this.buildAppSettings(dbSettings); + console.log(returnSettings); return res.success({ msg: this.stringService.getAppSettings, data: returnSettings, @@ -45,12 +52,11 @@ class SettingsController { } try { - await this.db.updateAppSettings(req.body); - const updatedSettings = { ...(await this.settingsService.reloadSettings()) }; - delete updatedSettings.jwtSecret; + const updatedSettings = await this.db.updateAppSettings(req.body); + const returnSettings = this.buildAppSettings(updatedSettings); return res.success({ msg: this.stringService.updateAppSettings, - data: updatedSettings, + data: returnSettings, }); } catch (error) { next(handleError(error, SERVICE_NAME, "updateAppSettings")); diff --git a/server/db/mongo/modules/settingsModule.js b/server/db/mongo/modules/settingsModule.js index d3568ad32..4fd0d1634 100755 --- a/server/db/mongo/modules/settingsModule.js +++ b/server/db/mongo/modules/settingsModule.js @@ -26,10 +26,12 @@ const updateAppSettings = async (newSettings) => { delete update.$set.systemEmailPassword; } - const settings = await AppSettings.findOneAndUpdate({}, update, { - new: true, + await AppSettings.findOneAndUpdate({}, update, { upsert: true, }); + const settings = await AppSettings.findOne() + .select("-__v -_id -createdAt -updatedAt -singleton") + .lean(); return settings; } catch (error) { error.service = SERVICE_NAME; diff --git a/server/service/settingsService.js b/server/service/settingsService.js index bc314abff..de035922c 100755 --- a/server/service/settingsService.js +++ b/server/service/settingsService.js @@ -28,8 +28,8 @@ class SettingsService { * Constructs a new SettingsService * @constructor * @throws {Error} - */ constructor(appSettings) { - this.appSettings = appSettings; + */ constructor(AppSettings) { + this.AppSettings = AppSettings; this.settings = { ...envConfig }; } /** @@ -60,16 +60,14 @@ class SettingsService { async getDBSettings() { // Remove any old settings - await this.appSettings.deleteMany({ version: { $exists: false } }); + await this.AppSettings.deleteMany({ version: { $exists: false } }); - let settings = await this.appSettings - .findOne({ singleton: true }) + let settings = await this.AppSettings.findOne({ singleton: true }) .select("-__v -_id -createdAt -updatedAt -singleton") .lean(); if (settings === null) { - await this.appSettings.create({}); - settings = await this.appSettings - .findOne({ singleton: true }) + await this.AppSettings.create({}); + settings = await this.AppSettings.findOne({ singleton: true }) .select("-__v -_id -createdAt -updatedAt -singleton") .lean(); }