-var _0x6f4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x6f4c[0];var _=require(_0x6f4c[1]);var FreshdeskConfiguration=require(_0x6f4c[3])[_0x6f4c[2]];var FreshdeskField=require(_0x6f4c[3])[_0x6f4c[4]];function handleError(_0xde6dx5,_0xde6dx6){_0xde6dx6=_0xde6dx6||500;return function(_0xde6dx7){_0xde6dx5[_0x6f4c[6]](_0xde6dx6)[_0x6f4c[5]](_0xde6dx7)};}function responseWithResult(_0xde6dx5,_0xde6dx6){_0xde6dx6=_0xde6dx6||200;return function(_0xde6dx9){if(_0xde6dx9){_0xde6dx5[_0x6f4c[6]](_0xde6dx6)[_0x6f4c[7]](_0xde6dx9)}};}function handleEntityNotFound(_0xde6dx5){return function(_0xde6dx9){if(!_0xde6dx9){_0xde6dx5[_0x6f4c[6]](404)[_0x6f4c[8]]();return null;};return _0xde6dx9;}}function saveUpdates(_0xde6dxc){return function(_0xde6dx9){return _0xde6dx9[_0x6f4c[10]](_0xde6dxc)[_0x6f4c[9]](function(_0xde6dxd){return _0xde6dxd})}}function removeEntity(_0xde6dx5){return function(_0xde6dx9){if(_0xde6dx9){return _0xde6dx9[_0x6f4c[11]]()[_0x6f4c[9]](function(){_0xde6dx5[_0x6f4c[6]](204)[_0x6f4c[8]]()})}}}exports[_0x6f4c[12]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[15]]({where:_0xde6dxf[_0x6f4c[14]]})[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[16]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[22]]({where:{id:_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]]},include:[{model:FreshdeskField,as:_0x6f4c[19]},{model:FreshdeskField,as:_0x6f4c[20]},{model:FreshdeskField,as:_0x6f4c[21]}]})[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[23]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[23]](_0xde6dxf[_0x6f4c[24]])[_0x6f4c[9]](responseWithResult(_0xde6dx5,201))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[25]]=function(_0xde6dxf,_0xde6dx5){if(_0xde6dxf[_0x6f4c[24]][_0x6f4c[17]]){delete _0xde6dxf[_0x6f4c[24]][_0x6f4c[17]]};FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](saveUpdates(_0xde6dxf[_0x6f4c[24]]))[_0x6f4c[9]](responseWithResult(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5));};exports[_0x6f4c[11]]=function(_0xde6dxf,_0xde6dx5){FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](removeEntity(_0xde6dx5))[_0x6f4c[13]](handleError(_0xde6dx5))};exports[_0x6f4c[27]]=function(_0xde6dxf,_0xde6dx5,_0xde6dx10){var _0xde6dx11;FreshdeskConfiguration[_0x6f4c[26]](_0xde6dxf[_0x6f4c[18]][_0x6f4c[17]])[_0x6f4c[9]](handleEntityNotFound(_0xde6dx5))[_0x6f4c[9]](function(_0xde6dx14){_0xde6dx11=_0xde6dx14;return FreshdeskField[_0x6f4c[23]](_0xde6dxf[_0x6f4c[24]]);})[_0x6f4c[9]](function(_0xde6dx13){switch(_0xde6dxf[_0x6f4c[18]][_0x6f4c[35]]){case _0x6f4c[30]:return [_0xde6dx11[_0x6f4c[29]](_0xde6dx13),_0xde6dx13];;case _0x6f4c[32]:return [_0xde6dx11[_0x6f4c[31]](_0xde6dx13),_0xde6dx13];;case _0x6f4c[34]:return [_0xde6dx11[_0x6f4c[33]](_0xde6dx13),_0xde6dx13];;}})[_0x6f4c[28]](function(_0xde6dx12,_0xde6dx13){return _0xde6dx5[_0x6f4c[6]](201)[_0x6f4c[7]](_0xde6dx13)})[_0x6f4c[13]](handleError(_0xde6dx5));};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET /api/freshdesk/configurations -> index
+ * POST /api/freshdesk/configurations -> create
+ * GET /api/freshdesk/configurations/:id -> show
+ * PUT /api/freshdesk/configurations/:id -> update
+ * DELETE /api/freshdesk/configurations/:id -> destroy
+ */
+
+'use strict';
+
+
+var _ = require('lodash');
+
+var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
+var FreshdeskField = require('../../models').FreshdeskField;
+
+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) {
+ return entity.updateAttributes(updates)
+ .then(function(updated) {
+ return updated;
+ });
+ };
+}
+
+function removeEntity(res) {
+ return function(entity) {
+ if (entity) {
+ return entity.destroy()
+ .then(function() {
+ res.status(204).end();
+ });
+ }
+ };
+}
+
+// Gets a list of FreshdeskConfigurations
+exports.index = function(req, res) {
+ FreshdeskConfiguration.findAll({
+ where: req.query
+ })
+ .then(responseWithResult(res))
+ .catch(handleError(res));
+}
+
+// Gets a single FreshdeskConfiguration from the DB
+exports.show = function(req, res) {
+ FreshdeskConfiguration.find({
+ where: {
+ id: req.params.id
+ },
+ include: [{
+ model: FreshdeskField,
+ as: 'Subject'
+ }, {
+ model: FreshdeskField,
+ as: 'Description'
+ }, {
+ model: FreshdeskField,
+ as: 'Field'
+ }]
+ })
+ .then(handleEntityNotFound(res))
+ .then(responseWithResult(res))
+ .catch(handleError(res));
+}
+
+// Creates a new FreshdeskConfiguration in the DB
+exports.create = function(req, res) {
+ FreshdeskConfiguration.create(req.body)
+ .then(responseWithResult(res, 201))
+ .catch(handleError(res));
+}
+
+// Updates an existing FreshdeskConfiguration in the DB
+exports.update = function(req, res) {
+ if (req.body.id) {
+ delete req.body.id;
+ }
+ FreshdeskConfiguration.findById(req.params.id)
+ .then(handleEntityNotFound(res))
+ .then(saveUpdates(req.body))
+ .then(responseWithResult(res))
+ .catch(handleError(res));
+}
+
+// Deletes a FreshdeskConfiguration from the DB
+exports.destroy = function(req, res) {
+ FreshdeskConfiguration.findById(req.params.id)
+ .then(handleEntityNotFound(res))
+ .then(removeEntity(res))
+ .catch(handleError(res));
+}
+
+exports.addConfigurationField = function(req, res, next) {
+ // console.log(req.params);
+ var freshdeskConfiguration;
+ FreshdeskConfiguration
+ .findById(req.params.id)
+ .then(handleEntityNotFound(res))
+ .then(function(salesforce_configuration) {
+ freshdeskConfiguration = salesforce_configuration;
+ return FreshdeskField.create(req.body)
+ })
+ .then(function(freshdeskField) {
+ switch (req.params.type) {
+ case 'subject':
+ return [freshdeskConfiguration.addSubject(freshdeskField), freshdeskField];
+ case 'description':
+ return [freshdeskConfiguration.addDescription(freshdeskField), freshdeskField];
+ case 'field':
+ return [freshdeskConfiguration.addField(freshdeskField), freshdeskField];
+ }
+ })
+ .spread(function(data, freshdeskField) {
+ return res.status(201).json(freshdeskField);
+ })
+ .catch(handleError(res));
+};