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)
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()
68 .then(responseWithResult(res))
69 .catch(handleError(res));
72 // Gets a single SalesforceConfiguration from the DB
73 exports.show = function(req, res) {
74 SalesforceConfiguration.find({
79 model: SalesforceField,
82 model: SalesforceField,
85 model: SalesforceField,
89 .then(handleEntityNotFound(res))
90 .then(responseWithResult(res))
91 .catch(handleError(res));
94 // Creates a new SalesforceConfiguration in the DB
95 exports.create = function(req, res) {
96 SalesforceConfiguration.create(req.body)
97 .then(responseWithResult(res, 201))
98 .catch(handleError(res));
101 // Updates an existing SalesforceConfiguration in the DB
102 exports.update = function(req, res) {
106 SalesforceConfiguration.findById(req.params.id)
107 .then(handleEntityNotFound(res))
108 .then(saveUpdates(req.body))
109 .then(responseWithResult(res))
110 .catch(handleError(res));
113 // Deletes a SalesforceConfiguration from the DB
114 exports.destroy = function(req, res) {
115 SalesforceConfiguration.findById(req.params.id)
116 .then(handleEntityNotFound(res))
117 .then(removeEntity(res))
118 .catch(handleError(res));
121 exports.addConfigurationField = function(req, res, next) {
122 // console.log(req.params);
123 var salesforceConfiguration;
124 SalesforceConfiguration
125 .findById(req.params.id)
126 .then(handleEntityNotFound(res))
127 .then(function(salesforce_configuration) {
128 salesforceConfiguration = salesforce_configuration;
129 return SalesforceField.create(req.body)
131 .then(function(salesforceField) {
132 switch (req.params.type) {
134 return [salesforceConfiguration.addSubject(salesforceField), salesforceField];
136 return [salesforceConfiguration.addDescription(salesforceField), salesforceField];
138 return [salesforceConfiguration.addField(salesforceField), salesforceField];
141 .spread(function(data, salesforceField) {
142 return res.status(201).json(salesforceField);
144 .catch(handleError(res));