e450cd203f5ef12cf86259481155cbf8ad43e152
[motion2.git] / server / api / analyticCustomReport / analyticCustomReport.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 _0x5306=['squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','save','update','then','destroy','CustomReports','UserProfileResource','error','stack','send','map','rawAttributes','fieldName','type','key','model','name','query','filters','intersection','attributes','fields','length','nolimit','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','AnalyticCustomReport','findAll','catch','show','params','keys','find','create','body','get','role','user','Reports','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','left_join','right_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','keyBy','select','table','MetricId','function','replace','format','groupBy','orderBy','order','alias','joins','parse','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','debug','Limited\x20Query:','sequelize','toString','SELECT','join','cross_join','SUM(%s)','MIN(%s)','ROUND(%s)','value','ValidationErrorItem','AnalyticMetric','from','metric','DESC','clone','web','%s-%s.%s','randomstring','output','csv','AnalyticExtractedReport','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','COUNT(*)','QueryTypes','run','runReport','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash'];(function(_0x5bc025,_0x1343a0){var _0x3f1849=function(_0x4eeae5){while(--_0x4eeae5){_0x5bc025['push'](_0x5bc025['shift']());}};_0x3f1849(++_0x1343a0);}(_0x5306,0x13d));var _0x6530=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5306[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x6530('0x0'));var rimraf=require(_0x6530('0x1'));var zipdir=require(_0x6530('0x2'));var jsonpatch=require(_0x6530('0x3'));var rp=require('request-promise');var moment=require(_0x6530('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6530('0x5'));var util=require('util');var path=require(_0x6530('0x6'));var sox=require('sox');var csv=require(_0x6530('0x7'));var ejs=require(_0x6530('0x8'));var fs=require('fs');var fs_extra=require(_0x6530('0x9'));var _=require(_0x6530('0xa'));var squel=require(_0x6530('0xb'));var crypto=require(_0x6530('0xc'));var jsforce=require(_0x6530('0xd'));var deskjs=require(_0x6530('0xe'));var toCsv=require(_0x6530('0x7'));var querystring=require('querystring');var Papa=require(_0x6530('0xf'));var Redis=require(_0x6530('0x10'));var authService=require(_0x6530('0x11'));var qs=require(_0x6530('0x12'));var as=require(_0x6530('0x13'));var hardwareService=require(_0x6530('0x14'));var logger=require('../../config/logger')(_0x6530('0x15'));var utils=require(_0x6530('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6530('0x17'));var db=require(_0x6530('0x18'))['db'];var dbH=require('../../mysqldb')[_0x6530('0x19')];function respondWithStatusCode(_0x5d1261,_0x3f1007){_0x3f1007=_0x3f1007||0xcc;return function(_0x332e9b){if(_0x332e9b){return _0x5d1261[_0x6530('0x1a')](_0x3f1007);}return _0x5d1261[_0x6530('0x1b')](_0x3f1007)[_0x6530('0x1c')]();};}function respondWithResult(_0x230082,_0x140299){_0x140299=_0x140299||0xc8;return function(_0x4a9a92){if(_0x4a9a92){return _0x230082['status'](_0x140299)[_0x6530('0x1d')](_0x4a9a92);}};}function respondWithFilteredResult(_0x6183a0,_0x1175d0){return function(_0x50a446){if(_0x50a446){var _0xc19b06=typeof _0x1175d0[_0x6530('0x1e')]===_0x6530('0x1f')&&typeof _0x1175d0[_0x6530('0x20')]==='undefined';var _0x1b2f7c=_0x50a446[_0x6530('0x21')];var _0x4fec49=_0xc19b06?0x0:_0x1175d0[_0x6530('0x1e')];var _0x38b4f6=_0xc19b06?_0x50a446[_0x6530('0x21')]:_0x1175d0['offset']+_0x1175d0[_0x6530('0x20')];var _0x53aa3a;if(_0x38b4f6>=_0x1b2f7c){_0x38b4f6=_0x1b2f7c;_0x53aa3a=0xc8;}else{_0x53aa3a=0xce;}_0x6183a0[_0x6530('0x1b')](_0x53aa3a);return _0x6183a0['set'](_0x6530('0x22'),_0x4fec49+'-'+_0x38b4f6+'/'+_0x1b2f7c)[_0x6530('0x1d')](_0x50a446);}return null;};}function patchUpdates(_0x3a8492){return function(_0x3f50a9){try{jsonpatch['apply'](_0x3f50a9,_0x3a8492,!![]);}catch(_0x27fe08){return BPromise[_0x6530('0x23')](_0x27fe08);}return _0x3f50a9[_0x6530('0x24')]();};}function saveUpdates(_0x284d73,_0x472990){return function(_0x4397a0){if(_0x4397a0){return _0x4397a0[_0x6530('0x25')](_0x284d73)[_0x6530('0x26')](function(_0x12da4d){return _0x12da4d;});}return null;};}function removeEntity(_0x48543a,_0x56dcef){return function(_0x529883){if(_0x529883){return _0x529883[_0x6530('0x27')]()[_0x6530('0x26')](function(){var _0x6779f5=_0x529883['get']({'plain':!![]});var _0x57d01a=_0x6530('0x28');return db[_0x6530('0x29')][_0x6530('0x27')]({'where':{'type':_0x57d01a,'resourceId':_0x6779f5['id']}})[_0x6530('0x26')](function(){return _0x529883;});})[_0x6530('0x26')](function(){_0x48543a['status'](0xcc)[_0x6530('0x1c')]();});}};}function handleEntityNotFound(_0x49319a,_0x3b729d){return function(_0x2ebbbf){if(!_0x2ebbbf){_0x49319a['sendStatus'](0x194);}return _0x2ebbbf;};}function handleError(_0xfc4632,_0x28991c){_0x28991c=_0x28991c||0x1f4;return function(_0x4f470e){logger[_0x6530('0x2a')](_0x4f470e[_0x6530('0x2b')]);if(_0x4f470e['name']){delete _0x4f470e['name'];}_0xfc4632['status'](_0x28991c)[_0x6530('0x2c')](_0x4f470e);};}exports['index']=function(_0x3aaa03,_0x3a4bb5){var _0x5f66db={},_0x3f21a0={},_0x13d43a={'count':0x0,'rows':[]};var _0x26dc1a=_[_0x6530('0x2d')](db['AnalyticCustomReport'][_0x6530('0x2e')],function(_0x3a0e71){return{'name':_0x3a0e71[_0x6530('0x2f')],'type':_0x3a0e71[_0x6530('0x30')][_0x6530('0x31')]};});_0x3f21a0[_0x6530('0x32')]=_[_0x6530('0x2d')](_0x26dc1a,_0x6530('0x33'));_0x3f21a0[_0x6530('0x34')]=_['keys'](_0x3aaa03['query']);_0x3f21a0[_0x6530('0x35')]=_[_0x6530('0x36')](_0x3f21a0[_0x6530('0x32')],_0x3f21a0['query']);_0x5f66db[_0x6530('0x37')]=_['intersection'](_0x3f21a0[_0x6530('0x32')],qs[_0x6530('0x38')](_0x3aaa03[_0x6530('0x34')][_0x6530('0x38')]));_0x5f66db[_0x6530('0x37')]=_0x5f66db[_0x6530('0x37')][_0x6530('0x39')]?_0x5f66db['attributes']:_0x3f21a0[_0x6530('0x32')];if(!_0x3aaa03[_0x6530('0x34')]['hasOwnProperty'](_0x6530('0x3a'))){_0x5f66db['limit']=qs['limit'](_0x3aaa03[_0x6530('0x34')][_0x6530('0x20')]);_0x5f66db[_0x6530('0x1e')]=qs['offset'](_0x3aaa03['query'][_0x6530('0x1e')]);}_0x5f66db['order']=qs['sort'](_0x3aaa03[_0x6530('0x34')][_0x6530('0x3b')]);_0x5f66db['where']=qs[_0x6530('0x35')](_[_0x6530('0x3c')](_0x3aaa03[_0x6530('0x34')],_0x3f21a0['filters']),_0x26dc1a);if(_0x3aaa03[_0x6530('0x34')][_0x6530('0x3d')]){_0x5f66db[_0x6530('0x3e')]=_[_0x6530('0x3f')](_0x5f66db[_0x6530('0x3e')],{'$or':_[_0x6530('0x2d')](_0x26dc1a,function(_0x5b8ecb){if(_0x5b8ecb[_0x6530('0x30')]!==_0x6530('0x40')){var _0x45c95d={};_0x45c95d[_0x5b8ecb[_0x6530('0x33')]]={'$like':'%'+_0x3aaa03[_0x6530('0x34')][_0x6530('0x3d')]+'%'};return _0x45c95d;}})});}_0x5f66db=_[_0x6530('0x3f')]({},_0x5f66db,_0x3aaa03[_0x6530('0x41')]);var _0x125d3c={'where':_0x5f66db[_0x6530('0x3e')]};return db['AnalyticCustomReport']['count'](_0x125d3c)['then'](function(_0x50e109){_0x13d43a[_0x6530('0x21')]=_0x50e109;if(_0x3aaa03[_0x6530('0x34')][_0x6530('0x42')]){_0x5f66db[_0x6530('0x43')]=[{'all':!![]}];}return db[_0x6530('0x44')][_0x6530('0x45')](_0x5f66db);})['then'](function(_0xa3b3c4){_0x13d43a['rows']=_0xa3b3c4;return _0x13d43a;})[_0x6530('0x26')](respondWithFilteredResult(_0x3a4bb5,_0x5f66db))[_0x6530('0x46')](handleError(_0x3a4bb5,null));};exports[_0x6530('0x47')]=function(_0xc8a5a6,_0x436086){var _0x33d625={'raw':![],'where':{'id':_0xc8a5a6[_0x6530('0x48')]['id']}},_0xb2393b={};_0xb2393b[_0x6530('0x32')]=_[_0x6530('0x49')](db[_0x6530('0x44')][_0x6530('0x2e')]);_0xb2393b[_0x6530('0x34')]=_[_0x6530('0x49')](_0xc8a5a6[_0x6530('0x34')]);_0xb2393b[_0x6530('0x35')]=_[_0x6530('0x36')](_0xb2393b[_0x6530('0x32')],_0xb2393b['query']);_0x33d625[_0x6530('0x37')]=_[_0x6530('0x36')](_0xb2393b[_0x6530('0x32')],qs[_0x6530('0x38')](_0xc8a5a6[_0x6530('0x34')][_0x6530('0x38')]));_0x33d625[_0x6530('0x37')]=_0x33d625[_0x6530('0x37')]['length']?_0x33d625[_0x6530('0x37')]:_0xb2393b['model'];if(_0xc8a5a6[_0x6530('0x34')][_0x6530('0x42')]){_0x33d625[_0x6530('0x43')]=[{'all':!![]}];}_0x33d625=_[_0x6530('0x3f')]({},_0x33d625,_0xc8a5a6['options']);return db[_0x6530('0x44')][_0x6530('0x4a')](_0x33d625)[_0x6530('0x26')](handleEntityNotFound(_0x436086,null))[_0x6530('0x26')](respondWithResult(_0x436086,null))[_0x6530('0x46')](handleError(_0x436086,null));};exports[_0x6530('0x4b')]=function(_0x12b746,_0x4acd2b){return db[_0x6530('0x44')][_0x6530('0x4b')](_0x12b746[_0x6530('0x4c')],{})[_0x6530('0x26')](function(_0x253cd7){var _0x4137db=_0x12b746['user'][_0x6530('0x4d')]({'plain':!![]});if(!_0x4137db)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4137db[_0x6530('0x4e')]===_0x6530('0x4f')){var _0x796fc6=_0x253cd7[_0x6530('0x4d')]({'plain':!![]});var _0x1751fb=_0x6530('0x50');return db['UserProfileSection'][_0x6530('0x4a')]({'where':{'name':_0x1751fb,'userProfileId':_0x4137db[_0x6530('0x51')]},'raw':!![]})[_0x6530('0x26')](function(_0x6f83b7){if(_0x6f83b7&&_0x6f83b7[_0x6530('0x52')]===0x0){return db[_0x6530('0x29')][_0x6530('0x4b')]({'name':_0x796fc6[_0x6530('0x33')],'resourceId':_0x796fc6['id'],'type':_0x6530('0x28'),'sectionId':_0x6f83b7['id']},{})[_0x6530('0x26')](function(){return _0x253cd7;});}else{return _0x253cd7;}})['catch'](function(_0x1350d3){logger[_0x6530('0x2a')](_0x6530('0x53'),_0x1350d3);throw _0x1350d3;});}return _0x253cd7;})[_0x6530('0x26')](respondWithResult(_0x4acd2b,0xc9))[_0x6530('0x46')](handleError(_0x4acd2b,null));};exports[_0x6530('0x25')]=function(_0x40b40f,_0x1e0928){if(_0x40b40f[_0x6530('0x4c')]['id']){delete _0x40b40f['body']['id'];}return db['AnalyticCustomReport']['find']({'where':{'id':_0x40b40f['params']['id']}})['then'](handleEntityNotFound(_0x1e0928,null))['then'](saveUpdates(_0x40b40f[_0x6530('0x4c')],null))[_0x6530('0x26')](respondWithResult(_0x1e0928,null))[_0x6530('0x46')](handleError(_0x1e0928,null));};exports['destroy']=function(_0x3a3435,_0x5ae42e){return db[_0x6530('0x44')][_0x6530('0x4a')]({'where':{'id':_0x3a3435[_0x6530('0x48')]['id']}})[_0x6530('0x26')](handleEntityNotFound(_0x5ae42e,null))['then'](removeEntity(_0x5ae42e,null))['catch'](handleError(_0x5ae42e,null));};exports[_0x6530('0x54')]=function(_0x2b7a96,_0x530547){var _0x278ee9=0xa;var _0x5f2046=['join',_0x6530('0x55'),_0x6530('0x56'),'cross_join'];var _0x1b135b={'SUM':'SUM(%s)','COUNT':_0x6530('0x57'),'COUNT DISTINCT':_0x6530('0x58'),'MAX':_0x6530('0x59'),'MIN':'MIN(%s)','AVG':_0x6530('0x5a'),'GROUP_CONCAT':_0x6530('0x5b'),'GROUP_CONCAT ASC':_0x6530('0x5c'),'GROUP_CONCAT DESC':_0x6530('0x5d')};var _0x405c13={'SEC_TO_TIME':_0x6530('0x5e'),'DATE':_0x6530('0x5f'),'HOUR':_0x6530('0x60'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x6530('0x61')};var _0x5658ef=function(_0x43ec40){return!_[_0x6530('0x62')]([_0x6530('0x63'),_0x6530('0x64'),_0x6530('0x65'),_0x6530('0x66')],_0x43ec40);};var _0x830916=function(_0x592ec8){if(!_0x592ec8||!_0x592ec8[_0x6530('0x67')][_0x6530('0x39')]){return'';}for(var _0x1950ce='(',_0x340985=0x0;_0x340985<_0x592ec8[_0x6530('0x67')][_0x6530('0x39')];_0x340985+=0x1){_0x340985>0x0&&(_0x1950ce+='\x20'+_0x592ec8[_0x6530('0x68')]+'\x20');_0x1950ce+=_0x592ec8['rules'][_0x340985][_0x6530('0x69')]?_0x830916(_0x592ec8[_0x6530('0x67')][_0x340985][_0x6530('0x69')]):_0x592ec8[_0x6530('0x67')][_0x340985][_0x6530('0x6a')]+'\x20'+_0x592ec8[_0x6530('0x67')][_0x340985]['condition']+(_0x5658ef(_0x592ec8[_0x6530('0x67')][_0x340985][_0x6530('0x6b')])?'\x20'+_0x592ec8[_0x6530('0x67')][_0x340985]['value']:'');}return _0x1950ce+')';};var _0x154f8e={'where':{'id':_0x2b7a96[_0x6530('0x48')]['id']}},_0x5e6e42,_0x4c1d02,_0x5d1db1,_0x547460,_0x8d6427;_0x154f8e=_[_0x6530('0x3f')]({},_0x154f8e,_0x2b7a96[_0x6530('0x41')]);return db[_0x6530('0x44')][_0x6530('0x4a')](_0x154f8e)[_0x6530('0x26')](function(_0x4d50fb){if(_0x4d50fb){_0x5e6e42=_0x4d50fb;return _0x4d50fb[_0x6530('0x6c')]();}return null;})[_0x6530('0x26')](function(_0x5d1953){if(_0x5d1953){if(!_0x5d1953['length']){throw new db[(_0x6530('0x6d'))]['ValidationErrorItem'](_0x6530('0x6e'),0x193);}_0x4c1d02=_0x5d1953;return db['AnalyticMetric'][_0x6530('0x45')]({'raw':!![]});}return null;})[_0x6530('0x26')](function(_0x452962){if(_0x452962){_0x5d1db1=_[_0x6530('0x6f')](_0x452962,'id');var _0xb06a5f;var _0x23eb22=squel[_0x6530('0x70')]();_0x23eb22['from'](_0x5e6e42[_0x6530('0x71')]);for(var _0x334e8b=0x0;_0x334e8b<_0x4c1d02['length'];_0x334e8b+=0x1){_0xb06a5f=_0x4c1d02[_0x334e8b][_0x6530('0x72')]?_0x5d1db1[_0x4c1d02[_0x334e8b][_0x6530('0x72')]]['metric']:_0x4c1d02[_0x334e8b][_0x6530('0x6a')];_0xb06a5f=_0x4c1d02[_0x334e8b][_0x6530('0x73')]?_[_0x6530('0x74')](_0x1b135b[_0x4c1d02[_0x334e8b]['function']],'%s',_0xb06a5f):_0xb06a5f;_0xb06a5f=_0x4c1d02[_0x334e8b][_0x6530('0x75')]?_[_0x6530('0x74')](_0x405c13[_0x4c1d02[_0x334e8b][_0x6530('0x75')]],'%s',_0xb06a5f):_0xb06a5f;if(_0x4c1d02[_0x334e8b][_0x6530('0x76')]){_0x23eb22['group'](_0xb06a5f);}_0x4c1d02[_0x334e8b][_0x6530('0x77')]&&_0x23eb22[_0x6530('0x78')](_0xb06a5f,_0x4c1d02[_0x334e8b][_0x6530('0x77')]==='DESC'?![]:!![]);_0x23eb22[_0x6530('0x6a')](_0xb06a5f,_0x4c1d02[_0x334e8b][_0x6530('0x79')]||_0xb06a5f);}if(_0x5e6e42[_0x6530('0x7a')]){_0x5e6e42['joins']=JSON[_0x6530('0x7b')](_0x5e6e42[_0x6530('0x7a')]);for(var _0x74df05=0x0;_0x74df05<_0x5e6e42['joins']['length'];_0x74df05+=0x1){if(_0x5e6e42[_0x6530('0x7a')][_0x74df05]['type']&&_[_0x6530('0x62')](_0x5f2046,_0x5e6e42['joins'][_0x74df05]['type'])&&_0x5e6e42[_0x6530('0x7a')][_0x74df05][_0x6530('0x7c')]&&_0x5e6e42['joins'][_0x74df05][_0x6530('0x7d')]&&_0x5e6e42[_0x6530('0x7a')][_0x74df05][_0x6530('0x7e')]){_0x23eb22[_0x5e6e42[_0x6530('0x7a')][_0x74df05][_0x6530('0x30')]](_0x5e6e42[_0x6530('0x7a')][_0x74df05][_0x6530('0x7d')],null,util['format'](_0x6530('0x7f'),_0x5e6e42[_0x6530('0x71')],_0x5e6e42[_0x6530('0x7a')][_0x74df05]['parentKey'],_0x5e6e42['joins'][_0x74df05][_0x6530('0x7d')],_0x5e6e42[_0x6530('0x7a')][_0x74df05][_0x6530('0x7e')]));}}}if(_0x5e6e42[_0x6530('0x80')]){_0x5e6e42['conditions']=JSON[_0x6530('0x7b')](_0x5e6e42[_0x6530('0x80')]);_0x23eb22[_0x6530('0x3e')](_0x830916(_0x5e6e42['conditions'][_0x6530('0x69')]));}_0x8d6427=_0x23eb22['clone']();_0x23eb22[_0x6530('0x20')](_0x278ee9);_0x23eb22[_0x6530('0x1e')](0x0);logger[_0x6530('0x81')](_0x6530('0x82'),_0x23eb22['toString']());return dbH[_0x6530('0x83')]['query'](_0x23eb22[_0x6530('0x84')](),{'type':dbH['sequelize']['QueryTypes'][_0x6530('0x85')]});}})[_0x6530('0x26')](respondWithResult(_0x530547,null))[_0x6530('0x46')](handleError(_0x530547,null));};function runReport(_0x5ebe18,_0x43c611,_0x29fe6c){var _0x1bd815=_0x43c611[_0x6530('0x33')];var _0x4e98a0=0xa;var _0x2682c6=[_0x6530('0x86'),'left_join',_0x6530('0x56'),_0x6530('0x87')];var _0x388bb8={'SUM':_0x6530('0x88'),'COUNT':_0x6530('0x57'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x6530('0x59'),'MIN':_0x6530('0x89'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x6530('0x5b'),'GROUP_CONCAT ASC':_0x6530('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x3562fb={'SEC_TO_TIME':_0x6530('0x5e'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x6530('0x8a'),'UNIX_TIMESTAMP':_0x6530('0x61')};var _0x1d451c=function(_0x5213d1){return!_[_0x6530('0x62')]([_0x6530('0x63'),'IS\x20NOT\x20NULL',_0x6530('0x65'),_0x6530('0x66')],_0x5213d1);};var _0x1d625c=function(_0x1fd2f4){if(!_0x1fd2f4||!_0x1fd2f4[_0x6530('0x67')]['length']){return'';}for(var _0x375a12='(',_0x524437=0x0;_0x524437<_0x1fd2f4[_0x6530('0x67')]['length'];_0x524437+=0x1){_0x524437>0x0&&(_0x375a12+='\x20'+_0x1fd2f4[_0x6530('0x68')]+'\x20');_0x375a12+=_0x1fd2f4[_0x6530('0x67')][_0x524437]['group']?_0x1d625c(_0x1fd2f4['rules'][_0x524437][_0x6530('0x69')]):_0x1fd2f4[_0x6530('0x67')][_0x524437][_0x6530('0x6a')]+'\x20'+_0x1fd2f4['rules'][_0x524437][_0x6530('0x6b')]+(_0x1d451c(_0x1fd2f4[_0x6530('0x67')][_0x524437][_0x6530('0x6b')])?'\x20'+_0x1fd2f4['rules'][_0x524437][_0x6530('0x8b')]:'');}return _0x375a12+')';};var _0x5450c0={'where':{'id':_0x5ebe18['id']}},_0x208dc0,_0x46fb0d,_0x568494,_0x3e1c0a,_0x546a8b;_0x5450c0=_[_0x6530('0x3f')]({},_0x5450c0,_0x29fe6c);return db[_0x6530('0x44')]['find'](_0x5450c0)[_0x6530('0x26')](function(_0x1188fc){if(_0x1188fc){_0x208dc0=_0x1188fc;return _0x1188fc[_0x6530('0x6c')]();}return null;})[_0x6530('0x26')](function(_0x1d86be){if(_0x1d86be){if(!_0x1d86be[_0x6530('0x39')]){throw new db['Sequelize'][(_0x6530('0x8c'))](_0x6530('0x6e'),0x193);}_0x46fb0d=_0x1d86be;return db[_0x6530('0x8d')][_0x6530('0x45')]({'raw':!![]});}return null;})[_0x6530('0x26')](function(_0x29e2ed){if(_0x29e2ed){_0x568494=_[_0x6530('0x6f')](_0x29e2ed,'id');var _0x668e95;var _0x2ecc4e=squel[_0x6530('0x70')]();_0x2ecc4e[_0x6530('0x8e')](_0x208dc0[_0x6530('0x71')]);for(var _0x1bd1ec=0x0;_0x1bd1ec<_0x46fb0d[_0x6530('0x39')];_0x1bd1ec+=0x1){_0x668e95=_0x46fb0d[_0x1bd1ec][_0x6530('0x72')]?_0x568494[_0x46fb0d[_0x1bd1ec][_0x6530('0x72')]][_0x6530('0x8f')]:_0x46fb0d[_0x1bd1ec][_0x6530('0x6a')];_0x668e95=_0x46fb0d[_0x1bd1ec][_0x6530('0x73')]?_['replace'](_0x388bb8[_0x46fb0d[_0x1bd1ec]['function']],'%s',_0x668e95):_0x668e95;_0x668e95=_0x46fb0d[_0x1bd1ec][_0x6530('0x75')]?_[_0x6530('0x74')](_0x3562fb[_0x46fb0d[_0x1bd1ec][_0x6530('0x75')]],'%s',_0x668e95):_0x668e95;if(_0x46fb0d[_0x1bd1ec]['groupBy']){_0x2ecc4e[_0x6530('0x69')](_0x668e95);}_0x46fb0d[_0x1bd1ec]['orderBy']&&_0x2ecc4e[_0x6530('0x78')](_0x668e95,_0x46fb0d[_0x1bd1ec][_0x6530('0x77')]===_0x6530('0x90')?![]:!![]);_0x2ecc4e[_0x6530('0x6a')](_0x668e95,_0x46fb0d[_0x1bd1ec][_0x6530('0x79')]||_0x668e95);}if(_0x208dc0['joins']){_0x208dc0[_0x6530('0x7a')]=JSON['parse'](_0x208dc0['joins']);for(var _0xb16b43=0x0;_0xb16b43<_0x208dc0[_0x6530('0x7a')][_0x6530('0x39')];_0xb16b43+=0x1){if(_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x30')]&&_['includes'](_0x2682c6,_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x30')])&&_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7c')]&&_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7d')]&&_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7e')]){_0x2ecc4e[_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x30')]](_0x208dc0['joins'][_0xb16b43][_0x6530('0x7d')],null,util[_0x6530('0x75')](_0x6530('0x7f'),_0x208dc0['table'],_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7c')],_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7d')],_0x208dc0[_0x6530('0x7a')][_0xb16b43][_0x6530('0x7e')]));}}}if(_0x208dc0[_0x6530('0x80')]){_0x208dc0[_0x6530('0x80')]=JSON['parse'](_0x208dc0[_0x6530('0x80')]);_0x2ecc4e[_0x6530('0x3e')](_0x1d625c(_0x208dc0[_0x6530('0x80')][_0x6530('0x69')]));}_0x546a8b=_0x2ecc4e[_0x6530('0x91')]();_0x2ecc4e['limit'](_0x4e98a0);_0x2ecc4e[_0x6530('0x1e')](0x0);return;}})[_0x6530('0x26')](function(){if(_0x43c611['output']===_0x6530('0x92')){return null;}var _0x41accd=_[_0x6530('0x3f')](_0x43c611,{'name':_0x43c611['fullPath']||_0x43c611[_0x6530('0x33')]||_0x208dc0[_0x6530('0x33')],'basename':_0x1bd815,'savename':util[_0x6530('0x75')](_0x6530('0x93'),_0x43c611['name']||_0x208dc0['name'],require(_0x6530('0x94'))['generate'](0x4),_0x43c611[_0x6530('0x95')]||_0x6530('0x96')),'reportId':_0x208dc0['id'],'reportType':'custom'});return db[_0x6530('0x97')][_0x6530('0x4b')](_0x41accd,{'raw':!![]});})[_0x6530('0x26')](function(_0x2688ab){if(_0x208dc0[_0x6530('0x71')]==='cdr'){_0x546a8b['where'](_0x208dc0[_0x6530('0x71')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x43c611[_0x6530('0x98')],_0x43c611[_0x6530('0x99')]);}else{_0x546a8b[_0x6530('0x3e')](_0x208dc0[_0x6530('0x71')]+_0x6530('0x9a'),_0x43c611[_0x6530('0x98')],_0x43c611[_0x6530('0x99')]);}if(_0x2688ab){logger[_0x6530('0x9b')](_0x6530('0x9c'),_0x546a8b[_0x6530('0x84')]());require(_0x6530('0x9d'))[_0x6530('0x9e')](path['join'](__dirname,_0x6530('0x9f'),_0x2688ab[_0x6530('0x95')]),[_0x2688ab['id'],_0x546a8b[_0x6530('0x84')](),path['join'](__dirname,'../../files/reports',_0x2688ab['savename']),_0x1bd815]);return _0x2688ab;}else{var _0x20d087=squel[_0x6530('0x70')]();_0x20d087[_0x6530('0x8e')]('('+_0x546a8b['toString']()+')','countTable');_0x20d087[_0x6530('0x6a')](_0x6530('0xa0'),'count');_0x546a8b[_0x6530('0x20')](_0x43c611['limit']||_0x4e98a0);_0x546a8b['offset'](_0x43c611[_0x6530('0x1e')]||0x0);return dbH[_0x6530('0x83')][_0x6530('0x34')](_0x20d087[_0x6530('0x84')](),{'type':dbH['sequelize'][_0x6530('0xa1')][_0x6530('0x85')]})[_0x6530('0x26')](function(_0x6a8f94){if(!_0x6a8f94[_0x6530('0x39')]){_0x3e1c0a=0x0;}else{_0x3e1c0a=_0x6a8f94[0x0][_0x6530('0x21')]||0x0;}return dbH[_0x6530('0x83')][_0x6530('0x34')](_0x546a8b[_0x6530('0x84')](),{'type':dbH[_0x6530('0x83')]['QueryTypes'][_0x6530('0x85')]});})['then'](function(_0x27df3d){return{'rows':_0x27df3d||[],'count':_0x3e1c0a};});}});}exports[_0x6530('0xa2')]=function(_0x240247,_0xbd2128){return runReport(_0x240247['params'],_0x240247[_0x6530('0x34')],_0x240247[_0x6530('0x41')])[_0x6530('0x26')](respondWithResult(_0xbd2128,null))[_0x6530('0x46')](handleError(_0xbd2128,null));};exports[_0x6530('0xa3')]=runReport;exports[_0x6530('0x34')]=function(_0x47703d,_0x10ce13){var _0x49fbc7=0xa;var _0x2135f8=[_0x6530('0x86'),_0x6530('0x55'),_0x6530('0x56'),'cross_join'];var _0x203a28={'SUM':_0x6530('0x88'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x6530('0x58'),'MAX':'MAX(%s)','MIN':_0x6530('0x89'),'AVG':_0x6530('0x5a'),'GROUP_CONCAT':_0x6530('0x5b'),'GROUP_CONCAT ASC':_0x6530('0x5c'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x58411c={'SEC_TO_TIME':_0x6530('0x5e'),'DATE':_0x6530('0x5f'),'HOUR':_0x6530('0x60'),'ROUND':_0x6530('0x8a'),'UNIX_TIMESTAMP':_0x6530('0x61')};var _0x15f92b=function(_0x59d889){return!_['includes']([_0x6530('0x63'),_0x6530('0x64'),_0x6530('0x65'),_0x6530('0x66')],_0x59d889);};var _0x3e176a=function(_0x1da2d9){if(!_0x1da2d9||!_0x1da2d9['rules']['length']){return'';}for(var _0x1e6837='(',_0x1c90c7=0x0;_0x1c90c7<_0x1da2d9['rules'][_0x6530('0x39')];_0x1c90c7+=0x1){_0x1c90c7>0x0&&(_0x1e6837+='\x20'+_0x1da2d9[_0x6530('0x68')]+'\x20');_0x1e6837+=_0x1da2d9[_0x6530('0x67')][_0x1c90c7][_0x6530('0x69')]?_0x3e176a(_0x1da2d9[_0x6530('0x67')][_0x1c90c7][_0x6530('0x69')]):_0x1da2d9[_0x6530('0x67')][_0x1c90c7][_0x6530('0x6a')]+'\x20'+_0x1da2d9[_0x6530('0x67')][_0x1c90c7]['condition']+(_0x15f92b(_0x1da2d9[_0x6530('0x67')][_0x1c90c7]['condition'])?'\x20'+_0x1da2d9[_0x6530('0x67')][_0x1c90c7]['value']:'');}return _0x1e6837+')';};var _0x115448={'where':{'id':_0x47703d['params']['id']}},_0x289dde,_0x584e38,_0x2baed1,_0x393c2c,_0x2ff3f9;_0x115448=_[_0x6530('0x3f')]({},_0x115448,_0x47703d[_0x6530('0x41')]);return db['AnalyticCustomReport'][_0x6530('0x4a')](_0x115448)[_0x6530('0x26')](function(_0x4d5423){if(_0x4d5423){_0x289dde=_0x4d5423;return _0x4d5423['getFields']();}return null;})[_0x6530('0x26')](function(_0xd3641b){if(_0xd3641b){if(!_0xd3641b[_0x6530('0x39')]){throw new db[(_0x6530('0x6d'))][(_0x6530('0x8c'))](_0x6530('0x6e'),0x193);}_0x584e38=_0xd3641b;return db[_0x6530('0x8d')]['findAll']({'raw':!![]});}return null;})[_0x6530('0x26')](function(_0x167052){if(_0x167052){_0x2baed1=_[_0x6530('0x6f')](_0x167052,'id');var _0xe2f766;var _0x5e35fe=squel[_0x6530('0x70')]();_0x5e35fe[_0x6530('0x8e')](_0x289dde['table']);for(var _0x4b99f6=0x0;_0x4b99f6<_0x584e38[_0x6530('0x39')];_0x4b99f6+=0x1){_0xe2f766=_0x584e38[_0x4b99f6][_0x6530('0x72')]?_0x2baed1[_0x584e38[_0x4b99f6][_0x6530('0x72')]][_0x6530('0x8f')]:_0x584e38[_0x4b99f6][_0x6530('0x6a')];_0xe2f766=_0x584e38[_0x4b99f6][_0x6530('0x73')]?_[_0x6530('0x74')](_0x203a28[_0x584e38[_0x4b99f6]['function']],'%s',_0xe2f766):_0xe2f766;_0xe2f766=_0x584e38[_0x4b99f6][_0x6530('0x75')]?_[_0x6530('0x74')](_0x58411c[_0x584e38[_0x4b99f6][_0x6530('0x75')]],'%s',_0xe2f766):_0xe2f766;if(_0x584e38[_0x4b99f6]['groupBy']){_0x5e35fe[_0x6530('0x69')](_0xe2f766);}_0x584e38[_0x4b99f6][_0x6530('0x77')]&&_0x5e35fe['order'](_0xe2f766,_0x584e38[_0x4b99f6]['orderBy']===_0x6530('0x90')?![]:!![]);_0x5e35fe[_0x6530('0x6a')](_0xe2f766,_0x584e38[_0x4b99f6][_0x6530('0x79')]||_0xe2f766);}if(_0x289dde[_0x6530('0x7a')]){_0x289dde['joins']=JSON['parse'](_0x289dde[_0x6530('0x7a')]);for(var _0x1fecfd=0x0;_0x1fecfd<_0x289dde[_0x6530('0x7a')][_0x6530('0x39')];_0x1fecfd+=0x1){if(_0x289dde[_0x6530('0x7a')][_0x1fecfd][_0x6530('0x30')]&&_[_0x6530('0x62')](_0x2135f8,_0x289dde[_0x6530('0x7a')][_0x1fecfd][_0x6530('0x30')])&&_0x289dde[_0x6530('0x7a')][_0x1fecfd][_0x6530('0x7c')]&&_0x289dde['joins'][_0x1fecfd][_0x6530('0x7d')]&&_0x289dde['joins'][_0x1fecfd][_0x6530('0x7e')]){_0x5e35fe[_0x289dde['joins'][_0x1fecfd]['type']](_0x289dde[_0x6530('0x7a')][_0x1fecfd][_0x6530('0x7d')],null,util[_0x6530('0x75')](_0x6530('0x7f'),_0x289dde[_0x6530('0x71')],_0x289dde['joins'][_0x1fecfd][_0x6530('0x7c')],_0x289dde[_0x6530('0x7a')][_0x1fecfd][_0x6530('0x7d')],_0x289dde[_0x6530('0x7a')][_0x1fecfd]['foreignKey']));}}}if(_0x289dde[_0x6530('0x80')]){_0x289dde['conditions']=JSON['parse'](_0x289dde[_0x6530('0x80')]);_0x5e35fe[_0x6530('0x3e')](_0x3e176a(_0x289dde[_0x6530('0x80')][_0x6530('0x69')]));}_0x2ff3f9=_0x5e35fe[_0x6530('0x91')]();_0x5e35fe[_0x6530('0x20')](_0x49fbc7);_0x5e35fe[_0x6530('0x1e')](0x0);logger[_0x6530('0x81')](_0x6530('0x82'),_0x5e35fe['toString']());return dbH['sequelize'][_0x6530('0x34')](_0x5e35fe[_0x6530('0x84')](),{'type':dbH[_0x6530('0x83')][_0x6530('0xa1')][_0x6530('0x85')]});}})[_0x6530('0x26')](function(){return{'sql':_0x2ff3f9['toString']()};})[_0x6530('0x26')](respondWithResult(_0x10ce13,null))[_0x6530('0x46')](handleError(_0x10ce13,null));};