Built motion from commit 06df96e on branch develop.
[motion.git] / server / api / zendesk_field / zendesk_field.controller.js
1 'use strict';
2
3 var _ = require('lodash');
4 var ZendeskField = require('../../models').ZendeskField;
5
6 // Get list of zendesk_fields
7 exports.index = function(req, res) {
8   ZendeskField
9     .findAll({
10       where: req.query
11     })
12     .then(function(zendesk_fields) {
13       return res.status(200).send(zendesk_fields);
14     })
15     .catch(function(err) {
16       return handleError(res, err);
17     });
18 };
19
20 // Get a single zendesk_field
21 exports.show = function(req, res) {
22   ZendeskField
23     .findById(req.params.id)
24     .then(function(zendesk_field) {
25       if (!zendesk_field) {
26         return res.sendStatus(404);
27       }
28       return res.send(zendesk_field);
29     })
30     .catch(function(err) {
31       return handleError(res, err);
32     });
33 };
34
35 // Creates a new zendesk_field in the DB.
36 exports.create = function(req, res) {
37   ZendeskField
38     .create(req.body)
39     .then(function(zendesk_field) {
40       return res.status(201).send(zendesk_field);
41     })
42     .catch(function(err) {
43       return handleError(res, err);
44     });
45 };
46
47 // Updates an existing zendesk_field in the DB.
48 exports.update = function(req, res) {
49   if (req.body.id) {
50     delete req.body.id;
51   }
52   ZendeskField
53     .findById(req.params.id)
54     .then(function(zendesk_field) {
55       if (!zendesk_field) {
56         return res.sendStatus(404);
57       }
58       var updated = _.merge(zendesk_field, req.body);
59       updated.save()
60         .then(function() {
61           return res.status(200).send(zendesk_field);
62         })
63         .catch(function(err) {
64           return handleError(res, err);
65         });
66     })
67     .catch(function(err) {
68       return handleError(res, err);
69     });
70 };
71
72 // Deletes a zendesk_field from the DB.
73 exports.destroy = function(req, res) {
74   ZendeskField
75     .findById(req.params.id)
76     .then(function(zendesk_field) {
77       if (!zendesk_field) {
78         return res.sendStatus(404);
79       }
80       zendesk_field.destroy()
81         .then(function() {
82           return res.sendStatus(204);
83         })
84         .catch(function(err) {
85           return handleError(res, err);
86         });
87     })
88     .catch(function(err) {
89       return handleError(res, err);
90     });
91 };
92
93 exports.zendeskValidation = function(req, res) {
94   var where = {};
95   where[req.params.field] = req.body.value;
96   where.ZendeskAccountId = req.params.accountId;
97   ZendeskField
98     .findAndCountAll({
99       where: where
100     })
101     .then(function(result) {
102       if (result.count) {
103         return res.status(200).send({
104           isValid: false,
105           value: req.body.value
106         });
107       }
108       return res.status(200).send({
109         isValid: true,
110         value: req.body.value
111       });
112     })
113     .catch(function(err) {
114       return handleError(res, err);
115     });
116
117 };
118
119 function handleError(res, err) {
120   return res.status(500).send(err);
121 }