Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / telephone / telephone.controller.js
index bddde1e..293f14e 100644 (file)
@@ -1 +1,208 @@
-var _0xaa8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\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","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x72\x65\x71\x2E\x70\x61\x72\x61\x6D\x73","\x70\x61\x72\x61\x6D\x73","\x6C\x6F\x67","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x61\x78","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6C\x65","\x75\x70\x64\x61\x74\x65"];_0xaa8b[0];var util=require(_0xaa8b[1]);var _=require(_0xaa8b[2]);var Telephone=require(_0xaa8b[4])[_0xaa8b[3]];function handleError(_0xd5f4x5,_0xd5f4x6){_0xd5f4x6=_0xd5f4x6||500;return function(_0xd5f4x7){_0xd5f4x5[_0xaa8b[6]](_0xd5f4x6)[_0xaa8b[5]](_0xd5f4x7)};}function responseWithResult(_0xd5f4x5,_0xd5f4x6){_0xd5f4x6=_0xd5f4x6||200;return function(_0xd5f4x9){if(_0xd5f4x9){_0xd5f4x5[_0xaa8b[6]](_0xd5f4x6)[_0xaa8b[7]](_0xd5f4x9)}};}function handleEntityNotFound(_0xd5f4x5){return function(_0xd5f4x9){if(!_0xd5f4x9){_0xd5f4x5[_0xaa8b[6]](404)[_0xaa8b[8]]();return null;};return _0xd5f4x9;}}function saveUpdates(_0xd5f4xc){return function(_0xd5f4x9){return _0xd5f4x9[_0xaa8b[10]](_0xd5f4xc)[_0xaa8b[9]](function(_0xd5f4xd){return _0xd5f4xd})}}function removeEntity(_0xd5f4x5){return function(_0xd5f4x9){if(_0xd5f4x9){return _0xd5f4x9[_0xaa8b[11]]()[_0xaa8b[9]](function(){_0xd5f4x5[_0xaa8b[6]](204)[_0xaa8b[8]]()})}}}exports[_0xaa8b[12]]=function(_0xd5f4xf,_0xd5f4x5){var _0xd5f4x10=[_0xaa8b[13],_0xaa8b[14]];var _0xd5f4x11=_0xd5f4xf[_0xaa8b[16]][_0xaa8b[15]]?parseInt(_0xd5f4xf[_0xaa8b[16]][_0xaa8b[15]],10):100;var _0xd5f4x12=_0xd5f4xf[_0xaa8b[16]][_0xaa8b[17]]?parseInt(_0xd5f4xf[_0xaa8b[16]][_0xaa8b[17]],10):0;var _0xd5f4x13={where:{role:_0xaa8b[18]},limit:_0xd5f4x11,offset:_0xd5f4x12*_0xd5f4x11};_[_0xaa8b[32]](_0xd5f4xf[_0xaa8b[16]],function(_0xd5f4x14,_0xd5f4x15){switch(_0xd5f4x15){case _0xaa8b[15]:;case _0xaa8b[17]:break ;;case _0xaa8b[21]:_0xd5f4x13[_0xaa8b[19]]=util[_0xaa8b[24]](_0xaa8b[20],_0xd5f4xf[_0xaa8b[16]][_0xaa8b[21]],_0xd5f4xf[_0xaa8b[16]][_0xaa8b[22]]||_0xaa8b[23])||null;break ;;case _0xaa8b[22]:break ;;case _0xaa8b[30]:_0xd5f4x13[_0xaa8b[26]][_0xaa8b[25]]=[];_0xd5f4x10[_0xaa8b[29]](function(_0xd5f4x16){var _0xd5f4x17={};_0xd5f4x17[_0xd5f4x16]={$like:_0xaa8b[27]+_0xd5f4x14+_0xaa8b[27]};_0xd5f4x13[_0xaa8b[26]][_0xaa8b[25]][_0xaa8b[28]](_0xd5f4x17);});break ;;default:_0xd5f4x13[_0xaa8b[26]][_0xd5f4x15]={$like:{}};_0xd5f4x13[_0xaa8b[26]][_0xd5f4x15][_0xaa8b[31]]=_0xaa8b[27]+_0xd5f4x14+_0xaa8b[27];;}});Telephone[_0xaa8b[44]](_0xd5f4x13)[_0xaa8b[9]](function(_0xd5f4x18){var _0xd5f4x19=Math[_0xaa8b[36]](_0xd5f4x18[_0xaa8b[35]]/_0xd5f4x11);var _0xd5f4x1a=_0xd5f4x19>(_0xd5f4x13[_0xaa8b[37]]+1)?util[_0xaa8b[24]](_0xaa8b[38],_0xd5f4xf[_0xaa8b[39]],_0xd5f4xf[_0xaa8b[41]][_0xaa8b[40]],_0xd5f4xf[_0xaa8b[42]],_0xd5f4x12+1):null;var _0xd5f4x1b=_0xd5f4x12>0?util[_0xaa8b[24]](_0xaa8b[38],_0xd5f4xf[_0xaa8b[39]],_0xd5f4xf[_0xaa8b[41]][_0xaa8b[40]],_0xd5f4xf[_0xaa8b[42]],_0xd5f4x12-1):null;return _0xd5f4x5[_0xaa8b[6]](200)[_0xaa8b[5]]({count:_0xd5f4x18[_0xaa8b[35]],rows:_0xd5f4x18[_0xaa8b[43]],next_page:_0xd5f4x1a,previous_page:_0xd5f4x1b,total_pages:_0xd5f4x19});})[_0xaa8b[34]](function(_0xd5f4x7){return _0xd5f4x5[_0xaa8b[6]](500)[_0xaa8b[5]]({error:_0xaa8b[33]})});};exports[_0xaa8b[45]]=function(_0xd5f4xf,_0xd5f4x5){console[_0xaa8b[48]](_0xaa8b[46],_0xd5f4xf[_0xaa8b[47]]);Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](responseWithResult(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[51]]=function(_0xd5f4xf,_0xd5f4x5){var _0xd5f4x1c;return Telephone[_0xaa8b[53]](_0xaa8b[52])[_0xaa8b[9]](function(_0xd5f4x1d){_0xd5f4x1c=_0xd5f4x1d?_0xd5f4x1d:0;_0xd5f4x5[_0xaa8b[6]](200)[_0xaa8b[5]]({internal:_0xd5f4x1c+1});})[_0xaa8b[34]](function(_0xd5f4x7){return handleError(_0xd5f4x5,_0xd5f4x7)});};exports[_0xaa8b[54]]=function(_0xd5f4xf,_0xd5f4x5){console[_0xaa8b[48]](_0xaa8b[46],_0xd5f4xf[_0xaa8b[47]]);return Telephone[_0xaa8b[57]]({where:{internal:_0xd5f4xf[_0xaa8b[56]][_0xaa8b[52]]}})[_0xaa8b[9]](function(_0xd5f4x1e){if(!_0xd5f4x1e){return _0xd5f4x5[_0xaa8b[55]](404)};return _0xd5f4x5[_0xaa8b[5]](_0xd5f4x1e);})[_0xaa8b[34]](function(_0xd5f4x7){return handleError(_0xd5f4x5,_0xd5f4x7)});};exports[_0xaa8b[58]]=function(_0xd5f4xf,_0xd5f4x5){_0xd5f4xf[_0xaa8b[56]][_0xaa8b[59]]=_0xaa8b[18];Telephone[_0xaa8b[58]](_0xd5f4xf[_0xaa8b[56]])[_0xaa8b[9]](responseWithResult(_0xd5f4x5,201))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[60]]=function(_0xd5f4xf,_0xd5f4x5){if(_0xd5f4xf[_0xaa8b[56]][_0xaa8b[49]]){delete _0xd5f4xf[_0xaa8b[56]][_0xaa8b[49]]};Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](saveUpdates(_0xd5f4xf[_0xaa8b[56]]))[_0xaa8b[9]](responseWithResult(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5));};exports[_0xaa8b[11]]=function(_0xd5f4xf,_0xd5f4x5){Telephone[_0xaa8b[50]](_0xd5f4xf[_0xaa8b[47]][_0xaa8b[49]])[_0xaa8b[9]](handleEntityNotFound(_0xd5f4x5))[_0xaa8b[9]](removeEntity(_0xd5f4x5))[_0xaa8b[34]](handleError(_0xd5f4x5))};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/telephones              ->  index
+ * POST    /api/telephones              ->  create
+ * GET     /api/telephones/:id          ->  show
+ * PUT     /api/telephones/:id          ->  update
+ * DELETE  /api/telephones/:id          ->  destroy
+ */
+
+'use strict';
+
+var util = require('util');
+var _ = require('lodash');
+
+var Telephone = require('../../models').User;
+
+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 Telephones
+exports.index = function (req, res) {
+  // Telephone.findAll()
+  //   .then(responseWithResult(res))
+  //   .catch(handleError(res));
+  var attributes = ['fullname', 'name'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {
+      role: 'telephone'
+    },
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function (value, key) {
+    switch (key) {
+    case 'per_page':
+    case 'page':
+      break;
+    case 'sort_by':
+      query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+      break;
+    case 'sort_order':
+      break;
+    case '$':
+      query.where.$or = [];
+      attributes.forEach(function (attribute) {
+        var tmp = {};
+        tmp[attribute] = {
+          $like: '%' + value + '%'
+        };
+
+        query.where.$or.push(tmp);
+      });
+      break;
+    default:
+      query.where[key] = {
+        $like: {}
+      };
+      query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Telephone
+    .findAndCountAll(query)
+    .then(function (result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      return res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function (err) {
+      return res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+
+}
+
+// Gets a single Telephone from the DB
+exports.show = function (req, res) {
+  console.log('req.params', req.params);
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Get list of settings
+exports.getInternal = function (req, res) {
+
+  var _tinternal;
+
+  return Telephone
+    .max('internal')
+    .then(function (tinternal) {
+      _tinternal = tinternal ? tinternal : 0;
+
+      res.status(200).send({
+        internal: _tinternal + 1
+      });
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Validate the existence of an internal number
+exports.getInternalValidation = function (req, res) {
+  console.log('req.params', req.params);
+  return Telephone
+    .findAll({
+      where: {
+        internal: req.body.internal
+      }
+    })
+    .then(function (internals) {
+      if (!internals) {
+        return res.sendStatus(404);
+      }
+      return res.send(internals);
+    })
+    .catch(function (err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new Telephone in the DB
+exports.create = function (req, res) {
+  req.body.role = 'telephone';
+  Telephone.create(req.body)
+    .then(responseWithResult(res, 201))
+    .catch(handleError(res));
+}
+
+// Updates an existing Telephone in the DB
+exports.update = function (req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(saveUpdates(req.body))
+    .then(responseWithResult(res))
+    .catch(handleError(res));
+}
+
+// Deletes a Telephone from the DB
+exports.destroy = function (req, res) {
+  Telephone.findById(req.params.id)
+    .then(handleEntityNotFound(res))
+    .then(removeEntity(res))
+    .catch(handleError(res));
+}