settings: move service setting into services.js

this also introduces getJson/setJson
This commit is contained in:
Girish Ramakrishnan
2023-08-03 11:34:33 +05:30
parent 3caf0c3902
commit bbc6ba1a35
10 changed files with 42 additions and 45 deletions

View File

@@ -13,9 +13,6 @@ exports = module.exports = {
getBackupConfig,
setBackupConfig,
getServicesConfig,
setServicesConfig,
getRegistryConfig,
setRegistryConfig,
@@ -45,6 +42,9 @@ exports = module.exports = {
get,
set,
getJson,
setJson,
getBlob,
setBlob,
@@ -132,7 +132,6 @@ const gDefaults = (function () {
retention: { keepWithinSecs: 2 * 24 * 60 * 60 }, // 2 days
schedule: '00 00 23 * * *' // every day at 11pm
};
result[exports.SERVICES_CONFIG_KEY] = {};
result[exports.REGISTRY_CONFIG_KEY] = {
provider: 'noop'
};
@@ -174,6 +173,19 @@ async function set(key, value) {
await database.query('INSERT INTO settings (name, value) VALUES (?, ?) ON DUPLICATE KEY UPDATE value=VALUES(value)', [ key, value ]); // don't rely on affectedRows here since it gives 2
}
async function getJson(key) {
assert.strictEqual(typeof key, 'string');
return safe.JSON.parse(await get(key));
}
async function setJson(key, value) {
assert.strictEqual(typeof key, 'string');
assert.strictEqual(typeof value, 'object'); // can be null
await set(key, value ? JSON.stringify(value) : null);
}
async function getBlob(key) {
assert.strictEqual(typeof key, 'string');
@@ -302,17 +314,6 @@ async function setBackupConfig(backupConfig) {
notifyChange(exports.BACKUP_CONFIG_KEY, backupConfig);
}
async function getServicesConfig() {
const value = await get(exports.SERVICES_CONFIG_KEY);
if (value === null) return gDefaults[exports.SERVICES_CONFIG_KEY];
return JSON.parse(value);
}
async function setServicesConfig(platformConfig) {
await set(exports.SERVICES_CONFIG_KEY, JSON.stringify(platformConfig));
notifyChange(exports.SERVICES_CONFIG_KEY, platformConfig);
}
async function getRegistryConfig() {
const value = await get(exports.REGISTRY_CONFIG_KEY);
if (value === null) return gDefaults[exports.REGISTRY_CONFIG_KEY];
@@ -360,8 +361,7 @@ async function list() {
result[exports.DEMO_KEY] = !!result[exports.DEMO_KEY];
// convert JSON objects
[exports.BACKUP_POLICY_KEY, exports.BACKUP_CONFIG_KEY, exports.SERVICES_CONFIG_KEY,
exports.REGISTRY_CONFIG_KEY ].forEach(function (key) {
[exports.BACKUP_POLICY_KEY, exports.BACKUP_CONFIG_KEY, exports.REGISTRY_CONFIG_KEY ].forEach(function (key) {
result[key] = typeof result[key] === 'object' ? result[key] : safe.JSON.parse(result[key]);
});