Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / extracted_report / extracted_report.controller.js
index 53330fd..8975490 100644 (file)
@@ -1 +1,245 @@
-var _0x21b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x66\x73","\x69\x6E\x64\x65\x78","\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\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","\x6C\x6F\x67","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\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","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x6E\x63\x6F\x64\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x74\x72\x6F\x79","\x52\x5F\x4F\x4B","\x57\x5F\x4F\x4B","\x46\x69\x6C\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x20\x6F\x72\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x70\x65\x72\x6D\x69\x74\x74\x65\x64","\x65\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x20\x64\x65\x6C\x65\x74\x69\x6E\x67\x20\x66\x69\x6C\x65\x20\x3A","\x66\x69\x6C\x65\x20\x64\x65\x6C\x65\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x61\x63\x63\x65\x73\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x21b4[0];var _=require(_0x21b4[1]);var ExtractedReport=require(_0x21b4[3])[_0x21b4[2]];var util=require(_0x21b4[4]);var path=require(_0x21b4[5]);var moment=require(_0x21b4[6]);var config=require(_0x21b4[7]);var base64=require(_0x21b4[8]);var fs=require(_0x21b4[9]);exports[_0x21b4[10]]=function(_0x2cf9x9,_0x2cf9xa){var _0x2cf9xb=[_0x21b4[11],_0x21b4[12],_0x21b4[13]];var _0x2cf9xc=_0x2cf9x9[_0x21b4[15]][_0x21b4[14]]?parseInt(_0x2cf9x9[_0x21b4[15]][_0x21b4[14]],10):100;var _0x2cf9xd=_0x2cf9x9[_0x21b4[15]][_0x21b4[16]]?parseInt(_0x2cf9x9[_0x21b4[15]][_0x21b4[16]],10):0;var _0x2cf9xe={where:{},limit:_0x2cf9xc,offset:_0x2cf9xd*_0x2cf9xc};_[_0x21b4[30]](_0x2cf9x9[_0x21b4[15]],function(_0x2cf9xf,_0x2cf9x10){switch(_0x2cf9x10){case _0x21b4[14]:;case _0x21b4[16]:break ;;case _0x21b4[19]:_0x2cf9xe[_0x21b4[17]]=util[_0x21b4[22]](_0x21b4[18],_0x2cf9x9[_0x21b4[15]][_0x21b4[19]],_0x2cf9x9[_0x21b4[15]][_0x21b4[20]]||_0x21b4[21])||null;break ;;case _0x21b4[20]:break ;;case _0x21b4[28]:_0x2cf9xe[_0x21b4[24]][_0x21b4[23]]=[];_0x2cf9xb[_0x21b4[27]](function(_0x2cf9x11){var _0x2cf9x12={};_0x2cf9x12[_0x2cf9x11]={$like:_0x21b4[25]+_0x2cf9xf+_0x21b4[25]};_0x2cf9xe[_0x21b4[24]][_0x21b4[23]][_0x21b4[26]](_0x2cf9x12);});break ;;default:_0x2cf9xe[_0x21b4[24]][_0x2cf9x10]={$like:{}};_0x2cf9xe[_0x21b4[24]][_0x2cf9x10][_0x21b4[29]]=_0x21b4[25]+_0x2cf9xf+_0x21b4[25];;}});console[_0x21b4[31]](_0x2cf9xe);ExtractedReport[_0x21b4[46]](_0x2cf9xe)[_0x21b4[45]](function(_0x2cf9x14){var _0x2cf9x15=Math[_0x21b4[37]](_0x2cf9x14[_0x21b4[36]]/_0x2cf9xc);var _0x2cf9x16=_0x2cf9x15>(_0x2cf9xe[_0x21b4[38]]+1)?util[_0x21b4[22]](_0x21b4[39],_0x2cf9x9[_0x21b4[40]],_0x2cf9x9[_0x21b4[42]][_0x21b4[41]],_0x2cf9x9[_0x21b4[43]],_0x2cf9xd+1):null;var _0x2cf9x17=_0x2cf9xd>0?util[_0x21b4[22]](_0x21b4[39],_0x2cf9x9[_0x21b4[40]],_0x2cf9x9[_0x21b4[42]][_0x21b4[41]],_0x2cf9x9[_0x21b4[43]],_0x2cf9xd-1):null;_0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]]({count:_0x2cf9x14[_0x21b4[36]],rows:_0x2cf9x14[_0x21b4[44]],next_page:_0x2cf9x16,previous_page:_0x2cf9x17,total_pages:_0x2cf9x15});})[_0x21b4[35]](function(_0x2cf9x13){_0x2cf9xa[_0x21b4[34]](500)[_0x21b4[33]]({error:_0x21b4[32]})});};exports[_0x21b4[47]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};return _0x2cf9xa[_0x21b4[33]](_0x2cf9x18);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[52]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x19){if(!_0x2cf9x19){return _0x2cf9xa[_0x21b4[34]](404)[_0x21b4[33]](_0x2cf9x19)};var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x19[_0x21b4[57]]);base64[_0x21b4[59]](_0x2cf9x1a,function(_0x2cf9x13,_0x2cf9x1b){if(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13);return handleError(_0x2cf9xa,_0x2cf9x13);}else {return _0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]](_0x2cf9x1b)}});})[_0x21b4[35]](function(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13);return handleError(_0x2cf9xa,_0x2cf9x13);})};exports[_0x21b4[60]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[60]](_0x2cf9x9[_0x21b4[61]])[_0x21b4[45]](function(_0x2cf9x18){return _0x2cf9xa[_0x21b4[34]](201)[_0x21b4[33]](_0x2cf9x18)})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[62]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[65]]({where:{name:_0x2cf9x9[_0x21b4[61]][_0x21b4[11]],id:{$ne:_0x2cf9x9[_0x21b4[61]][_0x21b4[49]]}}})[_0x21b4[45]](function(_0x2cf9x1c){if(!_0x2cf9x1c){return _0x2cf9xa[_0x21b4[48]](404)};if(_0x2cf9x9[_0x21b4[61]][_0x21b4[49]]){delete _0x2cf9x9[_0x21b4[61]][_0x21b4[49]]};ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};var _0x2cf9x1d=_[_0x21b4[63]](_0x2cf9x18,_0x2cf9x9[_0x21b4[61]]);_0x2cf9x1d[_0x21b4[64]]()[_0x21b4[45]](function(){return _0x2cf9xa[_0x21b4[34]](200)[_0x21b4[33]](_0x2cf9x18)})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[66]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[51]](_0x2cf9x9[_0x21b4[50]][_0x21b4[49]])[_0x21b4[45]](function(_0x2cf9x18){if(!_0x2cf9x18){return _0x2cf9xa[_0x21b4[48]](404)};_0x2cf9x18[_0x21b4[66]]()[_0x21b4[45]](function(){var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x18[_0x21b4[57]]);fs[_0x21b4[74]](_0x2cf9x1a,fs[_0x21b4[67]]|fs[_0x21b4[68]],function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[69])}else {fs[_0x21b4[73]](_0x2cf9x1a,function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[71],_0x2cf9x13)}else {console[_0x21b4[31]](_0x21b4[72])}})}});return _0x2cf9xa[_0x21b4[48]](204);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)});})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};exports[_0x21b4[75]]=function(_0x2cf9x9,_0x2cf9xa){ExtractedReport[_0x21b4[65]]({where:{id:_0x2cf9x9[_0x21b4[15]][_0x21b4[49]]}})[_0x21b4[45]](function(_0x2cf9x1e){_0x2cf9x1e[_0x21b4[27]](function(_0x2cf9x18){_0x2cf9x18[_0x21b4[66]]()[_0x21b4[45]](function(){var _0x2cf9x1a=path[_0x21b4[58]](config[_0x21b4[53]],_0x21b4[54],_0x21b4[55],_0x21b4[56],_0x2cf9x18[_0x21b4[57]]);fs[_0x21b4[74]](_0x2cf9x1a,fs[_0x21b4[67]]|fs[_0x21b4[68]],function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[69])}else {fs[_0x21b4[73]](_0x2cf9x1a,function(_0x2cf9x13){if(_0x2cf9x13){console[_0x21b4[70]](_0x21b4[71],_0x2cf9x13)}else {console[_0x21b4[31]](_0x21b4[72])}})}});})[_0x21b4[35]](function(_0x2cf9x13){console[_0x21b4[31]](_0x2cf9x13)})});return _0x2cf9xa[_0x21b4[48]](204);})[_0x21b4[35]](function(_0x2cf9x13){return handleError(_0x2cf9xa,_0x2cf9x13)})};function handleError(_0x2cf9xa,_0x2cf9x13){return _0x2cf9xa[_0x21b4[34]](500)[_0x21b4[33]](_0x2cf9x13)}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var ExtractedReport = require('../../models').ExtractedReport;
+var util = require('util');
+var path = require('path');
+var moment = require('moment');
+var config = require('../../config/environment');
+var base64 = require('file-base64');
+var fs = require('fs');
+
+// Get list of extracted_reports
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'startDate', 'endDate'];
+  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 + '%';
+    }
+  });
+  console.log(query);
+
+  ExtractedReport
+    .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!'
+      });
+    });
+};
+
+// Get a single extracted_reports
+exports.show = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extracted) {
+      if (!extracted) {
+        return res.sendStatus(404);
+      }
+      return res.send(extracted);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.download = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extract) {
+      if (!extract) {
+        return res.status(404).send(extract);
+      }
+      var filepath = path.join(config.root, 'server', 'files', 'reports', extract.savename);
+      base64.encode(filepath, function(err, base64String) {
+        if (err) {
+          console.log(err);
+          return handleError(res, err);
+        } else {
+          return res.status(200).send(base64String);
+        }
+      });
+    })
+    .catch(function(err) {
+      console.log(err);
+      return handleError(res, err);
+    });
+};
+
+// Creates a new extracted_report in the DB.
+exports.create = function(req, res) {
+  ExtractedReport
+    .create(req.body)
+    .then(function(extracted) {
+      return res.status(201).send(extracted);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing extracted_report in the DB.
+exports.update = function(req, res) {
+  ExtractedReport
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(extracted_reports) {
+      if (!extracted_reports) {
+        return res.sendStatus(404);
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      ExtractedReport
+        .findById(req.params.id)
+        .then(function(extracted) {
+          if (!extracted) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(extracted, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(extracted);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes an extracted_report from the DB.
+exports.destroy = function(req, res) {
+  ExtractedReport
+    .findById(req.params.id)
+    .then(function(extracted) {
+      if (!extracted) {
+        return res.sendStatus(404);
+      }
+      extracted.destroy()
+        .then(function() {
+          var filepath = path.join(config.root, 'server', 'files', 'reports', extracted.savename);
+          fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
+            if (err) {
+              console.error('File does not exist or operation not permitted');
+            } else {
+              fs.unlink(filepath, function(err) {
+                if (err) {
+                  console.error('error deleting file :', err);
+                } else {
+                  console.log('file deleted');
+                }
+              })
+            }
+          });
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  ExtractedReport
+    .findAll({
+      where: {
+        id: req.query.id
+      }
+    })
+    .then(function(extracts) {
+      extracts.forEach(function(extracted) {
+        extracted.destroy()
+          .then(function() {
+            var filepath = path.join(config.root, 'server', 'files', 'reports', extracted.savename);
+            fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
+              if (err) {
+                console.error('File does not exist or operation not permitted');
+              } else {
+                fs.unlink(filepath, function(err) {
+                  if (err) {
+                    console.error('error deleting file :', err);
+                  } else {
+                    console.log('file deleted');
+                  }
+                })
+              }
+            });
+          })
+          .catch(function(err) {
+            console.log(err);
+          });
+      });
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}