@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.
104 lines (103 loc) • 5.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "SettingsService", {
enumerable: true,
get: function() {
return SettingsService;
}
});
const _entities = require("../../entities");
const _serversettingsconstants = require("../../constants/server-settings.constants");
const _baseservice = require("./base.service");
const _settingsdto = require("../interfaces/settings.dto");
const _settingsservicevalidation = require("../validators/settings-service.validation");
const _runtimesettingsmigration = require("../../shared/runtime-settings.migration");
const _validators = require("../../handlers/validators");
class SettingsService extends (0, _baseservice.BaseService)(_entities.Settings, _settingsdto.SettingsDto) {
toDto(entity) {
return {
[_serversettingsconstants.serverSettingsKey]: {
...entity[_serversettingsconstants.serverSettingsKey],
experimentalTypeormSupport: true
},
[_serversettingsconstants.frontendSettingKey]: entity[_serversettingsconstants.frontendSettingKey],
[_serversettingsconstants.printerFileCleanSettingKey]: entity[_serversettingsconstants.printerFileCleanSettingKey],
[_serversettingsconstants.wizardSettingKey]: entity[_serversettingsconstants.wizardSettingKey],
[_serversettingsconstants.timeoutSettingKey]: entity[_serversettingsconstants.timeoutSettingKey]
};
}
async getOrCreate() {
let settings = await this.getOptional();
if (!settings) {
return await this.create((0, _serversettingsconstants.getDefaultSettings)());
} else {
settings = (0, _runtimesettingsmigration.migrateSettingsRuntime)(settings);
const settingsId = settings.id;
return await this.update(settingsId, settings);
}
}
async getServerSettings() {
const settings = await this.getOrCreate();
return settings[_serversettingsconstants.serverSettingsKey];
}
async updateServerSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.serverSettingsUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.serverSettingsKey] = validatedInput;
await this.update(entity.id, entity);
return entity;
}
async updateJwtSecretCredentialSetting(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.jwtSecretCredentialSettingUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.credentialSettingsKey].jwtSecret = validatedInput.jwtSecret;
await this.update(entity.id, entity);
return entity;
}
async updateCredentialSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.credentialSettingUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.credentialSettingsKey].refreshTokenExpiry = validatedInput.refreshTokenExpiry;
entity[_serversettingsconstants.credentialSettingsKey].refreshTokenAttempts = validatedInput.refreshTokenAttempts;
entity[_serversettingsconstants.credentialSettingsKey].jwtExpiresIn = validatedInput.jwtExpiresIn;
await this.update(entity.id, entity);
return entity;
}
async updateFileCleanSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.fileCleanSettingsUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.printerFileCleanSettingKey] = validatedInput;
await this.update(entity.id, entity);
return entity;
}
async updateFrontendSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.frontendSettingsUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.frontendSettingKey] = validatedInput;
await this.update(entity.id, entity);
return entity;
}
async updateTimeoutSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.timeoutSettingsUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.timeoutSettingKey] = validatedInput;
await this.update(entity.id, entity);
return entity;
}
async updateWizardSettings(update) {
const validatedInput = await (0, _validators.validateInput)(update, _settingsservicevalidation.wizardUpdateSchema);
const entity = await this.getOrCreate();
entity[_serversettingsconstants.wizardSettingKey] = validatedInput;
await this.update(entity.id, entity);
return entity;
}
async getOptional() {
const settingsList = await this.repository.find({
take: 1
});
return settingsList?.length ? settingsList[0] : null;
}
}
//# sourceMappingURL=settings.service.js.map