summaryrefslogblamecommitdiffstats
path: root/server/api/groups.js
blob: 8158d1caf7ce1c86cce6f3d8db5ee4ecec9aaa00 (plain) (tree)
1
2
3
4
5
6
7
8







                                                         




                                                                                              


















                                                                                                  
                    








                                                                       
/* global __appdir */
var path = require('path')
var db = require(path.join(__appdir, 'lib', 'sequelize'))

module.exports = {
  get: function (req, res) {
    var id = req.query.id > 0 ? req.query.id : null
    switch (req.query.action) {
      case 'getParents':
        db.group.findOne({ where: { id: req.query.id }, include: ['parents']}).then(group => {
          group.getParents().then(parents => {
            res.send(parents.map(x => ({ id: x.id, name: x.name })))
          })
        })
        break
      case 'getSubGroups':
        db.group.findAll({ where: { '$parents.id$': id }, include: ['parents'] }).then(result => {
          res.send(result)
        })
        break
      case 'getClients':
        db.client.findAll({ where: { '$groups.id$': id }, include: ['groups'] }).then(result => {
          res.send(result)
        })
        break
      default:
        res.end()
    }
  },
  post: function (req, res) {
    var id = req.body.id > 0 ? req.body.id : null
    switch (req.body.action) {
      case 'update':
        if (!id) res.end()
        db.group.update({ name: req.body.name }, { where: { id: id } })
        res.end()
        break
      default:
        res.end()
    }
  }
}