YouAndWeb_TwoToc
a2ecfb85282bb782ae96a40499c728d5c266f710
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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
/** * Using Rails-like standard naming convention for endpoints. * GET /api/categories -> index * POST /api/categories -> create * GET /api/categories/:id -> show * PUT /api/categories/:id -> update * DELETE /api/categories/:id -> destroy */ 'use strict'; var _ = require('lodash'); var Category = require('./category.model'); function handleError(res, statusCode) { statusCode = statusCode || 500; return function(err) { res.status(statusCode).send(err); }; } function responseWithResult(res, statusCode) { statusCode = statusCode || 200; return function(entity) { if (entity) { res.status(statusCode).json(entity); } }; } function handleEntityNotFound(res) { return function(entity) { if (!entity) { res.status(404).end(); return null; } return entity; }; } function saveUpdates(updates) { return function(entity) { var updated = _.merge(entity, updates); return updated.saveAsync() .spread(function(updated) { return updated; }); }; } function removeEntity(res) { return function(entity) { if (entity) { return entity.removeAsync() .then(function() { res.status(204).end(); }); } }; } // Gets a list of Categorys exports.index = function(req, res) { var active = req.query.active; var sq = {}; if (active != undefined) { sq.active = active; } Category.findAsync(sq) .then(responseWithResult(res)) .catch(handleError(res)); }; // Gets a single Category from the DB exports.show = function(req, res) { Category.findByIdAsync(req.params.id) .then(handleEntityNotFound(res)) .then(responseWithResult(res)) .catch(handleError(res)); }; // Creates a new Category in the DB exports.create = function(req, res) { Category.createAsync(req.body) .then(responseWithResult(res, 201)) .catch(handleError(res)); }; // Updates an existing Category in the DB exports.update = function(req, res) { if (req.body._id) { delete req.body._id; } Category.findByIdAsync(req.params.id) .then(handleEntityNotFound(res)) .then(saveUpdates(req.body)) .then(responseWithResult(res)) .catch(handleError(res)); }; // Deletes a Category from the DB exports.destroy = function(req, res) { Category.findByIdAsync(req.params.id) .then(handleEntityNotFound(res)) .then(removeEntity(res)) .catch(handleError(res)); }; |
Commits for YouAndWeb_TwoTocserver/api/category/category.controller.js
Revision | Author | Commited | Message |
---|---|---|---|
a2ecfb ... | PTKDev | Fri 20 Nov, 2015 11:22:35 +0000 | TwoToc code |