5211cdb9ce2b760a1524932fd1e30b81acac7716
[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 _0xaa57=['sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','then','Metrics','UserProfileResource','destroy','error','stack','name','send','index','map','AnalyticMetric','rawAttributes','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','catch','show','params','includeAll','options','find','create','body','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x3a8e2f,_0x57588b){var _0x50f4af=function(_0x46f4b2){while(--_0x46f4b2){_0x3a8e2f['push'](_0x3a8e2f['shift']());}};_0x50f4af(++_0x57588b);}(_0xaa57,0x17c));var _0x7aa5=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xaa57[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x7aa5('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7aa5('0x1'));var jsonpatch=require(_0x7aa5('0x2'));var rp=require(_0x7aa5('0x3'));var moment=require(_0x7aa5('0x4'));var BPromise=require(_0x7aa5('0x5'));var Mustache=require(_0x7aa5('0x6'));var util=require(_0x7aa5('0x7'));var path=require(_0x7aa5('0x8'));var sox=require(_0x7aa5('0x9'));var csv=require(_0x7aa5('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7aa5('0xb'));var _=require(_0x7aa5('0xc'));var squel=require('squel');var crypto=require(_0x7aa5('0xd'));var jsforce=require(_0x7aa5('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x7aa5('0xa'));var querystring=require('querystring');var Papa=require(_0x7aa5('0xf'));var Redis=require(_0x7aa5('0x10'));var authService=require(_0x7aa5('0x11'));var qs=require(_0x7aa5('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x7aa5('0x13'))(_0x7aa5('0x14'));var utils=require(_0x7aa5('0x15'));var config=require(_0x7aa5('0x16'));var licenseUtil=require(_0x7aa5('0x17'));var db=require(_0x7aa5('0x18'))['db'];function respondWithStatusCode(_0x6925cf,_0x25052f){_0x25052f=_0x25052f||0xcc;return function(_0x3c70b9){if(_0x3c70b9){return _0x6925cf[_0x7aa5('0x19')](_0x25052f);}return _0x6925cf[_0x7aa5('0x1a')](_0x25052f)[_0x7aa5('0x1b')]();};}function respondWithResult(_0x23f143,_0x38ee87){_0x38ee87=_0x38ee87||0xc8;return function(_0x28dafa){if(_0x28dafa){return _0x23f143[_0x7aa5('0x1a')](_0x38ee87)[_0x7aa5('0x1c')](_0x28dafa);}};}function respondWithFilteredResult(_0x4bc10d,_0x5d2772){return function(_0x13c394){if(_0x13c394){var _0x35f5fb=_0x13c394[_0x7aa5('0x1d')],_0x3aacb7=_0x5d2772[_0x7aa5('0x1e')],_0x275bff=_0x5d2772[_0x7aa5('0x1e')]+_0x5d2772[_0x7aa5('0x1f')],_0x16991e;if(_0x275bff>=_0x35f5fb){_0x275bff=_0x35f5fb;_0x16991e=0xc8;}else{_0x16991e=0xce;}_0x4bc10d[_0x7aa5('0x1a')](_0x16991e);return _0x4bc10d['set'](_0x7aa5('0x20'),_0x3aacb7+'-'+_0x275bff+'/'+_0x35f5fb)[_0x7aa5('0x1c')](_0x13c394);}return null;};}function patchUpdates(_0x5b775a){return function(_0x255e86){try{jsonpatch[_0x7aa5('0x21')](_0x255e86,_0x5b775a,!![]);}catch(_0x346d17){return BPromise['reject'](_0x346d17);}return _0x255e86[_0x7aa5('0x22')]();};}function saveUpdates(_0x50d5f1,_0x37d154){return function(_0x4cfc38){if(_0x4cfc38){return _0x4cfc38[_0x7aa5('0x23')](_0x50d5f1)[_0x7aa5('0x24')](function(_0x46567d){return _0x46567d;});}return null;};}function removeEntity(_0x3671f7,_0x45265e){return function(_0x59a51f){if(_0x59a51f){return _0x59a51f['destroy']()[_0x7aa5('0x24')](function(){var _0x2e6b10=_0x59a51f['get']({'plain':!![]});var _0x86d212=_0x7aa5('0x25');return db[_0x7aa5('0x26')][_0x7aa5('0x27')]({'where':{'type':_0x86d212,'resourceId':_0x2e6b10['id']}})[_0x7aa5('0x24')](function(){return _0x59a51f;});})[_0x7aa5('0x24')](function(){_0x3671f7['status'](0xcc)[_0x7aa5('0x1b')]();});}};}function handleEntityNotFound(_0x42acac,_0x26fc5c){return function(_0xd999dd){if(!_0xd999dd){_0x42acac[_0x7aa5('0x19')](0x194);}return _0xd999dd;};}function handleError(_0x5c08e0,_0x567e63){_0x567e63=_0x567e63||0x1f4;return function(_0x3669cc){logger[_0x7aa5('0x28')](_0x3669cc[_0x7aa5('0x29')]);if(_0x3669cc[_0x7aa5('0x2a')]){delete _0x3669cc['name'];}_0x5c08e0[_0x7aa5('0x1a')](_0x567e63)[_0x7aa5('0x2b')](_0x3669cc);};}exports[_0x7aa5('0x2c')]=function(_0x289252,_0x1690aa){var _0x5a7b31={},_0x5daa1a={},_0x3fae54={'count':0x0,'rows':[]};var _0x2e9d52=_[_0x7aa5('0x2d')](db[_0x7aa5('0x2e')][_0x7aa5('0x2f')],function(_0x22b591){return{'name':_0x22b591['fieldName'],'type':_0x22b591[_0x7aa5('0x30')]['key']};});_0x5daa1a[_0x7aa5('0x31')]=_[_0x7aa5('0x2d')](_0x2e9d52,'name');_0x5daa1a[_0x7aa5('0x32')]=_[_0x7aa5('0x33')](_0x289252[_0x7aa5('0x32')]);_0x5daa1a[_0x7aa5('0x34')]=_['intersection'](_0x5daa1a[_0x7aa5('0x31')],_0x5daa1a[_0x7aa5('0x32')]);_0x5a7b31[_0x7aa5('0x35')]=_[_0x7aa5('0x36')](_0x5daa1a[_0x7aa5('0x31')],qs[_0x7aa5('0x37')](_0x289252['query']['fields']));_0x5a7b31['attributes']=_0x5a7b31[_0x7aa5('0x35')][_0x7aa5('0x38')]?_0x5a7b31['attributes']:_0x5daa1a[_0x7aa5('0x31')];if(!_0x289252[_0x7aa5('0x32')][_0x7aa5('0x39')](_0x7aa5('0x3a'))){_0x5a7b31[_0x7aa5('0x1f')]=qs[_0x7aa5('0x1f')](_0x289252[_0x7aa5('0x32')][_0x7aa5('0x1f')]);_0x5a7b31['offset']=qs['offset'](_0x289252[_0x7aa5('0x32')][_0x7aa5('0x1e')]);}_0x5a7b31[_0x7aa5('0x3b')]=qs[_0x7aa5('0x3c')](_0x289252[_0x7aa5('0x32')][_0x7aa5('0x3c')]);_0x5a7b31[_0x7aa5('0x3d')]=qs['filters'](_[_0x7aa5('0x3e')](_0x289252[_0x7aa5('0x32')],_0x5daa1a[_0x7aa5('0x34')]),_0x2e9d52);if(_0x289252[_0x7aa5('0x32')][_0x7aa5('0x3f')]){_0x5a7b31[_0x7aa5('0x3d')]=_[_0x7aa5('0x40')](_0x5a7b31[_0x7aa5('0x3d')],{'$or':_['map'](_0x2e9d52,function(_0x232944){if(_0x232944[_0x7aa5('0x30')]!==_0x7aa5('0x41')){var _0x4161ee={};_0x4161ee[_0x232944[_0x7aa5('0x2a')]]={'$like':'%'+_0x289252[_0x7aa5('0x32')][_0x7aa5('0x3f')]+'%'};return _0x4161ee;}})});}_0x5a7b31=_['merge']({},_0x5a7b31,_0x289252['options']);var _0xd4ce7e={'where':_0x5a7b31[_0x7aa5('0x3d')]};return db[_0x7aa5('0x2e')][_0x7aa5('0x1d')](_0xd4ce7e)[_0x7aa5('0x24')](function(_0x201b12){_0x3fae54[_0x7aa5('0x1d')]=_0x201b12;if(_0x289252[_0x7aa5('0x32')]['includeAll']){_0x5a7b31[_0x7aa5('0x42')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x7aa5('0x43')](_0x5a7b31);})[_0x7aa5('0x24')](function(_0x1aa1cb){_0x3fae54['rows']=_0x1aa1cb;return _0x3fae54;})['then'](respondWithFilteredResult(_0x1690aa,_0x5a7b31))[_0x7aa5('0x44')](handleError(_0x1690aa,null));};exports[_0x7aa5('0x45')]=function(_0x25bda1,_0x472a98){var _0x415367={'raw':!![],'where':{'id':_0x25bda1[_0x7aa5('0x46')]['id']}},_0x1abea0={};_0x1abea0[_0x7aa5('0x31')]=_[_0x7aa5('0x33')](db[_0x7aa5('0x2e')][_0x7aa5('0x2f')]);_0x1abea0[_0x7aa5('0x32')]=_[_0x7aa5('0x33')](_0x25bda1[_0x7aa5('0x32')]);_0x1abea0[_0x7aa5('0x34')]=_[_0x7aa5('0x36')](_0x1abea0[_0x7aa5('0x31')],_0x1abea0[_0x7aa5('0x32')]);_0x415367[_0x7aa5('0x35')]=_[_0x7aa5('0x36')](_0x1abea0[_0x7aa5('0x31')],qs[_0x7aa5('0x37')](_0x25bda1['query'][_0x7aa5('0x37')]));_0x415367[_0x7aa5('0x35')]=_0x415367[_0x7aa5('0x35')][_0x7aa5('0x38')]?_0x415367[_0x7aa5('0x35')]:_0x1abea0['model'];if(_0x25bda1['query'][_0x7aa5('0x47')]){_0x415367[_0x7aa5('0x42')]=[{'all':!![]}];}_0x415367=_['merge']({},_0x415367,_0x25bda1[_0x7aa5('0x48')]);return db[_0x7aa5('0x2e')][_0x7aa5('0x49')](_0x415367)[_0x7aa5('0x24')](handleEntityNotFound(_0x472a98,null))[_0x7aa5('0x24')](respondWithResult(_0x472a98,null))[_0x7aa5('0x44')](handleError(_0x472a98,null));};exports[_0x7aa5('0x4a')]=function(_0x4fb6bd,_0xf371df){return db[_0x7aa5('0x2e')][_0x7aa5('0x4a')](_0x4fb6bd[_0x7aa5('0x4b')],{})[_0x7aa5('0x24')](function(_0x63cc18){var _0x347377=_0x4fb6bd[_0x7aa5('0x4c')][_0x7aa5('0x4d')]({'plain':!![]});if(!_0x347377)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x347377['role']===_0x7aa5('0x4c')){var _0x178694=_0x63cc18[_0x7aa5('0x4d')]({'plain':!![]});var _0x36d385=_0x7aa5('0x25');return db[_0x7aa5('0x4e')][_0x7aa5('0x49')]({'where':{'name':_0x36d385,'userProfileId':_0x347377['userProfileId']},'raw':!![]})[_0x7aa5('0x24')](function(_0x5ba380){if(_0x5ba380&&_0x5ba380[_0x7aa5('0x4f')]===0x0){return db[_0x7aa5('0x26')][_0x7aa5('0x4a')]({'name':_0x178694[_0x7aa5('0x2a')],'resourceId':_0x178694['id'],'type':_0x5ba380[_0x7aa5('0x2a')],'sectionId':_0x5ba380['id']},{})[_0x7aa5('0x24')](function(){return _0x63cc18;});}else{return _0x63cc18;}})['catch'](function(_0xf0176e){logger[_0x7aa5('0x28')](_0x7aa5('0x50'),_0xf0176e);throw _0xf0176e;});}return _0x63cc18;})[_0x7aa5('0x24')](respondWithResult(_0xf371df,0xc9))['catch'](handleError(_0xf371df,null));};exports[_0x7aa5('0x23')]=function(_0x5911e5,_0x15621a){if(_0x5911e5[_0x7aa5('0x4b')]['id']){delete _0x5911e5['body']['id'];}return db[_0x7aa5('0x2e')][_0x7aa5('0x49')]({'where':{'id':_0x5911e5[_0x7aa5('0x46')]['id']}})['then'](handleEntityNotFound(_0x15621a,null))[_0x7aa5('0x24')](saveUpdates(_0x5911e5['body'],null))['then'](respondWithResult(_0x15621a,null))['catch'](handleError(_0x15621a,null));};exports['destroy']=function(_0x49b7bd,_0x1097b4){return db[_0x7aa5('0x2e')][_0x7aa5('0x49')]({'where':{'id':_0x49b7bd[_0x7aa5('0x46')]['id']}})[_0x7aa5('0x24')](handleEntityNotFound(_0x1097b4,null))[_0x7aa5('0x24')](removeEntity(_0x1097b4,null))[_0x7aa5('0x44')](handleError(_0x1097b4,null));};