lamassu-server/lib/settings-loader.js
Josh Harvey 00d986376e WIPP
2016-11-27 18:12:49 +02:00

40 lines
808 B
JavaScript

const R = require('ramda')
const db = require('./db')
let settings
function load () {
return Promise.all([
db.one('select data from user_config where type=$1', 'config'),
loadAccounts()
])
.then(function ([data, accounts]) {
settings = {
config: data.data,
accounts: accounts
}
return settings
})
.catch(err => {
settings = undefined
throw err
})
}
function loadAccounts () {
const toFields = fieldArr => R.fromPairs(R.map(r => [r.code, r.value], fieldArr))
const toPairs = r => [r.code, toFields(r.fields)]
return db.oneOrNone('select data from user_config where type=$1', 'accounts')
.then(function (data) {
if (!data) return {}
return R.fromPairs(R.map(toPairs, data.data.accounts))
})
}
module.exports = {
settings,
load
}