40 lines
808 B
JavaScript
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
|
|
}
|