all files / backend/controllers/ masters.js

80% Statements 32/40
61.11% Branches 11/18
90.91% Functions 10/11
86.49% Lines 32/37
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86                                                                                                           
'use strict'
 
let Master = require('app/models/master')
let queue = require('app/jobs/client')
 
exports.masterId = function (req, res, next, param) {
  Master
    .findById(param)
    .then(function (master) {
      req.master = master
      next()
    })
    .catch(next)
}
 
exports.get = function (req, res, next) {
  if (req.master) return res.send(req.master)
 
  res.sendStatus(404)
}
 
exports.list = function (req, res, next) {
  let sort = req.query.sort || null
  let fields = req.query.fields || null
  let level = req.query.level || null
 
  let query = Master.find()
 
  Iif (sort !== null) {
    query.sort(sort.replace(',', ' '))
  }
 
  Iif (level !== null) {
    query.where({level: parseInt(level, 10)})
  }
 
  Iif (fields !== null) {
    query.select(Master.reduceFields(fields))
  }
 
  query
    .then(function (masters) {
      res.send(masters)
    })
    .catch(next)
}
 
exports.new = function (req, res, next) {
  let data = req.body
 
  let newMaster = new Master(data)
  newMaster
    .save()
    .then(function (master) {
      queue.enqueue('newMaster', {_id: master._id}, () => {
        res.send(master)
      })
    })
    .catch(next)
}
 
exports.update = function (req, res, next) {
  Iif (!req.master) return res.sendStatus(404)
 
  let data = req.body
 
  req.master
    .set(data)
    .save()
    .then(function (master) {
      res.send(master)
    })
    .catch(next)
}
 
exports.delete = function (req, res, next) {
  Iif (!req.master) return res.sendStatus(404)
 
  req.master
    .remove()
    .then(function () {
      res.sendStatus(200)
    })
    .catch(next)
}