123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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
- }
- }
- }
|