Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / module / module.controller.js
1 'use strict';
2
3 var _ = require('lodash');
4 var Module = require('../../models').Module;
5
6 // Get list of modules
7 exports.index = function(req, res) {
8   Module
9   .findAll()
10   .then(function (modules) {
11     return res.status(200).send(modules);
12   })
13   .catch(function(err) {
14     return handleError(res, err);
15   });
16 };
17
18 // Get a single module
19 exports.show = function(req, res) {
20   var moduleId = req.params.id;
21
22   Module
23   .findById(moduleId)
24   .then(function (module) {
25     if(!module) { return res.sendStatus(404); }
26     return res.send(module);
27   })
28   .catch(function(err){
29     return handleError(res, err);
30   });
31 };
32
33 // Creates a new module in the DB.
34 exports.create = function(req, res) {
35   Module
36   .create(req.body)
37   .then(function(module) {
38     return res.status(201).send(module);
39   })
40   .catch(function(err) {
41     return handleError(res, err);
42   });
43 };
44
45 // Updates an existing module in the DB.
46 exports.update = function(req, res) {
47   var moduleId = req.body.id;
48
49   if(req.body.id) { delete req.body.id; }
50
51   Module
52   .findById(moduleId)
53   .then(function (module) {
54     if(!module) { return res.sendStatus(404); }
55     var updated = _.merge(module, req.body);
56     updated.save()
57     .then(function () {
58       return res.status(200).send(module);
59     })
60     .catch(function(err) {
61       return handleError(res, err);
62     });
63   })
64   .catch(function(err) {
65     return handleError(res, err);
66   });
67 };
68
69 // Deletes a module from the DB.
70 exports.destroy = function(req, res) {
71   var moduleId = req.params.id;
72
73   Module
74   .findById(moduleId)
75   .then(function (module) {
76     if(!module) { return res.sendStatus(404); }
77     module.destroy()
78     .then(function() {
79       return res.sendStatus(204);
80     })
81     .catch(function(err) {
82       return handleError(res, err);
83     });
84   })
85   .catch(function(err) {
86     return handleError(res, err);
87   });
88 };
89
90 function handleError(res, err) {
91   return res.status(500).send(err);
92 }