| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | const Model = require('objection').Modelconst _ = 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    }  }}
 |