2 * Using Rails-like standard naming convention for endpoints.
3 * GET /api/sugarcrm/configurations -> index
4 * POST /api/sugarcrm/configurations -> create
5 * GET /api/sugarcrm/configurations/:id -> show
6 * PUT /api/sugarcrm/configurations/:id -> update
7 * DELETE /api/sugarcrm/configurations/:id -> destroy
13 var _ = require('lodash');
15 var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
16 var SugarcrmField = require('../../models').SugarcrmField;
18 function handleError(res, statusCode) {
19 statusCode = statusCode || 500;
20 return function(err) {
21 res.status(statusCode).send(err);
25 function responseWithResult(res, statusCode) {
26 statusCode = statusCode || 200;
27 return function(entity) {
29 res.status(statusCode).json(entity);
34 function handleEntityNotFound(res) {
35 return function(entity) {
37 res.status(404).end();
44 function saveUpdates(updates) {
45 return function(entity) {
46 return entity.updateAttributes(updates)
47 .then(function(updated) {
53 function removeEntity(res) {
54 return function(entity) {
56 return entity.destroy()
58 res.status(204).end();
64 // Gets a list of SugarcrmConfigurations
65 exports.index = function(req, res) {
66 SugarcrmConfiguration.findAll({
69 .then(responseWithResult(res))
70 .catch(handleError(res));
73 // Gets a single SugarcrmConfiguration from the DB
74 exports.show = function(req, res) {
75 SugarcrmConfiguration.find({
90 .then(handleEntityNotFound(res))
91 .then(responseWithResult(res))
92 .catch(handleError(res));
95 // Creates a new SugarcrmConfiguration in the DB
96 exports.create = function(req, res) {
97 SugarcrmConfiguration.create(req.body)
98 .then(responseWithResult(res, 201))
99 .catch(handleError(res));
102 // Updates an existing SugarcrmConfiguration in the DB
103 exports.update = function(req, res) {
107 SugarcrmConfiguration.findById(req.params.id)
108 .then(handleEntityNotFound(res))
109 .then(saveUpdates(req.body))
110 .then(responseWithResult(res))
111 .catch(handleError(res));
114 // Deletes a SugarcrmConfiguration from the DB
115 exports.destroy = function(req, res) {
116 SugarcrmConfiguration.findById(req.params.id)
117 .then(handleEntityNotFound(res))
118 .then(removeEntity(res))
119 .catch(handleError(res));
122 exports.addConfigurationField = function(req, res, next) {
123 var sugarcrmConfiguration;
124 SugarcrmConfiguration
125 .findById(req.params.id)
126 .then(handleEntityNotFound(res))
127 .then(function(sugarcrm_configuration) {
128 sugarcrmConfiguration = sugarcrm_configuration;
129 return SugarcrmField.create(req.body)
131 .then(function(sugarcrmField) {
132 switch (req.params.type) {
134 return [sugarcrmConfiguration.addSubject(sugarcrmField), sugarcrmField];
136 return [sugarcrmConfiguration.addDescription(sugarcrmField), sugarcrmField];
138 return [sugarcrmConfiguration.addField(sugarcrmField), sugarcrmField];
141 .spread(function(data, sugarcrmField) {
142 return res.status(201).json(sugarcrmField);
144 .catch(handleError(res));