Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / jscripty_project / jscripty_project.controller.js
index 5a7274c..feaca51 100644 (file)
@@ -1 +1,281 @@
-var _0xb780=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73","\x6C\x6F\x64\x61\x73\x68","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\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","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\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","\x70\x72\x6F\x6A\x65\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D\x22","\x2E\x78\x6D\x6C\x22","\x74\x78\x74\x2F\x78\x6D\x6C","\x73\x65\x74","\x64\x72\x61\x66\x74","\x70\x72\x6F\x6A\x65\x63\x74\x4A\x73\x6F\x6E","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6E\x67"];_0xb780[0];var xml=require(_0xb780[1]);var _=require(_0xb780[2]);var JscriptyProject=require(_0xb780[4])[_0xb780[3]];function handleError(_0x7b40x5,_0x7b40x6){_0x7b40x6=_0x7b40x6||500;return function(_0x7b40x7){_0x7b40x5[_0xb780[6]](_0x7b40x6)[_0xb780[5]](_0x7b40x7)};}function responseWithResult(_0x7b40x5,_0x7b40x6){_0x7b40x6=_0x7b40x6||200;return function(_0x7b40x9){if(_0x7b40x9){_0x7b40x5[_0xb780[6]](_0x7b40x6)[_0xb780[7]](_0x7b40x9)}};}function handleEntityNotFound(_0x7b40x5){return function(_0x7b40x9){if(!_0x7b40x9){_0x7b40x5[_0xb780[6]](404)[_0xb780[8]]();return null;};return _0x7b40x9;}}function saveUpdates(_0x7b40xc){return function(_0x7b40x9){return _0x7b40x9[_0xb780[10]](_0x7b40xc)[_0xb780[9]](function(_0x7b40xd){return _0x7b40xd})}}function removeEntity(_0x7b40x5){return function(_0x7b40x9){if(_0x7b40x9){return _0x7b40x9[_0xb780[11]]()[_0xb780[9]](function(){_0x7b40x5[_0xb780[6]](204)[_0xb780[8]]()})}}}exports[_0xb780[12]]=function(_0x7b40xf,_0x7b40x5){var _0x7b40x10=[_0xb780[13],_0xb780[14]];var _0x7b40x11=_0x7b40xf[_0xb780[16]][_0xb780[15]]?parseInt(_0x7b40xf[_0xb780[16]][_0xb780[15]],10):100;var _0x7b40x12=_0x7b40xf[_0xb780[16]][_0xb780[17]]?parseInt(_0x7b40xf[_0xb780[16]][_0xb780[17]],10):0;var _0x7b40x13={where:{},limit:_0x7b40x11,offset:_0x7b40x12*_0x7b40x11};_[_0xb780[31]](_0x7b40xf[_0xb780[16]],function(_0x7b40x14,_0x7b40x15){switch(_0x7b40x15){case _0xb780[15]:;case _0xb780[17]:break ;;case _0xb780[20]:_0x7b40x13[_0xb780[18]]=util[_0xb780[23]](_0xb780[19],_0x7b40xf[_0xb780[16]][_0xb780[20]],_0x7b40xf[_0xb780[16]][_0xb780[21]]||_0xb780[22])||null;break ;;case _0xb780[21]:break ;;case _0xb780[29]:_0x7b40x13[_0xb780[25]][_0xb780[24]]=[];_0x7b40x10[_0xb780[28]](function(_0x7b40x16){var _0x7b40x17={};_0x7b40x17[_0x7b40x16]={$like:_0xb780[26]+_0x7b40x14+_0xb780[26]};_0x7b40x13[_0xb780[25]][_0xb780[24]][_0xb780[27]](_0x7b40x17);});break ;;default:_0x7b40x13[_0xb780[25]][_0x7b40x15]={$like:{}};_0x7b40x13[_0xb780[25]][_0x7b40x15][_0xb780[30]]=_0xb780[26]+_0x7b40x14+_0xb780[26];;}});JscriptyProject[_0xb780[43]](_0x7b40x13)[_0xb780[9]](function(_0x7b40x18){var _0x7b40x19=Math[_0xb780[35]](_0x7b40x18[_0xb780[34]]/_0x7b40x11);var _0x7b40x1a=_0x7b40x19>(_0x7b40x13[_0xb780[36]]+1)?util[_0xb780[23]](_0xb780[37],_0x7b40xf[_0xb780[38]],_0x7b40xf[_0xb780[40]][_0xb780[39]],_0x7b40xf[_0xb780[41]],_0x7b40x12+1):null;var _0x7b40x1b=_0x7b40x12>0?util[_0xb780[23]](_0xb780[37],_0x7b40xf[_0xb780[38]],_0x7b40xf[_0xb780[40]][_0xb780[39]],_0x7b40xf[_0xb780[41]],_0x7b40x12-1):null;_0x7b40x5[_0xb780[6]](200)[_0xb780[5]]({count:_0x7b40x18[_0xb780[34]],rows:_0x7b40x18[_0xb780[42]],next_page:_0x7b40x1a,previous_page:_0x7b40x1b,total_pages:_0x7b40x19});})[_0xb780[33]](function(_0x7b40x7){_0x7b40x5[_0xb780[6]](500)[_0xb780[5]]({error:_0xb780[32]})});};exports[_0xb780[44]]=function(_0x7b40xf,_0x7b40x5){console[_0xb780[46]](_0x7b40xf[_0xb780[45]]);JscriptyProject[_0xb780[48]]({where:{name:_0x7b40xf[_0xb780[45]][_0xb780[13]]}})[_0xb780[9]](function(_0x7b40x1c){if(!_0x7b40x1c){return _0x7b40x5[_0xb780[47]](404)};return _0x7b40x5[_0xb780[5]](_0x7b40x1c);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});};exports[_0xb780[49]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};return _0x7b40x5[_0xb780[5]](_0x7b40x1d);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[53]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[53]](_0x7b40xf[_0xb780[45]])[_0xb780[9]](function(_0x7b40x1d){return _0x7b40x5[_0xb780[6]](201)[_0xb780[5]](_0x7b40x1d)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[54]]=function(_0x7b40xf,_0x7b40x5){if(_0x7b40xf[_0xb780[45]][_0xb780[50]]){delete _0x7b40xf[_0xb780[45]][_0xb780[50]]};JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};var _0x7b40xd=_[_0xb780[55]](_0x7b40x1d,_0x7b40xf[_0xb780[45]]);_0x7b40xd[_0xb780[56]]()[_0xb780[9]](function(){return _0x7b40x5[_0xb780[6]](200)[_0xb780[5]](_0x7b40x1d)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});};exports[_0xb780[11]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[57]]({where:{id:_0x7b40xf[_0xb780[51]][_0xb780[50]]}})[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};_0x7b40x1d[_0xb780[11]]()[_0xb780[9]](function(){return _0x7b40x5[_0xb780[47]](204)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[58]]=function(_0x7b40xf,_0x7b40x5){JscriptyProject[_0xb780[11]]({where:{id:_0x7b40xf[_0xb780[16]][_0xb780[50]]},individualHooks:true})[_0xb780[9]](function(){return _0x7b40x5[_0xb780[47]](204)})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[59]]=function(_0x7b40xf,_0x7b40x5,_0x7b40x1e){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};console[_0xb780[46]](_0x7b40xf[_0xb780[16]][_0xb780[60]]);_0x7b40x5[_0xb780[64]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0xb780[61]+_0x7b40xf[_0xb780[16]][_0xb780[60]]+_0xb780[62],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb780[63]});return _0x7b40x5[_0xb780[5]](_0x7b40x1d[_0xb780[65]]);})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};exports[_0xb780[66]]=function(_0x7b40xf,_0x7b40x5,_0x7b40x1e){JscriptyProject[_0xb780[52]](_0x7b40xf[_0xb780[51]][_0xb780[50]])[_0xb780[9]](function(_0x7b40x1d){if(!_0x7b40x1d){return _0x7b40x5[_0xb780[47]](404)};xml[_0xb780[68]](_0x7b40x1d[_0xb780[67]],{normalizeTags:true,explicitArray:false},function(_0x7b40x7,_0x7b40x18){console[_0xb780[46]](_0x7b40x18);return _0x7b40x5[_0xb780[6]](200)[_0xb780[5]](_0x7b40x18);});})[_0xb780[33]](function(_0x7b40x7){return handleError(_0x7b40x5,_0x7b40x7)})};
\ No newline at end of file
+/**
+ * Using Rails-like standard naming convention for endpoints.
+ * GET     /api/jscripty/projects              ->  index
+ * POST    /api/jscripty/projects              ->  create
+ * GET     /api/jscripty/projects/:id          ->  show
+ * PUT     /api/jscripty/projects/:id          ->  update
+ * DELETE  /api/jscripty/projects/:id          ->  destroy
+ */
+
+'use strict';
+var xml = require('xml2js');
+
+var _ = require('lodash');
+
+var JscriptyProject = require('../../models').JscriptyProject;
+
+
+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 JscriptyProjects
+
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  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: {},
+    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 + '%';
+    }
+  });
+
+  JscriptyProject
+    .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;
+
+      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) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+exports.projectValidation = function(req, res) {
+  console.log(req.body);
+  JscriptyProject
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(jscripty_projects) {
+      if (!jscripty_projects) {
+        return res.sendStatus(404);
+      }
+      return res.send(jscripty_projects);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Gets a single JscriptyProject from the DB
+
+exports.show = function(req, res) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      return res.send(jscripty_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Creates a new JscriptyProject in the DB
+exports.create = function(req, res) {
+  JscriptyProject
+    .create(req.body)
+    .then(function(jscripty_project) {
+      return res.status(201).send(jscripty_project);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+// Updates an existing JscriptyProject in the DB
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(jscripty_project, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(jscripty_project);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+
+// Deletes a JscriptyProject from the DB
+exports.destroy = function(req, res) {
+  JscriptyProject
+    .find({
+      where: {
+        id: req.params.id
+      }
+    })
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      jscripty_project.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a jscripty_project from the DB.
+exports.bulkDestroy = function(req, res) {
+  JscriptyProject
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+exports.download = function(req, res, next) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+      console.log(req.query.filename);
+      res.set({
+        "Content-Disposition": "attachment; filename=\"" + req.query.filename +
+          ".xml\"",
+        "Content-Type": "txt/xml"
+      });
+      return res.send(jscripty_project.draft);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.projectJson = function(req, res, next) {
+  JscriptyProject
+    .findById(req.params.id)
+    .then(function(jscripty_project) {
+      if (!jscripty_project) {
+        return res.sendStatus(404);
+      }
+
+      xml.parseString(jscripty_project.production, {
+        normalizeTags: true,
+        explicitArray: false
+      }, function(err, result) {
+        console.log(result);
+        return res.status(200).send(result);
+
+      });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};