ffe1c4a3f48ca92c2c7ca82b85b1f446fb318bc1
[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 _0x4f9a=['intersection','attributes','fields','length','model','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','rows','catch','params','rawAttributes','filtears','include','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','get','Metrics','UserProfileResource','stack','name','index','map','AnalyticMetric','type','key','query','keys','filters'];(function(_0xaa8a12,_0x4b02fa){var _0xe8546e=function(_0x4b90bd){while(--_0x4b90bd){_0xaa8a12['push'](_0xaa8a12['shift']());}};_0xe8546e(++_0x4b02fa);}(_0x4f9a,0x11f));var _0xa4f9=function(_0x390ee9,_0x537373){_0x390ee9=_0x390ee9-0x0;var _0x118e89=_0x4f9a[_0x390ee9];return _0x118e89;};'use strict';var pdf=require(_0xa4f9('0x0'));var emlformat=require(_0xa4f9('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa4f9('0x2'));var jsonpatch=require(_0xa4f9('0x3'));var rp=require('request-promise');var moment=require(_0xa4f9('0x4'));var BPromise=require(_0xa4f9('0x5'));var Mustache=require(_0xa4f9('0x6'));var util=require(_0xa4f9('0x7'));var path=require(_0xa4f9('0x8'));var sox=require(_0xa4f9('0x9'));var csv=require(_0xa4f9('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa4f9('0xb'));var squel=require(_0xa4f9('0xc'));var crypto=require(_0xa4f9('0xd'));var jsforce=require(_0xa4f9('0xe'));var deskjs=require(_0xa4f9('0xf'));var toCsv=require(_0xa4f9('0xa'));var querystring=require(_0xa4f9('0x10'));var Papa=require(_0xa4f9('0x11'));var Redis=require(_0xa4f9('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xa4f9('0x13'));var hardwareService=require(_0xa4f9('0x14'));var logger=require(_0xa4f9('0x15'))(_0xa4f9('0x16'));var utils=require(_0xa4f9('0x17'));var config=require(_0xa4f9('0x18'));var licenseUtil=require(_0xa4f9('0x19'));var db=require(_0xa4f9('0x1a'))['db'];function respondWithStatusCode(_0x3a8d58,_0x21cdd0){_0x21cdd0=_0x21cdd0||0xcc;return function(_0x2f9557){if(_0x2f9557){return _0x3a8d58['sendStatus'](_0x21cdd0);}return _0x3a8d58[_0xa4f9('0x1b')](_0x21cdd0)[_0xa4f9('0x1c')]();};}function respondWithResult(_0x304f4e,_0x52c44b){_0x52c44b=_0x52c44b||0xc8;return function(_0x1a6401){if(_0x1a6401){return _0x304f4e[_0xa4f9('0x1b')](_0x52c44b)[_0xa4f9('0x1d')](_0x1a6401);}};}function respondWithFilteredResult(_0x696e80,_0x254560){return function(_0x40cedd){if(_0x40cedd){var _0x531558=_0x40cedd[_0xa4f9('0x1e')],_0x168c84=_0x254560[_0xa4f9('0x1f')],_0x33c5b6=_0x254560[_0xa4f9('0x1f')]+_0x254560[_0xa4f9('0x20')],_0x13167c;if(_0x33c5b6>=_0x531558){_0x33c5b6=_0x531558;_0x13167c=0xc8;}else{_0x13167c=0xce;}_0x696e80['status'](_0x13167c);return _0x696e80[_0xa4f9('0x21')](_0xa4f9('0x22'),_0x168c84+'-'+_0x33c5b6+'/'+_0x531558)[_0xa4f9('0x1d')](_0x40cedd);}return null;};}function patchUpdates(_0x115532){return function(_0xf4f3fd){try{jsonpatch[_0xa4f9('0x23')](_0xf4f3fd,_0x115532,!![]);}catch(_0x17f515){return BPromise[_0xa4f9('0x24')](_0x17f515);}return _0xf4f3fd[_0xa4f9('0x25')]();};}function saveUpdates(_0xf9a1bf,_0x5cd96c){return function(_0x1e9ff1){if(_0x1e9ff1){return _0x1e9ff1['update'](_0xf9a1bf)[_0xa4f9('0x26')](function(_0x5816cf){return _0x5816cf;});}return null;};}function removeEntity(_0x19c2c4,_0x173145){return function(_0x269964){if(_0x269964){return _0x269964[_0xa4f9('0x27')]()[_0xa4f9('0x26')](function(){var _0x5a44a6=_0x269964[_0xa4f9('0x28')]({'plain':!![]});var _0x918380=_0xa4f9('0x29');return db[_0xa4f9('0x2a')][_0xa4f9('0x27')]({'where':{'type':_0x918380,'resourceId':_0x5a44a6['id']}})[_0xa4f9('0x26')](function(){return _0x269964;});})['then'](function(){_0x19c2c4[_0xa4f9('0x1b')](0xcc)[_0xa4f9('0x1c')]();});}};}function handleEntityNotFound(_0x3a5282,_0x591f60){return function(_0x44b5fe){if(!_0x44b5fe){_0x3a5282['sendStatus'](0x194);}return _0x44b5fe;};}function handleError(_0x2b974d,_0x319e1f){_0x319e1f=_0x319e1f||0x1f4;return function(_0x7cfb86){logger['error'](_0x7cfb86[_0xa4f9('0x2b')]);if(_0x7cfb86[_0xa4f9('0x2c')]){delete _0x7cfb86['name'];}_0x2b974d[_0xa4f9('0x1b')](_0x319e1f)['send'](_0x7cfb86);};}exports[_0xa4f9('0x2d')]=function(_0x2f9e51,_0xf6d555){var _0x101256={},_0x18723a={},_0x35fdd3={'count':0x0,'rows':[]};var _0x43dca5=_[_0xa4f9('0x2e')](db[_0xa4f9('0x2f')]['rawAttributes'],function(_0x6cf742){return{'name':_0x6cf742['fieldName'],'type':_0x6cf742[_0xa4f9('0x30')][_0xa4f9('0x31')]};});_0x18723a['model']=_[_0xa4f9('0x2e')](_0x43dca5,_0xa4f9('0x2c'));_0x18723a[_0xa4f9('0x32')]=_[_0xa4f9('0x33')](_0x2f9e51[_0xa4f9('0x32')]);_0x18723a[_0xa4f9('0x34')]=_[_0xa4f9('0x35')](_0x18723a['model'],_0x18723a[_0xa4f9('0x32')]);_0x101256[_0xa4f9('0x36')]=_[_0xa4f9('0x35')](_0x18723a['model'],qs[_0xa4f9('0x37')](_0x2f9e51[_0xa4f9('0x32')]['fields']));_0x101256['attributes']=_0x101256['attributes'][_0xa4f9('0x38')]?_0x101256['attributes']:_0x18723a[_0xa4f9('0x39')];if(!_0x2f9e51[_0xa4f9('0x32')][_0xa4f9('0x3a')]('nolimit')){_0x101256[_0xa4f9('0x20')]=qs['limit'](_0x2f9e51[_0xa4f9('0x32')]['limit']);_0x101256['offset']=qs['offset'](_0x2f9e51['query'][_0xa4f9('0x1f')]);}_0x101256[_0xa4f9('0x3b')]=qs[_0xa4f9('0x3c')](_0x2f9e51['query'][_0xa4f9('0x3c')]);_0x101256[_0xa4f9('0x3d')]=qs[_0xa4f9('0x34')](_[_0xa4f9('0x3e')](_0x2f9e51['query'],_0x18723a[_0xa4f9('0x34')]),_0x43dca5);if(_0x2f9e51[_0xa4f9('0x32')][_0xa4f9('0x3f')]){_0x101256[_0xa4f9('0x3d')]=_['merge'](_0x101256[_0xa4f9('0x3d')],{'$or':_['map'](_0x43dca5,function(_0x4715ae){if(_0x4715ae[_0xa4f9('0x30')]!==_0xa4f9('0x40')){var _0xd12924={};_0xd12924[_0x4715ae[_0xa4f9('0x2c')]]={'$like':'%'+_0x2f9e51[_0xa4f9('0x32')][_0xa4f9('0x3f')]+'%'};return _0xd12924;}})});}_0x101256=_[_0xa4f9('0x41')]({},_0x101256,_0x2f9e51['options']);var _0x366514={'where':_0x101256['where']};return db['AnalyticMetric'][_0xa4f9('0x1e')](_0x366514)['then'](function(_0x39980a){_0x35fdd3['count']=_0x39980a;if(_0x2f9e51[_0xa4f9('0x32')][_0xa4f9('0x42')]){_0x101256['include']=[{'all':!![]}];}return db[_0xa4f9('0x2f')]['findAll'](_0x101256);})[_0xa4f9('0x26')](function(_0x4b1476){_0x35fdd3[_0xa4f9('0x43')]=_0x4b1476;return _0x35fdd3;})[_0xa4f9('0x26')](respondWithFilteredResult(_0xf6d555,_0x101256))[_0xa4f9('0x44')](handleError(_0xf6d555,null));};exports['show']=function(_0xa74520,_0x44a16e){var _0x458239={'raw':!![],'where':{'id':_0xa74520[_0xa4f9('0x45')]['id']}},_0x119986={};_0x119986['model']=_['keys'](db[_0xa4f9('0x2f')][_0xa4f9('0x46')]);_0x119986[_0xa4f9('0x32')]=_[_0xa4f9('0x33')](_0xa74520[_0xa4f9('0x32')]);_0x119986[_0xa4f9('0x47')]=_['intersection'](_0x119986['model'],_0x119986['query']);_0x458239['attributes']=_[_0xa4f9('0x35')](_0x119986[_0xa4f9('0x39')],qs[_0xa4f9('0x37')](_0xa74520['query'][_0xa4f9('0x37')]));_0x458239[_0xa4f9('0x36')]=_0x458239[_0xa4f9('0x36')][_0xa4f9('0x38')]?_0x458239[_0xa4f9('0x36')]:_0x119986[_0xa4f9('0x39')];if(_0xa74520[_0xa4f9('0x32')][_0xa4f9('0x42')]){_0x458239[_0xa4f9('0x48')]=[{'all':!![]}];}_0x458239=_['merge']({},_0x458239,_0xa74520[_0xa4f9('0x49')]);return db[_0xa4f9('0x2f')][_0xa4f9('0x4a')](_0x458239)[_0xa4f9('0x26')](handleEntityNotFound(_0x44a16e,null))['then'](respondWithResult(_0x44a16e,null))[_0xa4f9('0x44')](handleError(_0x44a16e,null));};exports[_0xa4f9('0x4b')]=function(_0x4775cb,_0x5c18a0){return db['AnalyticMetric'][_0xa4f9('0x4b')](_0x4775cb[_0xa4f9('0x4c')],{})[_0xa4f9('0x26')](function(_0x11e36b){var _0x5d7c67=_0x4775cb[_0xa4f9('0x4d')][_0xa4f9('0x28')]({'plain':!![]});if(!_0x5d7c67)throw new Error(_0xa4f9('0x4e'));if(_0x5d7c67[_0xa4f9('0x4f')]===_0xa4f9('0x4d')){var _0x91a5a1=_0x11e36b[_0xa4f9('0x28')]({'plain':!![]});var _0x243875='Metrics';return db[_0xa4f9('0x50')][_0xa4f9('0x4a')]({'where':{'name':_0x243875,'userProfileId':_0x5d7c67[_0xa4f9('0x51')]},'raw':!![]})[_0xa4f9('0x26')](function(_0x39109c){if(_0x39109c&&_0x39109c[_0xa4f9('0x52')]===0x0){return db[_0xa4f9('0x2a')][_0xa4f9('0x4b')]({'name':_0x91a5a1['name'],'resourceId':_0x91a5a1['id'],'type':_0x39109c[_0xa4f9('0x2c')],'sectionId':_0x39109c['id']},{})[_0xa4f9('0x26')](function(){return _0x11e36b;});}else{return _0x11e36b;}})[_0xa4f9('0x44')](function(_0xf1d7c0){logger[_0xa4f9('0x53')](_0xa4f9('0x54'),_0xf1d7c0);throw _0xf1d7c0;});}return _0x11e36b;})[_0xa4f9('0x26')](respondWithResult(_0x5c18a0,0xc9))[_0xa4f9('0x44')](handleError(_0x5c18a0,null));};exports['update']=function(_0x48188c,_0x477798){if(_0x48188c[_0xa4f9('0x4c')]['id']){delete _0x48188c[_0xa4f9('0x4c')]['id'];}return db[_0xa4f9('0x2f')]['find']({'where':{'id':_0x48188c[_0xa4f9('0x45')]['id']}})[_0xa4f9('0x26')](handleEntityNotFound(_0x477798,null))[_0xa4f9('0x26')](saveUpdates(_0x48188c[_0xa4f9('0x4c')],null))[_0xa4f9('0x26')](respondWithResult(_0x477798,null))[_0xa4f9('0x44')](handleError(_0x477798,null));};exports[_0xa4f9('0x27')]=function(_0x5a25ba,_0x41c942){return db[_0xa4f9('0x2f')][_0xa4f9('0x4a')]({'where':{'id':_0x5a25ba[_0xa4f9('0x45')]['id']}})[_0xa4f9('0x26')](handleEntityNotFound(_0x41c942,null))[_0xa4f9('0x26')](removeEntity(_0x41c942,null))[_0xa4f9('0x44')](handleError(_0x41c942,null));};