all files / backend/controllers/ ships.js

78.95% Statements 30/38
61.11% Branches 11/18
90.91% Functions 10/11
85.71% Lines 30/35
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                                                                                                         
'use strict'
 
let Ship = require('app/models/ship')
 
exports.shipId = function (req, res, next, param) {
  Ship
    .findById(param)
    .then(function (ship) {
      req.ship = ship
      next()
    })
    .catch(next)
}
 
exports.get = function (req, res, next) {
  if (req.ship) return res.send(req.ship)
 
  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 = Ship.find()
 
  Iif (sort !== null) {
    query.sort(sort.replace(',', ' '))
  }
 
  Iif (level !== null) {
    query.where({level: parseInt(level, 10)})
  }
 
  Iif (fields !== null) {
    query.select(Ship.reduceFields(fields))
  }
 
  query
    .then(function (ships) {
      res.send(ships)
    })
    .catch(next)
}
 
exports.new = function (req, res, next) {
  let data = req.body
 
  let newShip = new Ship(data)
  newShip
    .save()
    .then(function (ship) {
      res.send(ship)
    })
    .catch(next)
}
 
exports.update = function (req, res, next) {
  Iif (!req.ship) return res.sendStatus(404)
 
  let data = req.body
 
  req.ship
    .set(data)
    .save()
    .then(function (ship) {
      res.send(ship)
    })
    .catch(next)
}
 
exports.delete = function (req, res, next) {
  Iif (!req.ship) return res.sendStatus(404)
 
  req.ship
    .remove()
    .then(function () {
      res.sendStatus(200)
    })
    .catch(next)
}