-'use strict';
-
-var _ = require('lodash');
-var Metric = require('../../models').Metric;
-var util = require('util');
-
-// Get list of metrics
-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 + '%';
- }
- });
-
- Metric
- .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.metricValidation = function(req, res) {
- console.log(req.body);
- Metric
- .findAll({
- where: {
- name: req.body.name
- }
- })
- .then(function(metrics) {
- if (!metrics) {
- return res.sendStatus(404);
- }
- return res.send(metrics);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-exports.getMetricsByTable = function(req, res) {
- console.log(req.query);
- Metric
- .findAll({
- where: {
- table: req.query.table
- }
- })
- .then(function(metrics) {
- console.log(metrics);
- if (!metrics) {
- return res.sendStatus(404);
- }
- return res.status(200).send(metrics);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Get a single metric
-exports.show = function(req, res) {
- Metric
- .findById(req.params.id)
- .then(function(metric) {
- if (!metric) {
- return res.sendStatus(404);
- }
- return res.send(metric);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Creates a new metric in the DB.
-exports.create = function(req, res) {
- Metric
- .create(req.body)
- .then(function(metric) {
- return res.status(201).send(metric);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Updates an existing metric in the DB.
-exports.update = function(req, res) {
- Metric
- .findAll({
- where: {
- name: req.body.name,
- id: {
- $ne: req.body.id
- }
- }
- })
- .then(function(metrics) {
- if (!metrics) {
- return res.sendStatus(404);
- }
- if (metrics.length > 0) {
- return res.status(500).send({
- message: 'MESSAGE_EXIST_METRIC'
- })
- }
- if (req.body.id) {
- delete req.body.id;
- }
- Metric
- .find({
- where: {
- id: req.params.id
- }
- })
- .then(function(metric) {
- if (!metric) {
- return res.sendStatus(404);
- }
- var updated = _.merge(metric, req.body);
- updated.save()
- .then(function() {
- return res.status(200).send(metric);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-// Deletes a metric from the DB.
-exports.destroy = function(req, res) {
- Metric
- .findById(req.params.id)
- .then(function(metric) {
- if (!metric) {
- return res.sendStatus(404);
- }
- metric.getZendeskTexts()
- .then(function(texts) {
- if (texts.length > 0) {
- return res.status(500).send({
- message: 'MESSAGE_METRIC_CONFIGURATION_ASSOCIATED'
- });
- }
- metric.destroy()
- .then(function() {
- return res.sendStatus(204);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-exports.bulkDestroy = function(req, res) {
- Metric
- .destroy({
- where: {
- id: req.query.id
- },
- individualHooks: true
- })
- .then(function() {
- return res.sendStatus(204);
- })
- .catch(function(err) {
- return handleError(res, err);
- });
-};
-
-function handleError(res, err) {
- return res.status(500).send(err);
-}
+var _0xd9cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\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","\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","\x6D\x65\x74\x72\x69\x63\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","\x67\x65\x74\x4D\x65\x74\x72\x69\x63\x73\x42\x79\x54\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65","\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","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x45\x54\x52\x49\x43","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x4D\x45\x54\x52\x49\x43\x5F\x43\x4F\x4E\x46\x49\x47\x55\x52\x41\x54\x49\x4F\x4E\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x54\x65\x78\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xd9cf[0];var _=require(_0xd9cf[1]);var Metric=require(_0xd9cf[3])[_0xd9cf[2]];var util=require(_0xd9cf[4]);exports[_0xd9cf[5]]=function(_0xbdefx4,_0xbdefx5){var _0xbdefx6=[_0xd9cf[6],_0xd9cf[7]];var _0xbdefx7=_0xbdefx4[_0xd9cf[9]][_0xd9cf[8]]?parseInt(_0xbdefx4[_0xd9cf[9]][_0xd9cf[8]],10):100;var _0xbdefx8=_0xbdefx4[_0xd9cf[9]][_0xd9cf[10]]?parseInt(_0xbdefx4[_0xd9cf[9]][_0xd9cf[10]],10):0;var _0xbdefx9={where:{},limit:_0xbdefx7,offset:_0xbdefx8*_0xbdefx7};_[_0xd9cf[24]](_0xbdefx4[_0xd9cf[9]],function(_0xbdefxa,_0xbdefxb){switch(_0xbdefxb){case _0xd9cf[8]:;case _0xd9cf[10]:break ;;case _0xd9cf[13]:_0xbdefx9[_0xd9cf[11]]=util[_0xd9cf[16]](_0xd9cf[12],_0xbdefx4[_0xd9cf[9]][_0xd9cf[13]],_0xbdefx4[_0xd9cf[9]][_0xd9cf[14]]||_0xd9cf[15])||null;break ;;case _0xd9cf[14]:break ;;case _0xd9cf[22]:_0xbdefx9[_0xd9cf[18]][_0xd9cf[17]]=[];_0xbdefx6[_0xd9cf[21]](function(_0xbdefxc){var _0xbdefxd={};_0xbdefxd[_0xbdefxc]={$like:_0xd9cf[19]+_0xbdefxa+_0xd9cf[19]};_0xbdefx9[_0xd9cf[18]][_0xd9cf[17]][_0xd9cf[20]](_0xbdefxd);});break ;;default:_0xbdefx9[_0xd9cf[18]][_0xbdefxb]={$like:{}};_0xbdefx9[_0xd9cf[18]][_0xbdefxb][_0xd9cf[23]]=_0xd9cf[19]+_0xbdefxa+_0xd9cf[19];;}});Metric[_0xd9cf[39]](_0xbdefx9)[_0xd9cf[38]](function(_0xbdefxf){var _0xbdefx10=Math[_0xd9cf[30]](_0xbdefxf[_0xd9cf[29]]/_0xbdefx7);var _0xbdefx11=_0xbdefx10>(_0xbdefx9[_0xd9cf[31]]+1)?util[_0xd9cf[16]](_0xd9cf[32],_0xbdefx4[_0xd9cf[33]],_0xbdefx4[_0xd9cf[35]][_0xd9cf[34]],_0xbdefx4[_0xd9cf[36]],_0xbdefx8+1):null;var _0xbdefx12=_0xbdefx8>0?util[_0xd9cf[16]](_0xd9cf[32],_0xbdefx4[_0xd9cf[33]],_0xbdefx4[_0xd9cf[35]][_0xd9cf[34]],_0xbdefx4[_0xd9cf[36]],_0xbdefx8-1):null;_0xbdefx5[_0xd9cf[27]](200)[_0xd9cf[26]]({count:_0xbdefxf[_0xd9cf[29]],rows:_0xbdefxf[_0xd9cf[37]],next_page:_0xbdefx11,previous_page:_0xbdefx12,total_pages:_0xbdefx10});})[_0xd9cf[28]](function(_0xbdefxe){_0xbdefx5[_0xd9cf[27]](500)[_0xd9cf[26]]({error:_0xd9cf[25]})});};exports[_0xd9cf[40]]=function(_0xbdefx4,_0xbdefx5){console[_0xd9cf[42]](_0xbdefx4[_0xd9cf[41]]);Metric[_0xd9cf[44]]({where:{name:_0xbdefx4[_0xd9cf[41]][_0xd9cf[6]]}})[_0xd9cf[38]](function(_0xbdefx13){if(!_0xbdefx13){return _0xbdefx5[_0xd9cf[43]](404)};return _0xbdefx5[_0xd9cf[26]](_0xbdefx13);})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});};exports[_0xd9cf[45]]=function(_0xbdefx4,_0xbdefx5){console[_0xd9cf[42]](_0xbdefx4[_0xd9cf[9]]);Metric[_0xd9cf[44]]({where:{table:_0xbdefx4[_0xd9cf[9]][_0xd9cf[46]]}})[_0xd9cf[38]](function(_0xbdefx13){console[_0xd9cf[42]](_0xbdefx13);if(!_0xbdefx13){return _0xbdefx5[_0xd9cf[43]](404)};return _0xbdefx5[_0xd9cf[27]](200)[_0xd9cf[26]](_0xbdefx13);})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});};exports[_0xd9cf[47]]=function(_0xbdefx4,_0xbdefx5){Metric[_0xd9cf[50]](_0xbdefx4[_0xd9cf[49]][_0xd9cf[48]])[_0xd9cf[38]](function(_0xbdefx14){if(!_0xbdefx14){return _0xbdefx5[_0xd9cf[43]](404)};return _0xbdefx5[_0xd9cf[26]](_0xbdefx14);})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)})};exports[_0xd9cf[51]]=function(_0xbdefx4,_0xbdefx5){Metric[_0xd9cf[51]](_0xbdefx4[_0xd9cf[41]])[_0xd9cf[38]](function(_0xbdefx14){return _0xbdefx5[_0xd9cf[27]](201)[_0xd9cf[26]](_0xbdefx14)})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)})};exports[_0xd9cf[52]]=function(_0xbdefx4,_0xbdefx5){Metric[_0xd9cf[44]]({where:{name:_0xbdefx4[_0xd9cf[41]][_0xd9cf[6]],id:{$ne:_0xbdefx4[_0xd9cf[41]][_0xd9cf[48]]}}})[_0xd9cf[38]](function(_0xbdefx13){if(!_0xbdefx13){return _0xbdefx5[_0xd9cf[43]](404)};if(_0xbdefx13[_0xd9cf[53]]>0){return _0xbdefx5[_0xd9cf[27]](500)[_0xd9cf[26]]({message:_0xd9cf[54]})};if(_0xbdefx4[_0xd9cf[41]][_0xd9cf[48]]){delete _0xbdefx4[_0xd9cf[41]][_0xd9cf[48]]};Metric[_0xd9cf[57]]({where:{id:_0xbdefx4[_0xd9cf[49]][_0xd9cf[48]]}})[_0xd9cf[38]](function(_0xbdefx14){if(!_0xbdefx14){return _0xbdefx5[_0xd9cf[43]](404)};var _0xbdefx15=_[_0xd9cf[55]](_0xbdefx14,_0xbdefx4[_0xd9cf[41]]);_0xbdefx15[_0xd9cf[56]]()[_0xd9cf[38]](function(){return _0xbdefx5[_0xd9cf[27]](200)[_0xd9cf[26]](_0xbdefx14)})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)})};exports[_0xd9cf[58]]=function(_0xbdefx4,_0xbdefx5){Metric[_0xd9cf[50]](_0xbdefx4[_0xd9cf[49]][_0xd9cf[48]])[_0xd9cf[38]](function(_0xbdefx14){if(!_0xbdefx14){return _0xbdefx5[_0xd9cf[43]](404)};_0xbdefx14[_0xd9cf[60]]()[_0xd9cf[38]](function(_0xbdefx16){if(_0xbdefx16[_0xd9cf[53]]>0){return _0xbdefx5[_0xd9cf[27]](500)[_0xd9cf[26]]({message:_0xd9cf[59]})};_0xbdefx14[_0xd9cf[58]]()[_0xd9cf[38]](function(){return _0xbdefx5[_0xd9cf[43]](204)})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)});})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)})};exports[_0xd9cf[61]]=function(_0xbdefx4,_0xbdefx5){Metric[_0xd9cf[58]]({where:{id:_0xbdefx4[_0xd9cf[9]][_0xd9cf[48]]},individualHooks:true})[_0xd9cf[38]](function(){return _0xbdefx5[_0xd9cf[43]](204)})[_0xd9cf[28]](function(_0xbdefxe){return handleError(_0xbdefx5,_0xbdefxe)})};function handleError(_0xbdefx5,_0xbdefxe){return _0xbdefx5[_0xd9cf[27]](500)[_0xd9cf[26]](_0xbdefxe)}
\ No newline at end of file