49 lines
		
	
	
		
			1007 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1007 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |