UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.

124 lines (123 loc) 5.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "SettingsService", { enumerable: true, get: function() { return SettingsService; } }); const _models = require("../../models"); const _serversettingsconstants = require("../../constants/server-settings.constants"); const _validators = require("../../handlers/validators"); const _settingsservicevalidation = require("../validators/settings-service.validation"); const _runtimesettingsmigration = require("../../shared/runtime-settings.migration"); class SettingsService { toDto(entity) { return { [_serversettingsconstants.serverSettingsKey]: { ...entity[_serversettingsconstants.serverSettingsKey], experimentalTypeormSupport: false }, [_serversettingsconstants.wizardSettingKey]: entity[_serversettingsconstants.wizardSettingKey], [_serversettingsconstants.frontendSettingKey]: entity[_serversettingsconstants.frontendSettingKey], [_serversettingsconstants.printerFileCleanSettingKey]: entity[_serversettingsconstants.printerFileCleanSettingKey], [_serversettingsconstants.timeoutSettingKey]: entity[_serversettingsconstants.timeoutSettingKey] }; } async getOrCreate() { let settings = await this.getOptional(); if (!settings) { const defaultSettings = new _models.Settings((0, _serversettingsconstants.getDefaultSettings)()); await defaultSettings.save(); return defaultSettings; } else { settings = (0, _runtimesettingsmigration.migrateSettingsRuntime)(settings); return await _models.Settings.findOneAndUpdate({ _id: settings.id }, settings, { new: true }); } } async updateFileCleanSettings(update) { const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.fileCleanSettingsUpdateSchema); const settingsDoc = await this.getOrCreate(); settingsDoc[_serversettingsconstants.printerFileCleanSettingKey] = Object.assign(settingsDoc[_serversettingsconstants.printerFileCleanSettingKey], validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateWizardSettings(update) { const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.wizardUpdateSchema); const settingsDoc = await this.getOrCreate(); settingsDoc[_serversettingsconstants.wizardSettingKey] = Object.assign(settingsDoc[_serversettingsconstants.wizardSettingKey], validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateFrontendSettings(update) { const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.frontendSettingsUpdateSchema); const settingsDoc = await this.getOrCreate(); const frontendSettings = settingsDoc[_serversettingsconstants.frontendSettingKey]; Object.assign(frontendSettings, validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateJwtSecretCredentialSetting(update) { const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.jwtSecretCredentialSettingUpdateSchema); const settingsDoc = await this.getOrCreate(); const credentialSettings = settingsDoc[_serversettingsconstants.credentialSettingsKey]; Object.assign(credentialSettings, validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateCredentialSettings(patchUpdate) { const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.credentialSettingUpdateSchema); const settingsDoc = await this.getOrCreate(); const credentialSettings = settingsDoc[_serversettingsconstants.credentialSettingsKey]; Object.assign(credentialSettings, validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateServerSettings(update) { const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.serverSettingsUpdateSchema); const settingsDoc = await this.getOrCreate(); const serverSettings = settingsDoc[_serversettingsconstants.serverSettingsKey]; Object.assign(serverSettings, validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async updateTimeoutSettings(patchUpdate) { const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.timeoutSettingsUpdateSchema); const settingsDoc = await this.getOrCreate(); const timeoutSettings = settingsDoc[_serversettingsconstants.timeoutSettingKey]; Object.assign(timeoutSettings, validatedInput); return await _models.Settings.findOneAndUpdate({ _id: settingsDoc.id }, settingsDoc, { new: true }); } async getOptional() { return _models.Settings.findOne(); } } //# sourceMappingURL=settings.service.js.map