Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / analyticMetric / analyticMetric.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x80ed=['end','sendStatus','stack','name','index','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','where','merge','VIRTUAL','options','AnalyticMetric','findAll','rows','catch','show','params','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','error','find','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','count','offset','set','Content-Range','apply','save','update','destroy','then','get','Metrics','UserProfileResource'];(function(_0x23fce2,_0x29b0aa){var _0x7af835=function(_0x3c0b04){while(--_0x3c0b04){_0x23fce2['push'](_0x23fce2['shift']());}};_0x7af835(++_0x29b0aa);}(_0x80ed,0x11c));var _0xd80e=function(_0x36a7d8,_0x3cba6b){_0x36a7d8=_0x36a7d8-0x0;var _0x58aeb8=_0x80ed[_0x36a7d8];return _0x58aeb8;};'use strict';var pdf=require(_0xd80e('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xd80e('0x1'));var zipdir=require(_0xd80e('0x2'));var jsonpatch=require(_0xd80e('0x3'));var rp=require('request-promise');var moment=require(_0xd80e('0x4'));var BPromise=require(_0xd80e('0x5'));var Mustache=require(_0xd80e('0x6'));var util=require(_0xd80e('0x7'));var path=require('path');var sox=require(_0xd80e('0x8'));var csv=require(_0xd80e('0x9'));var ejs=require(_0xd80e('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xd80e('0xb'));var crypto=require(_0xd80e('0xc'));var jsforce=require(_0xd80e('0xd'));var deskjs=require(_0xd80e('0xe'));var toCsv=require(_0xd80e('0x9'));var querystring=require(_0xd80e('0xf'));var Papa=require(_0xd80e('0x10'));var Redis=require(_0xd80e('0x11'));var authService=require(_0xd80e('0x12'));var qs=require(_0xd80e('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd80e('0x14'));var logger=require(_0xd80e('0x15'))(_0xd80e('0x16'));var utils=require(_0xd80e('0x17'));var config=require(_0xd80e('0x18'));var db=require(_0xd80e('0x19'))['db'];function respondWithStatusCode(_0x1a9024,_0x118f53){_0x118f53=_0x118f53||0xcc;return function(_0x1d3fcf){if(_0x1d3fcf){return _0x1a9024['sendStatus'](_0x118f53);}return _0x1a9024['status'](_0x118f53)['end']();};}function respondWithResult(_0x57fefb,_0x145766){_0x145766=_0x145766||0xc8;return function(_0x3d233b){if(_0x3d233b){return _0x57fefb[_0xd80e('0x1a')](_0x145766)[_0xd80e('0x1b')](_0x3d233b);}};}function respondWithFilteredResult(_0x449c60,_0x58a17e){return function(_0x595683){if(_0x595683){var _0x2c8c61=_0x595683[_0xd80e('0x1c')],_0x3124e8=_0x58a17e[_0xd80e('0x1d')],_0x3b48ae=_0x58a17e[_0xd80e('0x1d')]+_0x58a17e['limit'],_0x40a4d5;if(_0x3b48ae>=_0x2c8c61){_0x3b48ae=_0x2c8c61;_0x40a4d5=0xc8;}else{_0x40a4d5=0xce;}_0x449c60[_0xd80e('0x1a')](_0x40a4d5);return _0x449c60[_0xd80e('0x1e')](_0xd80e('0x1f'),_0x3124e8+'-'+_0x3b48ae+'/'+_0x2c8c61)[_0xd80e('0x1b')](_0x595683);}return null;};}function patchUpdates(_0x593af6){return function(_0x39397a){try{jsonpatch[_0xd80e('0x20')](_0x39397a,_0x593af6,!![]);}catch(_0xecfe74){return BPromise['reject'](_0xecfe74);}return _0x39397a[_0xd80e('0x21')]();};}function saveUpdates(_0x2ef8a1,_0x2765ea){return function(_0x147134){if(_0x147134){return _0x147134[_0xd80e('0x22')](_0x2ef8a1)['then'](function(_0x4b6b8a){return _0x4b6b8a;});}return null;};}function removeEntity(_0x35a1bc,_0x3fa159){return function(_0x3b39bf){if(_0x3b39bf){return _0x3b39bf[_0xd80e('0x23')]()[_0xd80e('0x24')](function(){var _0x326d66=_0x3b39bf[_0xd80e('0x25')]({'plain':!![]});var _0x5430b6=_0xd80e('0x26');return db[_0xd80e('0x27')][_0xd80e('0x23')]({'where':{'type':_0x5430b6,'resourceId':_0x326d66['id']}})['then'](function(){return _0x3b39bf;});})[_0xd80e('0x24')](function(){_0x35a1bc[_0xd80e('0x1a')](0xcc)[_0xd80e('0x28')]();});}};}function handleEntityNotFound(_0x482779,_0x521aa4){return function(_0x5420e7){if(!_0x5420e7){_0x482779[_0xd80e('0x29')](0x194);}return _0x5420e7;};}function handleError(_0x4b8291,_0x9f9287){_0x9f9287=_0x9f9287||0x1f4;return function(_0x1044cc){logger['error'](_0x1044cc[_0xd80e('0x2a')]);if(_0x1044cc[_0xd80e('0x2b')]){delete _0x1044cc[_0xd80e('0x2b')];}_0x4b8291[_0xd80e('0x1a')](_0x9f9287)['send'](_0x1044cc);};}exports[_0xd80e('0x2c')]=function(_0x1ad3bc,_0x845451){var _0x39088b={},_0x2b1aaf={},_0x361946={'count':0x0,'rows':[]};var _0x289685=_[_0xd80e('0x2d')](db['AnalyticMetric']['rawAttributes'],function(_0x30f9bd){return{'name':_0x30f9bd[_0xd80e('0x2e')],'type':_0x30f9bd[_0xd80e('0x2f')][_0xd80e('0x30')]};});_0x2b1aaf[_0xd80e('0x31')]=_[_0xd80e('0x2d')](_0x289685,'name');_0x2b1aaf['query']=_[_0xd80e('0x32')](_0x1ad3bc[_0xd80e('0x33')]);_0x2b1aaf[_0xd80e('0x34')]=_[_0xd80e('0x35')](_0x2b1aaf[_0xd80e('0x31')],_0x2b1aaf[_0xd80e('0x33')]);_0x39088b[_0xd80e('0x36')]=_[_0xd80e('0x35')](_0x2b1aaf['model'],qs['fields'](_0x1ad3bc[_0xd80e('0x33')][_0xd80e('0x37')]));_0x39088b[_0xd80e('0x36')]=_0x39088b[_0xd80e('0x36')][_0xd80e('0x38')]?_0x39088b[_0xd80e('0x36')]:_0x2b1aaf[_0xd80e('0x31')];if(!_0x1ad3bc[_0xd80e('0x33')][_0xd80e('0x39')](_0xd80e('0x3a'))){_0x39088b['limit']=qs[_0xd80e('0x3b')](_0x1ad3bc['query'][_0xd80e('0x3b')]);_0x39088b[_0xd80e('0x1d')]=qs[_0xd80e('0x1d')](_0x1ad3bc[_0xd80e('0x33')]['offset']);}_0x39088b[_0xd80e('0x3c')]=qs['sort'](_0x1ad3bc[_0xd80e('0x33')]['sort']);_0x39088b[_0xd80e('0x3d')]=qs[_0xd80e('0x34')](_['pick'](_0x1ad3bc[_0xd80e('0x33')],_0x2b1aaf[_0xd80e('0x34')]),_0x289685);if(_0x1ad3bc[_0xd80e('0x33')]['filter']){_0x39088b[_0xd80e('0x3d')]=_[_0xd80e('0x3e')](_0x39088b[_0xd80e('0x3d')],{'$or':_[_0xd80e('0x2d')](_0x289685,function(_0x3c6f5f){if(_0x3c6f5f[_0xd80e('0x2f')]!==_0xd80e('0x3f')){var _0x137552={};_0x137552[_0x3c6f5f[_0xd80e('0x2b')]]={'$like':'%'+_0x1ad3bc['query']['filter']+'%'};return _0x137552;}})});}_0x39088b=_['merge']({},_0x39088b,_0x1ad3bc[_0xd80e('0x40')]);var _0x3ff4b4={'where':_0x39088b['where']};return db[_0xd80e('0x41')]['count'](_0x3ff4b4)[_0xd80e('0x24')](function(_0x5ade19){_0x361946[_0xd80e('0x1c')]=_0x5ade19;if(_0x1ad3bc[_0xd80e('0x33')]['includeAll']){_0x39088b['include']=[{'all':!![]}];}return db[_0xd80e('0x41')][_0xd80e('0x42')](_0x39088b);})[_0xd80e('0x24')](function(_0x3e65a7){_0x361946[_0xd80e('0x43')]=_0x3e65a7;return _0x361946;})[_0xd80e('0x24')](respondWithFilteredResult(_0x845451,_0x39088b))[_0xd80e('0x44')](handleError(_0x845451,null));};exports[_0xd80e('0x45')]=function(_0x91c6ed,_0x2da5f5){var _0x1bbb36={'raw':!![],'where':{'id':_0x91c6ed[_0xd80e('0x46')]['id']}},_0x2e257e={};_0x2e257e[_0xd80e('0x31')]=_[_0xd80e('0x32')](db[_0xd80e('0x41')]['rawAttributes']);_0x2e257e['query']=_['keys'](_0x91c6ed[_0xd80e('0x33')]);_0x2e257e['filters']=_[_0xd80e('0x35')](_0x2e257e[_0xd80e('0x31')],_0x2e257e[_0xd80e('0x33')]);_0x1bbb36[_0xd80e('0x36')]=_[_0xd80e('0x35')](_0x2e257e[_0xd80e('0x31')],qs['fields'](_0x91c6ed['query']['fields']));_0x1bbb36[_0xd80e('0x36')]=_0x1bbb36['attributes'][_0xd80e('0x38')]?_0x1bbb36[_0xd80e('0x36')]:_0x2e257e[_0xd80e('0x31')];if(_0x91c6ed[_0xd80e('0x33')][_0xd80e('0x47')]){_0x1bbb36['include']=[{'all':!![]}];}_0x1bbb36=_[_0xd80e('0x3e')]({},_0x1bbb36,_0x91c6ed[_0xd80e('0x40')]);return db[_0xd80e('0x41')]['find'](_0x1bbb36)[_0xd80e('0x24')](handleEntityNotFound(_0x2da5f5,null))[_0xd80e('0x24')](respondWithResult(_0x2da5f5,null))[_0xd80e('0x44')](handleError(_0x2da5f5,null));};exports['create']=function(_0x8d5cb8,_0x29aaa0){return db[_0xd80e('0x41')][_0xd80e('0x48')](_0x8d5cb8[_0xd80e('0x49')],{})[_0xd80e('0x24')](function(_0x56ba81){var _0x5aad1b=_0x8d5cb8[_0xd80e('0x4a')][_0xd80e('0x25')]({'plain':!![]});if(!_0x5aad1b)throw new Error(_0xd80e('0x4b'));if(_0x5aad1b['role']==='user'){var _0x1762a8=_0x56ba81[_0xd80e('0x25')]({'plain':!![]});var _0x183f78=_0xd80e('0x26');return db[_0xd80e('0x4c')]['find']({'where':{'name':_0x183f78,'userProfileId':_0x5aad1b[_0xd80e('0x4d')]},'raw':!![]})['then'](function(_0x46c781){if(_0x46c781&&_0x46c781[_0xd80e('0x4e')]===0x0){return db['UserProfileResource'][_0xd80e('0x48')]({'name':_0x1762a8[_0xd80e('0x2b')],'resourceId':_0x1762a8['id'],'type':_0x46c781[_0xd80e('0x2b')],'sectionId':_0x46c781['id']},{})[_0xd80e('0x24')](function(){return _0x56ba81;});}else{return _0x56ba81;}})[_0xd80e('0x44')](function(_0x470319){logger[_0xd80e('0x4f')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x470319);throw _0x470319;});}return _0x56ba81;})[_0xd80e('0x24')](respondWithResult(_0x29aaa0,0xc9))[_0xd80e('0x44')](handleError(_0x29aaa0,null));};exports[_0xd80e('0x22')]=function(_0x4a66ca,_0x52ab04){if(_0x4a66ca[_0xd80e('0x49')]['id']){delete _0x4a66ca[_0xd80e('0x49')]['id'];}return db[_0xd80e('0x41')][_0xd80e('0x50')]({'where':{'id':_0x4a66ca[_0xd80e('0x46')]['id']}})[_0xd80e('0x24')](handleEntityNotFound(_0x52ab04,null))[_0xd80e('0x24')](saveUpdates(_0x4a66ca[_0xd80e('0x49')],null))['then'](respondWithResult(_0x52ab04,null))[_0xd80e('0x44')](handleError(_0x52ab04,null));};exports['destroy']=function(_0x3b5f47,_0x3c184c){return db[_0xd80e('0x41')][_0xd80e('0x50')]({'where':{'id':_0x3b5f47[_0xd80e('0x46')]['id']}})[_0xd80e('0x24')](handleEntityNotFound(_0x3c184c,null))['then'](removeEntity(_0x3c184c,null))[_0xd80e('0x44')](handleError(_0x3c184c,null));};