settings: move service setting into services.js
this also introduces getJson/setJson
This commit is contained in:
@@ -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]);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user