2 * Using Rails-like standard naming convention for endpoints.
3 * GET /api/salesforce/configurations -> index
4 * POST /api/salesforce/configurations -> create
5 * GET /api/salesforce/configurations/:id -> show
6 * PUT /api/salesforce/configurations/:id -> update
7 * DELETE /api/salesforce/configurations/:id -> destroy
13 var _ = require('lodash');
15 var SalesforceConfiguration = require('../../models').SalesforceConfiguration;
16 var SalesforceField = require('../../models').SalesforceField;
19 function handleError(res, statusCode) {
20 statusCode = statusCode || 500;
21 return function(err) {
22 res.status(statusCode).send(err);
26 function responseWithResult(res, statusCode) {
27 statusCode = statusCode || 200;
28 return function(entity) {
30 res.status(statusCode).json(entity);
35 function handleEntityNotFound(res) {
36 return function(entity) {
38 res.status(404).end();
45 function saveUpdates(updates) {
46 return function(entity) {
47 return entity.updateAttributes(updates)
48 .then(function(updated) {
54 function removeEntity(res) {
55 return function(entity) {
57 return entity.destroy()
59 res.status(204).end();
65 // Gets a list of SalesforceConfigurations
66 exports.index = function(req, res) {
67 SalesforceConfiguration.findAll({
70 .then(responseWithResult(res))
71 .catch(handleError(res));
74 // Gets a single SalesforceConfiguration from the DB
75 exports.show = function(req, res) {
76 SalesforceConfiguration.find({
81 model: SalesforceField,
84 model: SalesforceField,
87 model: SalesforceField,
91 .then(handleEntityNotFound(res))
92 .then(responseWithResult(res))
93 .catch(handleError(res));
96 // Creates a new SalesforceConfiguration in the DB
97 exports.create = function(req, res) {
98 SalesforceConfiguration.create(req.body)
99 .then(responseWithResult(res, 201))
100 .catch(handleError(res));
103 // Updates an existing SalesforceConfiguration in the DB
104 exports.update = function(req, res) {
108 SalesforceConfiguration.findById(req.params.id)
109 .then(handleEntityNotFound(res))
110 .then(saveUpdates(req.body))
111 .then(responseWithResult(res))
112 .catch(handleError(res));
115 // Deletes a SalesforceConfiguration from the DB
116 exports.destroy = function(req, res) {
117 SalesforceConfiguration.findById(req.params.id)
118 .then(handleEntityNotFound(res))
119 .then(removeEntity(res))
120 .catch(handleError(res));
123 exports.addConfigurationField = function(req, res, next) {
124 // console.log(req.params);
125 var salesforceConfiguration;
126 SalesforceConfiguration
127 .findById(req.params.id)
128 .then(handleEntityNotFound(res))
129 .then(function(salesforce_configuration) {
130 salesforceConfiguration = salesforce_configuration;
131 return SalesforceField.create(req.body)
133 .then(function(salesforceField) {
134 switch (req.params.type) {
136 return [salesforceConfiguration.addSubject(salesforceField), salesforceField];
138 return [salesforceConfiguration.addDescription(salesforceField), salesforceField];
140 return [salesforceConfiguration.addField(salesforceField), salesforceField];
143 .spread(function(data, salesforceField) {
144 return res.status(201).json(salesforceField);
146 .catch(handleError(res));