Built motion from commit 5e31ea4.|0.0.32
[motion.git] / server / api / module / setting / setting.controller.js
index 0e959a7..3ebcb5c 100644 (file)
@@ -1 +1,110 @@
-var _0x2d57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x6E\x65\x74\x6D\x61\x73\x6B","\x6D\x61\x63","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x72\x73\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\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","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x68\x65\x78","\x75\x74\x66\x38","\x66\x69\x6E\x61\x6C"];_0x2d57[0];var _=require(_0x2d57[1]);var util=require(_0x2d57[2]);var crypto=require(_0x2d57[3]);var Setting=require(_0x2d57[5])[_0x2d57[4]];exports[_0x2d57[6]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[11]]()[_0x2d57[10]](function(_0xd13ax8){return _0xd13ax6[_0x2d57[9]](200)[_0x2d57[8]](_0xd13ax8)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[12]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};if(_0xd13ax9[_0x2d57[14]]){_0xd13ax9[_0x2d57[14]]=decrypt(_0x2d57[15],util[_0x2d57[20]](_0x2d57[16],_0xd13ax9[_0x2d57[17]],_0xd13ax9[_0x2d57[18]],_0xd13ax9[_0x2d57[19]]),_0xd13ax9[_0x2d57[14]]);_0xd13ax9[_0x2d57[14]]=JSON[_0x2d57[21]](_0xd13ax9[_0x2d57[14]]);};return _0xd13ax6[_0x2d57[8]](_0xd13ax9);})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[25]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[25]](_0xd13ax5[_0x2d57[26]])[_0x2d57[10]](function(_0xd13ax9){return _0xd13ax6[_0x2d57[9]](201)[_0x2d57[8]](_0xd13ax9)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};exports[_0x2d57[27]]=function(_0xd13ax5,_0xd13ax6){if(_0xd13ax5[_0x2d57[26]][_0x2d57[22]]){delete _0xd13ax5[_0x2d57[26]][_0x2d57[22]]};Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};var _0xd13axa=_[_0x2d57[28]](_0xd13ax9,_0xd13ax5[_0x2d57[26]]);_0xd13axa[_0x2d57[29]]()[_0x2d57[10]](function(){return _0xd13ax6[_0x2d57[9]](200)[_0x2d57[8]](_0xd13ax9)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});};exports[_0x2d57[30]]=function(_0xd13ax5,_0xd13ax6){Setting[_0x2d57[24]](_0xd13ax5[_0x2d57[23]][_0x2d57[22]])[_0x2d57[10]](function(_0xd13ax9){if(!_0xd13ax9){return _0xd13ax6[_0x2d57[13]](404)};_0xd13ax9[_0x2d57[30]]()[_0x2d57[10]](function(){return _0xd13ax6[_0x2d57[13]](204)})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)});})[_0x2d57[7]](function(_0xd13ax7){return handleError(_0xd13ax6,_0xd13ax7)})};function handleError(_0xd13ax6,_0xd13ax7){return _0xd13ax6[_0x2d57[9]](500)[_0x2d57[8]](_0xd13ax7)}function decrypt(_0xd13axd,_0xd13axe,_0xd13axf){var _0xd13ax10=crypto[_0x2d57[31]](_0xd13axd,_0xd13axe);var _0xd13ax11=_0xd13ax10[_0x2d57[27]](_0xd13axf,_0x2d57[32],_0x2d57[33]);_0xd13ax11+=_0xd13ax10[_0x2d57[34]](_0x2d57[33]);return _0xd13ax11;}
\ No newline at end of file
+'use strict';
+
+var _ = require('lodash');
+var util = require('util');
+var crypto = require('crypto');
+
+var Setting = require('../../models').Setting;
+
+// Get list of settings
+exports.index = function(req, res) {
+  Setting
+    .findAll()
+    .then(function(settings) {
+      return res.status(200).send(settings);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single setting
+exports.show = function(req, res) {
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+
+      if (setting.license) {
+        setting.license = decrypt('aes-256-ctr', util.format('%s:%s:%s',
+          setting.address, setting.netmask, setting.mac), setting.license);
+        setting.license = JSON.parse(setting.license);
+      }
+
+      return res.send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new setting in the DB.
+exports.create = function(req, res) {
+  Setting
+    .create(req.body)
+    .then(function(setting) {
+      return res.status(201).send(setting);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing setting in the DB.
+exports.update = function(req, res) {
+  if (req.body.id) {
+    delete req.body.id;
+  }
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      var updated = _.merge(setting, req.body);
+      updated.save()
+        .then(function() {
+          return res.status(200).send(setting);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a setting from the DB.
+exports.destroy = function(req, res) {
+  Setting
+    .findById(req.params.id)
+    .then(function(setting) {
+      if (!setting) {
+        return res.sendStatus(404);
+      }
+      setting.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
+
+function decrypt(algorithm, password, text) {
+  var decipher = crypto.createDecipher(algorithm, password)
+  var dec = decipher.update(text, 'hex', 'utf8')
+  dec += decipher.final('utf8');
+  return dec;
+}