Built motion from commit (unavailable).|2.5.1
[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 _0x32c0=['COUNT(*)','run','runReport','Please\x20insert\x20at\x20least\x20one\x20field','html-pdf','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','desk.js','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','status','end','count','offset','limit','set','Content-Range','json','apply','reject','destroy','get','CustomReports','UserProfileResource','then','sendStatus','error','stack','name','send','index','AnalyticCustomReport','fieldName','key','model','map','keys','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','type','includeAll','include','findAll','rows','catch','show','rawAttributes','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','preview','join','left_join','right_join','SUM(%s)','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)','ROUND(%s)','includes','IS\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','select','from','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','parse','joins','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','clone','toString','QueryTypes','cross_join','MIN(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','alias','debug','Limited\x20Query:','sequelize','SELECT','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','fork','../../components/export/','savename','countTable'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x32c0,0x1f3));var _0x032c=function(_0x1d175,_0x460805){_0x1d175=_0x1d175-0x0;var _0x58997c=_0x32c0[_0x1d175];return _0x58997c;};'use strict';var pdf=require(_0x032c('0x0'));var emlformat=require(_0x032c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x032c('0x2'));var jsonpatch=require(_0x032c('0x3'));var rp=require('request-promise');var moment=require(_0x032c('0x4'));var BPromise=require(_0x032c('0x5'));var Mustache=require(_0x032c('0x6'));var util=require(_0x032c('0x7'));var path=require('path');var sox=require(_0x032c('0x8'));var csv=require(_0x032c('0x9'));var ejs=require(_0x032c('0xa'));var fs=require('fs');var _=require(_0x032c('0xb'));var squel=require('squel');var crypto=require(_0x032c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x032c('0xd'));var toCsv=require(_0x032c('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x032c('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x032c('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x032c('0x10'));var logger=require(_0x032c('0x11'))(_0x032c('0x12'));var utils=require(_0x032c('0x13'));var config=require(_0x032c('0x14'));var db=require(_0x032c('0x15'))['db'];var dbH=require('../../mysqldb')[_0x032c('0x16')];function respondWithStatusCode(_0xc88e78,_0x364605){_0x364605=_0x364605||0xcc;return function(_0x40aea5){if(_0x40aea5){return _0xc88e78['sendStatus'](_0x364605);}return _0xc88e78[_0x032c('0x17')](_0x364605)[_0x032c('0x18')]();};}function respondWithResult(_0x1ec9d8,_0x216984){_0x216984=_0x216984||0xc8;return function(_0x3a1863){if(_0x3a1863){return _0x1ec9d8[_0x032c('0x17')](_0x216984)['json'](_0x3a1863);}};}function respondWithFilteredResult(_0xb678d5,_0x15ddb8){return function(_0x3ebda8){if(_0x3ebda8){var _0x3f6f4d=_0x3ebda8[_0x032c('0x19')],_0x3ccbd5=_0x15ddb8[_0x032c('0x1a')],_0x46cbd2=_0x15ddb8[_0x032c('0x1a')]+_0x15ddb8[_0x032c('0x1b')],_0x49c770;if(_0x46cbd2>=_0x3f6f4d){_0x46cbd2=_0x3f6f4d;_0x49c770=0xc8;}else{_0x49c770=0xce;}_0xb678d5[_0x032c('0x17')](_0x49c770);return _0xb678d5[_0x032c('0x1c')](_0x032c('0x1d'),_0x3ccbd5+'-'+_0x46cbd2+'/'+_0x3f6f4d)[_0x032c('0x1e')](_0x3ebda8);}return null;};}function patchUpdates(_0x3a6f71){return function(_0x415419){try{jsonpatch[_0x032c('0x1f')](_0x415419,_0x3a6f71,!![]);}catch(_0x3457a3){return BPromise[_0x032c('0x20')](_0x3457a3);}return _0x415419['save']();};}function saveUpdates(_0x8a8f30,_0x5a33ad){return function(_0x5341e6){if(_0x5341e6){return _0x5341e6['update'](_0x8a8f30)['then'](function(_0x2a24f7){return _0x2a24f7;});}return null;};}function removeEntity(_0x4c0c4b,_0x2ce758){return function(_0x29309b){if(_0x29309b){return _0x29309b[_0x032c('0x21')]()['then'](function(){var _0x135612=_0x29309b[_0x032c('0x22')]({'plain':!![]});var _0x28ae24=_0x032c('0x23');return db[_0x032c('0x24')][_0x032c('0x21')]({'where':{'type':_0x28ae24,'resourceId':_0x135612['id']}})[_0x032c('0x25')](function(){return _0x29309b;});})['then'](function(){_0x4c0c4b[_0x032c('0x17')](0xcc)[_0x032c('0x18')]();});}};}function handleEntityNotFound(_0x1d1cd5,_0x56d20d){return function(_0x1350d1){if(!_0x1350d1){_0x1d1cd5[_0x032c('0x26')](0x194);}return _0x1350d1;};}function handleError(_0x15c368,_0x12e3df){_0x12e3df=_0x12e3df||0x1f4;return function(_0x58de77){logger[_0x032c('0x27')](_0x58de77[_0x032c('0x28')]);if(_0x58de77[_0x032c('0x29')]){delete _0x58de77[_0x032c('0x29')];}_0x15c368['status'](_0x12e3df)[_0x032c('0x2a')](_0x58de77);};}exports[_0x032c('0x2b')]=function(_0x5cdd90,_0x659bbf){var _0x306935={},_0x4508ab={},_0x42730d={'count':0x0,'rows':[]};var _0x5a2297=_['map'](db[_0x032c('0x2c')]['rawAttributes'],function(_0x6f72ba){return{'name':_0x6f72ba[_0x032c('0x2d')],'type':_0x6f72ba['type'][_0x032c('0x2e')]};});_0x4508ab[_0x032c('0x2f')]=_[_0x032c('0x30')](_0x5a2297,_0x032c('0x29'));_0x4508ab['query']=_[_0x032c('0x31')](_0x5cdd90[_0x032c('0x32')]);_0x4508ab['filters']=_[_0x032c('0x33')](_0x4508ab[_0x032c('0x2f')],_0x4508ab[_0x032c('0x32')]);_0x306935[_0x032c('0x34')]=_[_0x032c('0x33')](_0x4508ab['model'],qs[_0x032c('0x35')](_0x5cdd90['query'][_0x032c('0x35')]));_0x306935['attributes']=_0x306935[_0x032c('0x34')][_0x032c('0x36')]?_0x306935[_0x032c('0x34')]:_0x4508ab[_0x032c('0x2f')];if(!_0x5cdd90[_0x032c('0x32')][_0x032c('0x37')]('nolimit')){_0x306935[_0x032c('0x1b')]=qs[_0x032c('0x1b')](_0x5cdd90['query'][_0x032c('0x1b')]);_0x306935[_0x032c('0x1a')]=qs[_0x032c('0x1a')](_0x5cdd90['query'][_0x032c('0x1a')]);}_0x306935[_0x032c('0x38')]=qs[_0x032c('0x39')](_0x5cdd90[_0x032c('0x32')][_0x032c('0x39')]);_0x306935[_0x032c('0x3a')]=qs[_0x032c('0x3b')](_['pick'](_0x5cdd90[_0x032c('0x32')],_0x4508ab[_0x032c('0x3b')]),_0x5a2297);if(_0x5cdd90[_0x032c('0x32')][_0x032c('0x3c')]){_0x306935[_0x032c('0x3a')]=_[_0x032c('0x3d')](_0x306935[_0x032c('0x3a')],{'$or':_[_0x032c('0x30')](_0x5a2297,function(_0x4bba77){if(_0x4bba77[_0x032c('0x3e')]!=='VIRTUAL'){var _0x2c9a1c={};_0x2c9a1c[_0x4bba77['name']]={'$like':'%'+_0x5cdd90['query'][_0x032c('0x3c')]+'%'};return _0x2c9a1c;}})});}_0x306935=_[_0x032c('0x3d')]({},_0x306935,_0x5cdd90['options']);var _0x57bc40={'where':_0x306935[_0x032c('0x3a')]};return db['AnalyticCustomReport']['count'](_0x57bc40)[_0x032c('0x25')](function(_0x6a9676){_0x42730d[_0x032c('0x19')]=_0x6a9676;if(_0x5cdd90[_0x032c('0x32')][_0x032c('0x3f')]){_0x306935[_0x032c('0x40')]=[{'all':!![]}];}return db['AnalyticCustomReport'][_0x032c('0x41')](_0x306935);})['then'](function(_0x5b3e62){_0x42730d[_0x032c('0x42')]=_0x5b3e62;return _0x42730d;})[_0x032c('0x25')](respondWithFilteredResult(_0x659bbf,_0x306935))[_0x032c('0x43')](handleError(_0x659bbf,null));};exports[_0x032c('0x44')]=function(_0x47360a,_0x4d64eb){var _0x481f1e={'raw':![],'where':{'id':_0x47360a['params']['id']}},_0x1e5dae={};_0x1e5dae[_0x032c('0x2f')]=_[_0x032c('0x31')](db[_0x032c('0x2c')][_0x032c('0x45')]);_0x1e5dae[_0x032c('0x32')]=_[_0x032c('0x31')](_0x47360a[_0x032c('0x32')]);_0x1e5dae[_0x032c('0x3b')]=_[_0x032c('0x33')](_0x1e5dae['model'],_0x1e5dae[_0x032c('0x32')]);_0x481f1e['attributes']=_['intersection'](_0x1e5dae[_0x032c('0x2f')],qs[_0x032c('0x35')](_0x47360a[_0x032c('0x32')][_0x032c('0x35')]));_0x481f1e[_0x032c('0x34')]=_0x481f1e['attributes']['length']?_0x481f1e['attributes']:_0x1e5dae[_0x032c('0x2f')];if(_0x47360a['query'][_0x032c('0x3f')]){_0x481f1e[_0x032c('0x40')]=[{'all':!![]}];}_0x481f1e=_['merge']({},_0x481f1e,_0x47360a[_0x032c('0x46')]);return db[_0x032c('0x2c')][_0x032c('0x47')](_0x481f1e)[_0x032c('0x25')](handleEntityNotFound(_0x4d64eb,null))[_0x032c('0x25')](respondWithResult(_0x4d64eb,null))[_0x032c('0x43')](handleError(_0x4d64eb,null));};exports[_0x032c('0x48')]=function(_0x5daa2b,_0x34b631){return db['AnalyticCustomReport'][_0x032c('0x48')](_0x5daa2b['body'],{})[_0x032c('0x25')](function(_0x13f1a7){var _0x1f6341=_0x5daa2b[_0x032c('0x49')][_0x032c('0x22')]({'plain':!![]});if(!_0x1f6341)throw new Error(_0x032c('0x4a'));if(_0x1f6341[_0x032c('0x4b')]===_0x032c('0x49')){var _0x36581c=_0x13f1a7['get']({'plain':!![]});var _0x3f4fd3='Reports';return db[_0x032c('0x4c')][_0x032c('0x47')]({'where':{'name':_0x3f4fd3,'userProfileId':_0x1f6341['userProfileId']},'raw':!![]})[_0x032c('0x25')](function(_0x754a96){if(_0x754a96&&_0x754a96['autoAssociation']===0x0){return db[_0x032c('0x24')][_0x032c('0x48')]({'name':_0x36581c[_0x032c('0x29')],'resourceId':_0x36581c['id'],'type':'CustomReports','sectionId':_0x754a96['id']},{})[_0x032c('0x25')](function(){return _0x13f1a7;});}else{return _0x13f1a7;}})[_0x032c('0x43')](function(_0x45cc0e){logger[_0x032c('0x27')](_0x032c('0x4d'),_0x45cc0e);throw _0x45cc0e;});}return _0x13f1a7;})[_0x032c('0x25')](respondWithResult(_0x34b631,0xc9))[_0x032c('0x43')](handleError(_0x34b631,null));};exports[_0x032c('0x4e')]=function(_0x3e3001,_0x38fb02){if(_0x3e3001['body']['id']){delete _0x3e3001[_0x032c('0x4f')]['id'];}return db[_0x032c('0x2c')][_0x032c('0x47')]({'where':{'id':_0x3e3001[_0x032c('0x50')]['id']}})[_0x032c('0x25')](handleEntityNotFound(_0x38fb02,null))[_0x032c('0x25')](saveUpdates(_0x3e3001[_0x032c('0x4f')],null))[_0x032c('0x25')](respondWithResult(_0x38fb02,null))['catch'](handleError(_0x38fb02,null));};exports[_0x032c('0x21')]=function(_0x305184,_0x12136b){return db[_0x032c('0x2c')][_0x032c('0x47')]({'where':{'id':_0x305184['params']['id']}})[_0x032c('0x25')](handleEntityNotFound(_0x12136b,null))[_0x032c('0x25')](removeEntity(_0x12136b,null))[_0x032c('0x43')](handleError(_0x12136b,null));};exports[_0x032c('0x51')]=function(_0x41312a,_0xf2e968){var _0x1bff7d=0xa;var _0x350107=[_0x032c('0x52'),_0x032c('0x53'),_0x032c('0x54'),'cross_join'];var _0x4ea4fe={'SUM':_0x032c('0x55'),'COUNT':_0x032c('0x56'),'COUNT DISTINCT':_0x032c('0x57'),'MAX':_0x032c('0x58'),'MIN':'MIN(%s)','AVG':_0x032c('0x59'),'GROUP_CONCAT':_0x032c('0x5a'),'GROUP_CONCAT ASC':_0x032c('0x5b'),'GROUP_CONCAT DESC':_0x032c('0x5c')};var _0xc29446={'SEC_TO_TIME':_0x032c('0x5d'),'DATE':_0x032c('0x5e'),'HOUR':_0x032c('0x5f'),'ROUND':_0x032c('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0xd71d10=function(_0x1951a0){return!_[_0x032c('0x61')]([_0x032c('0x62'),'IS\x20NOT\x20NULL',_0x032c('0x63'),_0x032c('0x64')],_0x1951a0);};var _0x2b8c32=function(_0x3542aa){if(!_0x3542aa||!_0x3542aa[_0x032c('0x65')]['length']){return'';}for(var _0x190fdc='(',_0xd0d761=0x0;_0xd0d761<_0x3542aa[_0x032c('0x65')][_0x032c('0x36')];_0xd0d761+=0x1){_0xd0d761>0x0&&(_0x190fdc+='\x20'+_0x3542aa[_0x032c('0x66')]+'\x20');_0x190fdc+=_0x3542aa[_0x032c('0x65')][_0xd0d761][_0x032c('0x67')]?_0x2b8c32(_0x3542aa[_0x032c('0x65')][_0xd0d761]['group']):_0x3542aa['rules'][_0xd0d761][_0x032c('0x68')]+'\x20'+_0x3542aa['rules'][_0xd0d761][_0x032c('0x69')]+(_0xd71d10(_0x3542aa['rules'][_0xd0d761][_0x032c('0x69')])?'\x20'+_0x3542aa[_0x032c('0x65')][_0xd0d761][_0x032c('0x6a')]:'');}return _0x190fdc+')';};var _0x200538={'where':{'id':_0x41312a[_0x032c('0x50')]['id']}},_0x260d72,_0x513a42,_0x22aa6c,_0x3c7917,_0x5cfe69;_0x200538=_[_0x032c('0x3d')]({},_0x200538,_0x41312a[_0x032c('0x46')]);return db['AnalyticCustomReport'][_0x032c('0x47')](_0x200538)[_0x032c('0x25')](function(_0x4d6d38){if(_0x4d6d38){_0x260d72=_0x4d6d38;return _0x4d6d38[_0x032c('0x6b')]();}return null;})[_0x032c('0x25')](function(_0x160100){if(_0x160100){if(!_0x160100[_0x032c('0x36')]){throw new db[(_0x032c('0x6c'))][(_0x032c('0x6d'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x513a42=_0x160100;return db[_0x032c('0x6e')][_0x032c('0x41')]({'raw':!![]});}return null;})[_0x032c('0x25')](function(_0x170bcd){if(_0x170bcd){_0x22aa6c=_[_0x032c('0x6f')](_0x170bcd,'id');var _0x436382;var _0x37cd74=squel[_0x032c('0x70')]();_0x37cd74[_0x032c('0x71')](_0x260d72['table']);for(var _0x470c65=0x0;_0x470c65<_0x513a42[_0x032c('0x36')];_0x470c65+=0x1){_0x436382=_0x513a42[_0x470c65][_0x032c('0x72')]?_0x22aa6c[_0x513a42[_0x470c65][_0x032c('0x72')]][_0x032c('0x73')]:_0x513a42[_0x470c65][_0x032c('0x68')];_0x436382=_0x513a42[_0x470c65][_0x032c('0x74')]?_[_0x032c('0x75')](_0x4ea4fe[_0x513a42[_0x470c65][_0x032c('0x74')]],'%s',_0x436382):_0x436382;_0x436382=_0x513a42[_0x470c65][_0x032c('0x76')]?_[_0x032c('0x75')](_0xc29446[_0x513a42[_0x470c65][_0x032c('0x76')]],'%s',_0x436382):_0x436382;if(_0x513a42[_0x470c65][_0x032c('0x77')]){_0x37cd74[_0x032c('0x67')](_0x436382);}_0x513a42[_0x470c65][_0x032c('0x78')]&&_0x37cd74[_0x032c('0x38')](_0x436382,_0x513a42[_0x470c65][_0x032c('0x78')]===_0x032c('0x79')?![]:!![]);_0x37cd74[_0x032c('0x68')](_0x436382,_0x513a42[_0x470c65]['alias']||_0x436382);}if(_0x260d72['joins']){_0x260d72['joins']=JSON[_0x032c('0x7a')](_0x260d72['joins']);for(var _0x408816=0x0;_0x408816<_0x260d72[_0x032c('0x7b')][_0x032c('0x36')];_0x408816+=0x1){if(_0x260d72['joins'][_0x408816][_0x032c('0x3e')]&&_[_0x032c('0x61')](_0x350107,_0x260d72[_0x032c('0x7b')][_0x408816][_0x032c('0x3e')])&&_0x260d72[_0x032c('0x7b')][_0x408816][_0x032c('0x7c')]&&_0x260d72[_0x032c('0x7b')][_0x408816][_0x032c('0x7d')]&&_0x260d72['joins'][_0x408816][_0x032c('0x7e')]){_0x37cd74[_0x260d72['joins'][_0x408816][_0x032c('0x3e')]](_0x260d72[_0x032c('0x7b')][_0x408816][_0x032c('0x7d')],null,util[_0x032c('0x76')](_0x032c('0x7f'),_0x260d72[_0x032c('0x80')],_0x260d72[_0x032c('0x7b')][_0x408816]['parentKey'],_0x260d72['joins'][_0x408816][_0x032c('0x7d')],_0x260d72[_0x032c('0x7b')][_0x408816]['foreignKey']));}}}if(_0x260d72[_0x032c('0x81')]){_0x260d72[_0x032c('0x81')]=JSON['parse'](_0x260d72[_0x032c('0x81')]);_0x37cd74[_0x032c('0x3a')](_0x2b8c32(_0x260d72['conditions']['group']));}_0x5cfe69=_0x37cd74[_0x032c('0x82')]();_0x37cd74[_0x032c('0x1b')](_0x1bff7d);_0x37cd74[_0x032c('0x1a')](0x0);logger['debug']('Limited\x20Query:',_0x37cd74['toString']());return db['sequelize']['query'](_0x37cd74[_0x032c('0x83')](),{'type':db['sequelize'][_0x032c('0x84')]['SELECT']});}})[_0x032c('0x25')](respondWithResult(_0xf2e968,null))[_0x032c('0x43')](handleError(_0xf2e968,null));};function runReport(_0x4fa350,_0x515274,_0x2ce6d4){var _0xf89085=_0x515274[_0x032c('0x29')];var _0x1b9e55=0xa;var _0x5e233e=[_0x032c('0x52'),_0x032c('0x53'),'right_join',_0x032c('0x85')];var _0x927b33={'SUM':_0x032c('0x55'),'COUNT':_0x032c('0x56'),'COUNT DISTINCT':_0x032c('0x57'),'MAX':_0x032c('0x58'),'MIN':_0x032c('0x86'),'AVG':_0x032c('0x59'),'GROUP_CONCAT':_0x032c('0x5a'),'GROUP_CONCAT ASC':_0x032c('0x5b'),'GROUP_CONCAT DESC':_0x032c('0x5c')};var _0x54d770={'SEC_TO_TIME':_0x032c('0x5d'),'DATE':'DATE(%s)','HOUR':_0x032c('0x5f'),'ROUND':_0x032c('0x60'),'UNIX_TIMESTAMP':_0x032c('0x87')};var _0x4c92e0=function(_0xc4c1de){return!_['includes'](['IS\x20NULL',_0x032c('0x88'),_0x032c('0x63'),_0x032c('0x64')],_0xc4c1de);};var _0x3431a1=function(_0x96d99d){if(!_0x96d99d||!_0x96d99d[_0x032c('0x65')][_0x032c('0x36')]){return'';}for(var _0x4033d6='(',_0x512ddf=0x0;_0x512ddf<_0x96d99d[_0x032c('0x65')][_0x032c('0x36')];_0x512ddf+=0x1){_0x512ddf>0x0&&(_0x4033d6+='\x20'+_0x96d99d[_0x032c('0x66')]+'\x20');_0x4033d6+=_0x96d99d[_0x032c('0x65')][_0x512ddf]['group']?_0x3431a1(_0x96d99d[_0x032c('0x65')][_0x512ddf][_0x032c('0x67')]):_0x96d99d[_0x032c('0x65')][_0x512ddf][_0x032c('0x68')]+'\x20'+_0x96d99d[_0x032c('0x65')][_0x512ddf][_0x032c('0x69')]+(_0x4c92e0(_0x96d99d[_0x032c('0x65')][_0x512ddf]['condition'])?'\x20'+_0x96d99d[_0x032c('0x65')][_0x512ddf][_0x032c('0x6a')]:'');}return _0x4033d6+')';};var _0x13fc01={'where':{'id':_0x4fa350['id']}},_0x29b122,_0x220955,_0x442693,_0xe945f6,_0x506460;_0x13fc01=_[_0x032c('0x3d')]({},_0x13fc01,_0x2ce6d4);return db[_0x032c('0x2c')][_0x032c('0x47')](_0x13fc01)[_0x032c('0x25')](function(_0x7391af){if(_0x7391af){_0x29b122=_0x7391af;return _0x7391af['getFields']();}return null;})[_0x032c('0x25')](function(_0x1c21ef){if(_0x1c21ef){if(!_0x1c21ef['length']){throw new db[(_0x032c('0x6c'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x220955=_0x1c21ef;return db[_0x032c('0x6e')]['findAll']({'raw':!![]});}return null;})['then'](function(_0xca0b7){if(_0xca0b7){_0x442693=_[_0x032c('0x6f')](_0xca0b7,'id');var _0x4f4f1d;var _0x5baf44=squel[_0x032c('0x70')]();_0x5baf44[_0x032c('0x71')](_0x29b122[_0x032c('0x80')]);for(var _0x595566=0x0;_0x595566<_0x220955[_0x032c('0x36')];_0x595566+=0x1){_0x4f4f1d=_0x220955[_0x595566][_0x032c('0x72')]?_0x442693[_0x220955[_0x595566][_0x032c('0x72')]][_0x032c('0x73')]:_0x220955[_0x595566][_0x032c('0x68')];_0x4f4f1d=_0x220955[_0x595566]['function']?_[_0x032c('0x75')](_0x927b33[_0x220955[_0x595566]['function']],'%s',_0x4f4f1d):_0x4f4f1d;_0x4f4f1d=_0x220955[_0x595566]['format']?_[_0x032c('0x75')](_0x54d770[_0x220955[_0x595566][_0x032c('0x76')]],'%s',_0x4f4f1d):_0x4f4f1d;if(_0x220955[_0x595566][_0x032c('0x77')]){_0x5baf44['group'](_0x4f4f1d);}_0x220955[_0x595566][_0x032c('0x78')]&&_0x5baf44[_0x032c('0x38')](_0x4f4f1d,_0x220955[_0x595566][_0x032c('0x78')]===_0x032c('0x79')?![]:!![]);_0x5baf44[_0x032c('0x68')](_0x4f4f1d,_0x220955[_0x595566][_0x032c('0x89')]||_0x4f4f1d);}if(_0x29b122[_0x032c('0x7b')]){_0x29b122[_0x032c('0x7b')]=JSON[_0x032c('0x7a')](_0x29b122['joins']);for(var _0x25911f=0x0;_0x25911f<_0x29b122[_0x032c('0x7b')][_0x032c('0x36')];_0x25911f+=0x1){if(_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x3e')]&&_[_0x032c('0x61')](_0x5e233e,_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x3e')])&&_0x29b122['joins'][_0x25911f][_0x032c('0x7c')]&&_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x7d')]&&_0x29b122['joins'][_0x25911f][_0x032c('0x7e')]){_0x5baf44[_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x3e')]](_0x29b122['joins'][_0x25911f][_0x032c('0x7d')],null,util[_0x032c('0x76')]('%s.%s\x20=\x20%s.%s',_0x29b122['table'],_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x7c')],_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x7d')],_0x29b122[_0x032c('0x7b')][_0x25911f][_0x032c('0x7e')]));}}}if(_0x29b122[_0x032c('0x81')]){_0x29b122['conditions']=JSON[_0x032c('0x7a')](_0x29b122[_0x032c('0x81')]);_0x5baf44['where'](_0x3431a1(_0x29b122['conditions']['group']));}_0x506460=_0x5baf44['clone']();_0x5baf44[_0x032c('0x1b')](_0x1b9e55);_0x5baf44[_0x032c('0x1a')](0x0);logger[_0x032c('0x8a')](_0x032c('0x8b'),_0x5baf44[_0x032c('0x83')]());return db[_0x032c('0x8c')][_0x032c('0x32')](_0x5baf44[_0x032c('0x83')](),{'type':db['sequelize'][_0x032c('0x84')][_0x032c('0x8d')]});}})['then'](function(_0x510eca){if(!_0x510eca['length']){throw new db['Sequelize']['ValidationErrorItem'](_0x032c('0x8e'),0xcc);}if(_0x515274[_0x032c('0x8f')]===_0x032c('0x90')){return null;}var _0x1974d3=_[_0x032c('0x3d')](_0x515274,{'name':_0x515274[_0x032c('0x91')]||_0x515274['name']||_0x29b122[_0x032c('0x29')],'basename':_0xf89085,'savename':util['format'](_0x032c('0x92'),_0x515274[_0x032c('0x29')]||_0x29b122[_0x032c('0x29')],require(_0x032c('0x93'))[_0x032c('0x94')](0x4),_0x515274[_0x032c('0x8f')]||_0x032c('0x95')),'reportId':_0x29b122['id'],'reportType':'custom'});return db[_0x032c('0x96')][_0x032c('0x48')](_0x1974d3,{'raw':!![]});})[_0x032c('0x25')](function(_0x5efd05){if(_0x29b122['table']==='cdr'){_0x506460[_0x032c('0x3a')](_0x29b122[_0x032c('0x80')]+_0x032c('0x97'),_0x515274[_0x032c('0x98')],_0x515274[_0x032c('0x99')]);}else{_0x506460[_0x032c('0x3a')](_0x29b122['table']+_0x032c('0x9a'),_0x515274[_0x032c('0x98')],_0x515274[_0x032c('0x99')]);}if(_0x5efd05){logger[_0x032c('0x9b')](_0x032c('0x9c'),_0x506460[_0x032c('0x83')]());require('child_process')[_0x032c('0x9d')](path[_0x032c('0x52')](__dirname,_0x032c('0x9e'),_0x5efd05[_0x032c('0x8f')]),[_0x5efd05['id'],_0x506460[_0x032c('0x83')](),path[_0x032c('0x52')](__dirname,'../../files/reports',_0x5efd05[_0x032c('0x9f')]),_0xf89085]);return _0x5efd05;}else{var _0x5da7fc=squel[_0x032c('0x70')]();_0x5da7fc[_0x032c('0x71')]('('+_0x506460[_0x032c('0x83')]()+')',_0x032c('0xa0'));_0x5da7fc[_0x032c('0x68')](_0x032c('0xa1'),_0x032c('0x19'));_0x506460[_0x032c('0x1b')](_0x515274['limit']||_0x1b9e55);_0x506460[_0x032c('0x1a')](_0x515274[_0x032c('0x1a')]||0x0);return dbH[_0x032c('0x8c')][_0x032c('0x32')](_0x5da7fc[_0x032c('0x83')](),{'type':dbH['sequelize'][_0x032c('0x84')]['SELECT']})[_0x032c('0x25')](function(_0x28e28c){if(!_0x28e28c[_0x032c('0x36')]){_0xe945f6=0x0;}else{_0xe945f6=_0x28e28c[0x0]['count']||0x0;}return dbH[_0x032c('0x8c')][_0x032c('0x32')](_0x506460['toString'](),{'type':dbH[_0x032c('0x8c')]['QueryTypes'][_0x032c('0x8d')]});})[_0x032c('0x25')](function(_0x564589){return{'rows':_0x564589||[],'count':_0xe945f6};});}});}exports[_0x032c('0xa2')]=function(_0x477706,_0x1f7394){return runReport(_0x477706[_0x032c('0x50')],_0x477706[_0x032c('0x32')],_0x477706[_0x032c('0x46')])[_0x032c('0x25')](respondWithResult(_0x1f7394,null))[_0x032c('0x43')](handleError(_0x1f7394,null));};exports[_0x032c('0xa3')]=runReport;exports[_0x032c('0x32')]=function(_0x4d64af,_0x2ec8ec){var _0x15fc2c=0xa;var _0x12add0=[_0x032c('0x52'),_0x032c('0x53'),_0x032c('0x54'),_0x032c('0x85')];var _0x122c2c={'SUM':_0x032c('0x55'),'COUNT':_0x032c('0x56'),'COUNT DISTINCT':_0x032c('0x57'),'MAX':_0x032c('0x58'),'MIN':_0x032c('0x86'),'AVG':_0x032c('0x59'),'GROUP_CONCAT':_0x032c('0x5a'),'GROUP_CONCAT ASC':_0x032c('0x5b'),'GROUP_CONCAT DESC':_0x032c('0x5c')};var _0x2ef6a4={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x032c('0x5e'),'HOUR':_0x032c('0x5f'),'ROUND':_0x032c('0x60'),'UNIX_TIMESTAMP':_0x032c('0x87')};var _0x4e3e6f=function(_0x11e935){return!_[_0x032c('0x61')]([_0x032c('0x62'),_0x032c('0x88'),_0x032c('0x63'),'IS\x20NOT\x20EMPTY'],_0x11e935);};var _0xe78ab5=function(_0x2eec00){if(!_0x2eec00||!_0x2eec00[_0x032c('0x65')][_0x032c('0x36')]){return'';}for(var _0x6d335c='(',_0x155593=0x0;_0x155593<_0x2eec00[_0x032c('0x65')][_0x032c('0x36')];_0x155593+=0x1){_0x155593>0x0&&(_0x6d335c+='\x20'+_0x2eec00[_0x032c('0x66')]+'\x20');_0x6d335c+=_0x2eec00[_0x032c('0x65')][_0x155593][_0x032c('0x67')]?_0xe78ab5(_0x2eec00['rules'][_0x155593][_0x032c('0x67')]):_0x2eec00[_0x032c('0x65')][_0x155593][_0x032c('0x68')]+'\x20'+_0x2eec00[_0x032c('0x65')][_0x155593][_0x032c('0x69')]+(_0x4e3e6f(_0x2eec00[_0x032c('0x65')][_0x155593][_0x032c('0x69')])?'\x20'+_0x2eec00[_0x032c('0x65')][_0x155593][_0x032c('0x6a')]:'');}return _0x6d335c+')';};var _0x2a998f={'where':{'id':_0x4d64af[_0x032c('0x50')]['id']}},_0x5617e2,_0x9c3c8e,_0x2edc39,_0x3cf15a,_0x18aa24;_0x2a998f=_[_0x032c('0x3d')]({},_0x2a998f,_0x4d64af['options']);return db[_0x032c('0x2c')][_0x032c('0x47')](_0x2a998f)[_0x032c('0x25')](function(_0x2e0b3d){if(_0x2e0b3d){_0x5617e2=_0x2e0b3d;return _0x2e0b3d['getFields']();}return null;})[_0x032c('0x25')](function(_0x38e22d){if(_0x38e22d){if(!_0x38e22d['length']){throw new db[(_0x032c('0x6c'))]['ValidationErrorItem'](_0x032c('0xa4'),0x193);}_0x9c3c8e=_0x38e22d;return db[_0x032c('0x6e')][_0x032c('0x41')]({'raw':!![]});}return null;})[_0x032c('0x25')](function(_0x430bc5){if(_0x430bc5){_0x2edc39=_[_0x032c('0x6f')](_0x430bc5,'id');var _0x5c23f6;var _0x10129f=squel[_0x032c('0x70')]();_0x10129f[_0x032c('0x71')](_0x5617e2['table']);for(var _0x3da605=0x0;_0x3da605<_0x9c3c8e[_0x032c('0x36')];_0x3da605+=0x1){_0x5c23f6=_0x9c3c8e[_0x3da605][_0x032c('0x72')]?_0x2edc39[_0x9c3c8e[_0x3da605]['MetricId']][_0x032c('0x73')]:_0x9c3c8e[_0x3da605][_0x032c('0x68')];_0x5c23f6=_0x9c3c8e[_0x3da605][_0x032c('0x74')]?_[_0x032c('0x75')](_0x122c2c[_0x9c3c8e[_0x3da605][_0x032c('0x74')]],'%s',_0x5c23f6):_0x5c23f6;_0x5c23f6=_0x9c3c8e[_0x3da605][_0x032c('0x76')]?_[_0x032c('0x75')](_0x2ef6a4[_0x9c3c8e[_0x3da605]['format']],'%s',_0x5c23f6):_0x5c23f6;if(_0x9c3c8e[_0x3da605][_0x032c('0x77')]){_0x10129f['group'](_0x5c23f6);}_0x9c3c8e[_0x3da605][_0x032c('0x78')]&&_0x10129f[_0x032c('0x38')](_0x5c23f6,_0x9c3c8e[_0x3da605][_0x032c('0x78')]==='DESC'?![]:!![]);_0x10129f[_0x032c('0x68')](_0x5c23f6,_0x9c3c8e[_0x3da605][_0x032c('0x89')]||_0x5c23f6);}if(_0x5617e2[_0x032c('0x7b')]){_0x5617e2[_0x032c('0x7b')]=JSON[_0x032c('0x7a')](_0x5617e2[_0x032c('0x7b')]);for(var _0x4d6157=0x0;_0x4d6157<_0x5617e2[_0x032c('0x7b')][_0x032c('0x36')];_0x4d6157+=0x1){if(_0x5617e2['joins'][_0x4d6157][_0x032c('0x3e')]&&_['includes'](_0x12add0,_0x5617e2['joins'][_0x4d6157]['type'])&&_0x5617e2['joins'][_0x4d6157]['parentKey']&&_0x5617e2[_0x032c('0x7b')][_0x4d6157]['foreignTable']&&_0x5617e2[_0x032c('0x7b')][_0x4d6157][_0x032c('0x7e')]){_0x10129f[_0x5617e2['joins'][_0x4d6157]['type']](_0x5617e2[_0x032c('0x7b')][_0x4d6157][_0x032c('0x7d')],null,util[_0x032c('0x76')]('%s.%s\x20=\x20%s.%s',_0x5617e2[_0x032c('0x80')],_0x5617e2[_0x032c('0x7b')][_0x4d6157]['parentKey'],_0x5617e2[_0x032c('0x7b')][_0x4d6157][_0x032c('0x7d')],_0x5617e2[_0x032c('0x7b')][_0x4d6157][_0x032c('0x7e')]));}}}if(_0x5617e2[_0x032c('0x81')]){_0x5617e2['conditions']=JSON[_0x032c('0x7a')](_0x5617e2['conditions']);_0x10129f[_0x032c('0x3a')](_0xe78ab5(_0x5617e2[_0x032c('0x81')]['group']));}_0x18aa24=_0x10129f[_0x032c('0x82')]();_0x10129f[_0x032c('0x1b')](_0x15fc2c);_0x10129f[_0x032c('0x1a')](0x0);logger[_0x032c('0x8a')](_0x032c('0x8b'),_0x10129f[_0x032c('0x83')]());return db[_0x032c('0x8c')]['query'](_0x10129f[_0x032c('0x83')](),{'type':db[_0x032c('0x8c')][_0x032c('0x84')][_0x032c('0x8d')]});}})[_0x032c('0x25')](function(){return{'sql':_0x18aa24['toString']()};})[_0x032c('0x25')](respondWithResult(_0x2ec8ec,null))[_0x032c('0x43')](handleError(_0x2ec8ec,null));};