const Model = require('objection').Model const _ = require('lodash') /* global WIKI */ /** * Settings model */ module.exports = class Setting extends Model { static get tableName() { return 'settings' } static get idColumn() { return 'key' } static get jsonSchema () { return { type: 'object', required: ['key'], properties: { key: {type: 'string'}, createdAt: {type: 'string'}, updatedAt: {type: 'string'} } } } static get jsonAttributes() { return ['value'] } $beforeUpdate() { this.updatedAt = new Date().toISOString() } $beforeInsert() { this.updatedAt = new Date().toISOString() } static async getConfig() { const settings = await WIKI.models.settings.query() if (settings.length > 0) { return _.reduce(settings, (res, val, key) => { _.set(res, val.key, (_.has(val.value, 'v')) ? val.value.v : val.value) return res }, {}) } else { return false } } }