@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
JavaScript
;
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