'use strict'
let Master = require('app/models/master')
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) {
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)
}
|