feat: config wizard save

This commit is contained in:
NGPixel
2017-12-16 23:41:16 -05:00
parent 1f350172b9
commit 18dee58a06
12 changed files with 669 additions and 440 deletions

View File

@@ -54,28 +54,52 @@ module.exports = {
* @param {Array} subsets Array of subsets to load
* @returns Promise
*/
loadFromDb(subsets) {
async loadFromDb(subsets) {
if (!_.isArray(subsets) || subsets.length === 0) {
subsets = wiki.data.configNamespaces
}
return wiki.db.Setting.findAll({
let results = await wiki.db.Setting.findAll({
attributes: ['key', 'config'],
where: {
key: {
$in: subsets
}
}
}).then(results => {
if (_.isArray(results) && results.length === subsets.length) {
results.forEach(result => {
wiki.config[result.key] = result.config
})
return true
} else {
wiki.logger.warn('DB Configuration is empty or incomplete.')
return false
}
})
if (_.isArray(results) && results.length === subsets.length) {
results.forEach(result => {
wiki.config[result.key] = result.config
})
return true
} else {
wiki.logger.warn('DB Configuration is empty or incomplete.')
return false
}
},
/**
* Save config to DB
*
* @param {Array} subsets Array of subsets to save
* @returns Promise
*/
async saveToDb(subsets) {
if (!_.isArray(subsets) || subsets.length === 0) {
subsets = wiki.data.configNamespaces
}
try {
for (let set of subsets) {
await wiki.db.Setting.upsert({
key: set,
config: _.get(wiki.config, set, {})
})
}
} catch (err) {
wiki.logger.error(`Failed to save configuration to DB: ${err.message}`)
return false
}
return true
}
}

View File

@@ -73,7 +73,7 @@ module.exports = {
min: 0,
idle: 10000
},
logging: log => { wiki.logger.log('verbose', log) },
logging: log => { wiki.logger.log('debug', log) },
operatorsAliases
})
@@ -110,7 +110,7 @@ module.exports = {
syncSchemas() {
return self.inst.sync({
force: false,
logging: log => { wiki.logger.log('verbose', log) }
logging: log => { wiki.logger.log('debug', log) }
})
},
// -> Set Connection App Name

View File

@@ -11,10 +11,10 @@ module.exports = {
// Console
let logger = new (winston.Logger)({
level: (wiki.IS_DEBUG) ? 'debug' : 'info',
level: wiki.config.logLevel,
transports: [
new (winston.transports.Console)({
level: (wiki.IS_DEBUG) ? 'debug' : 'info',
level: wiki.config.logLevel,
prettyPrint: true,
colorize: true,
silent: false,

View File

@@ -14,6 +14,8 @@ module.exports = {
async upgradeFromMongo (opts) {
wiki.telemetry.sendEvent('setup', 'upgradeFromMongo')
wiki.logger.info('Upgrading from MongoDB...')
let mongo = require('mongodb').MongoClient
let parsedMongoConStr = cfgHelper.parseConfigValue(opts.mongoCnStr)