27647e5b310bba5ff7f65bccc731bf16500ef747
[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 _0x8316=['status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','get','CustomReports','UserProfileResource','sendStatus','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','catch','show','params','include','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','preview','left_join','right_join','cross_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%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','rules','operator','group','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','field','replace','function','format','groupBy','joins','foreignTable','foreignKey','parentKey','conditions','parse','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20EMPTY','value','orderBy','DESC','%s.%s\x20=\x20%s.%s','clone','fullPath','%s-%s.%s','generate','output','csv','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','run','IS\x20NOT\x20NULL','alias','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH'];(function(_0x1e03a6,_0xf0349){var _0x295b64=function(_0x1ad0a5){while(--_0x1ad0a5){_0x1e03a6['push'](_0x1e03a6['shift']());}};_0x295b64(++_0xf0349);}(_0x8316,0x137));var _0x6831=function(_0x2ceeb6,_0x4113d0){_0x2ceeb6=_0x2ceeb6-0x0;var _0x149801=_0x8316[_0x2ceeb6];return _0x149801;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6831('0x0'));var zipdir=require(_0x6831('0x1'));var jsonpatch=require(_0x6831('0x2'));var rp=require(_0x6831('0x3'));var moment=require(_0x6831('0x4'));var BPromise=require(_0x6831('0x5'));var Mustache=require(_0x6831('0x6'));var util=require('util');var path=require(_0x6831('0x7'));var sox=require(_0x6831('0x8'));var csv=require(_0x6831('0x9'));var ejs=require(_0x6831('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6831('0xb'));var squel=require(_0x6831('0xc'));var crypto=require(_0x6831('0xd'));var jsforce=require(_0x6831('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x6831('0x9'));var querystring=require(_0x6831('0xf'));var Papa=require(_0x6831('0x10'));var Redis=require(_0x6831('0x11'));var authService=require(_0x6831('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x6831('0x13'));var hardwareService=require(_0x6831('0x14'));var logger=require(_0x6831('0x15'))(_0x6831('0x16'));var utils=require(_0x6831('0x17'));var config=require(_0x6831('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x6831('0x19'))['db'];var dbH=require('../../mysqldb')[_0x6831('0x1a')];function respondWithStatusCode(_0x211e0a,_0xaa7002){_0xaa7002=_0xaa7002||0xcc;return function(_0x3794da){if(_0x3794da){return _0x211e0a['sendStatus'](_0xaa7002);}return _0x211e0a[_0x6831('0x1b')](_0xaa7002)[_0x6831('0x1c')]();};}function respondWithResult(_0x2c7af7,_0x54ad61){_0x54ad61=_0x54ad61||0xc8;return function(_0x14bb30){if(_0x14bb30){return _0x2c7af7[_0x6831('0x1b')](_0x54ad61)[_0x6831('0x1d')](_0x14bb30);}};}function respondWithFilteredResult(_0x3efa33,_0x4a1cf3){return function(_0x5ee678){if(_0x5ee678){var _0x3bb220=typeof _0x4a1cf3['offset']===_0x6831('0x1e')&&typeof _0x4a1cf3[_0x6831('0x1f')]==='undefined';var _0x10feab=_0x5ee678[_0x6831('0x20')];var _0x2f0bec=_0x3bb220?0x0:_0x4a1cf3[_0x6831('0x21')];var _0xac9157=_0x3bb220?_0x5ee678[_0x6831('0x20')]:_0x4a1cf3['offset']+_0x4a1cf3[_0x6831('0x1f')];var _0x5a8506;if(_0xac9157>=_0x10feab){_0xac9157=_0x10feab;_0x5a8506=0xc8;}else{_0x5a8506=0xce;}_0x3efa33['status'](_0x5a8506);return _0x3efa33[_0x6831('0x22')](_0x6831('0x23'),_0x2f0bec+'-'+_0xac9157+'/'+_0x10feab)['json'](_0x5ee678);}return null;};}function patchUpdates(_0x3115cd){return function(_0x56eb93){try{jsonpatch[_0x6831('0x24')](_0x56eb93,_0x3115cd,!![]);}catch(_0x1f2ca6){return BPromise[_0x6831('0x25')](_0x1f2ca6);}return _0x56eb93['save']();};}function saveUpdates(_0x15f12,_0x59a5a4){return function(_0x3f0946){if(_0x3f0946){return _0x3f0946[_0x6831('0x26')](_0x15f12)[_0x6831('0x27')](function(_0x4e69b6){return _0x4e69b6;});}return null;};}function removeEntity(_0x58bf60,_0x2fba38){return function(_0x2ab671){if(_0x2ab671){return _0x2ab671['destroy']()[_0x6831('0x27')](function(){var _0x5d3029=_0x2ab671[_0x6831('0x28')]({'plain':!![]});var _0x7e53a8=_0x6831('0x29');return db[_0x6831('0x2a')]['destroy']({'where':{'type':_0x7e53a8,'resourceId':_0x5d3029['id']}})['then'](function(){return _0x2ab671;});})[_0x6831('0x27')](function(){_0x58bf60[_0x6831('0x1b')](0xcc)[_0x6831('0x1c')]();});}};}function handleEntityNotFound(_0x563293,_0x165c41){return function(_0x559c77){if(!_0x559c77){_0x563293[_0x6831('0x2b')](0x194);}return _0x559c77;};}function handleError(_0x57b03e,_0x344668){_0x344668=_0x344668||0x1f4;return function(_0x226532){logger['error'](_0x226532[_0x6831('0x2c')]);if(_0x226532[_0x6831('0x2d')]){delete _0x226532[_0x6831('0x2d')];}_0x57b03e[_0x6831('0x1b')](_0x344668)[_0x6831('0x2e')](_0x226532);};}exports[_0x6831('0x2f')]=function(_0x741fba,_0xab2204){var _0x172a1f={},_0x2cf760={},_0x3f4e5a={'count':0x0,'rows':[]};var _0x5933f8=_[_0x6831('0x30')](db[_0x6831('0x31')][_0x6831('0x32')],function(_0x4daf99){return{'name':_0x4daf99[_0x6831('0x33')],'type':_0x4daf99[_0x6831('0x34')][_0x6831('0x35')]};});_0x2cf760[_0x6831('0x36')]=_[_0x6831('0x30')](_0x5933f8,'name');_0x2cf760[_0x6831('0x37')]=_[_0x6831('0x38')](_0x741fba[_0x6831('0x37')]);_0x2cf760[_0x6831('0x39')]=_['intersection'](_0x2cf760[_0x6831('0x36')],_0x2cf760[_0x6831('0x37')]);_0x172a1f[_0x6831('0x3a')]=_[_0x6831('0x3b')](_0x2cf760[_0x6831('0x36')],qs[_0x6831('0x3c')](_0x741fba[_0x6831('0x37')]['fields']));_0x172a1f['attributes']=_0x172a1f[_0x6831('0x3a')][_0x6831('0x3d')]?_0x172a1f[_0x6831('0x3a')]:_0x2cf760['model'];if(!_0x741fba['query'][_0x6831('0x3e')](_0x6831('0x3f'))){_0x172a1f['limit']=qs[_0x6831('0x1f')](_0x741fba[_0x6831('0x37')][_0x6831('0x1f')]);_0x172a1f[_0x6831('0x21')]=qs['offset'](_0x741fba['query']['offset']);}_0x172a1f[_0x6831('0x40')]=qs['sort'](_0x741fba[_0x6831('0x37')][_0x6831('0x41')]);_0x172a1f[_0x6831('0x42')]=qs[_0x6831('0x39')](_['pick'](_0x741fba[_0x6831('0x37')],_0x2cf760[_0x6831('0x39')]),_0x5933f8);if(_0x741fba[_0x6831('0x37')][_0x6831('0x43')]){_0x172a1f[_0x6831('0x42')]=_[_0x6831('0x44')](_0x172a1f['where'],{'$or':_[_0x6831('0x30')](_0x5933f8,function(_0x3b3d68){if(_0x3b3d68[_0x6831('0x34')]!==_0x6831('0x45')){var _0x2b8ec8={};_0x2b8ec8[_0x3b3d68[_0x6831('0x2d')]]={'$like':'%'+_0x741fba[_0x6831('0x37')]['filter']+'%'};return _0x2b8ec8;}})});}_0x172a1f=_[_0x6831('0x44')]({},_0x172a1f,_0x741fba[_0x6831('0x46')]);var _0x4ce895={'where':_0x172a1f[_0x6831('0x42')]};return db['AnalyticCustomReport'][_0x6831('0x20')](_0x4ce895)['then'](function(_0x3b285b){_0x3f4e5a[_0x6831('0x20')]=_0x3b285b;if(_0x741fba[_0x6831('0x37')][_0x6831('0x47')]){_0x172a1f['include']=[{'all':!![]}];}return db[_0x6831('0x31')]['findAll'](_0x172a1f);})[_0x6831('0x27')](function(_0x30a2d1){_0x3f4e5a['rows']=_0x30a2d1;return _0x3f4e5a;})[_0x6831('0x27')](respondWithFilteredResult(_0xab2204,_0x172a1f))[_0x6831('0x48')](handleError(_0xab2204,null));};exports[_0x6831('0x49')]=function(_0x2dad61,_0x59054d){var _0x4ec4ba={'raw':![],'where':{'id':_0x2dad61[_0x6831('0x4a')]['id']}},_0x4e3d7e={};_0x4e3d7e[_0x6831('0x36')]=_[_0x6831('0x38')](db['AnalyticCustomReport'][_0x6831('0x32')]);_0x4e3d7e['query']=_[_0x6831('0x38')](_0x2dad61['query']);_0x4e3d7e[_0x6831('0x39')]=_[_0x6831('0x3b')](_0x4e3d7e[_0x6831('0x36')],_0x4e3d7e[_0x6831('0x37')]);_0x4ec4ba[_0x6831('0x3a')]=_[_0x6831('0x3b')](_0x4e3d7e[_0x6831('0x36')],qs[_0x6831('0x3c')](_0x2dad61[_0x6831('0x37')]['fields']));_0x4ec4ba['attributes']=_0x4ec4ba[_0x6831('0x3a')][_0x6831('0x3d')]?_0x4ec4ba[_0x6831('0x3a')]:_0x4e3d7e[_0x6831('0x36')];if(_0x2dad61[_0x6831('0x37')][_0x6831('0x47')]){_0x4ec4ba[_0x6831('0x4b')]=[{'all':!![]}];}_0x4ec4ba=_[_0x6831('0x44')]({},_0x4ec4ba,_0x2dad61[_0x6831('0x46')]);return db['AnalyticCustomReport']['find'](_0x4ec4ba)[_0x6831('0x27')](handleEntityNotFound(_0x59054d,null))['then'](respondWithResult(_0x59054d,null))['catch'](handleError(_0x59054d,null));};exports[_0x6831('0x4c')]=function(_0x346f65,_0x31aad2){return db[_0x6831('0x31')]['create'](_0x346f65['body'],{})[_0x6831('0x27')](function(_0x303e59){var _0x2b6457=_0x346f65[_0x6831('0x4d')]['get']({'plain':!![]});if(!_0x2b6457)throw new Error(_0x6831('0x4e'));if(_0x2b6457['role']===_0x6831('0x4d')){var _0x3a8728=_0x303e59[_0x6831('0x28')]({'plain':!![]});var _0x5101f1=_0x6831('0x4f');return db[_0x6831('0x50')][_0x6831('0x51')]({'where':{'name':_0x5101f1,'userProfileId':_0x2b6457['userProfileId']},'raw':!![]})[_0x6831('0x27')](function(_0x19781f){if(_0x19781f&&_0x19781f[_0x6831('0x52')]===0x0){return db['UserProfileResource']['create']({'name':_0x3a8728[_0x6831('0x2d')],'resourceId':_0x3a8728['id'],'type':_0x6831('0x29'),'sectionId':_0x19781f['id']},{})[_0x6831('0x27')](function(){return _0x303e59;});}else{return _0x303e59;}})[_0x6831('0x48')](function(_0x4ef32c){logger[_0x6831('0x53')](_0x6831('0x54'),_0x4ef32c);throw _0x4ef32c;});}return _0x303e59;})[_0x6831('0x27')](respondWithResult(_0x31aad2,0xc9))[_0x6831('0x48')](handleError(_0x31aad2,null));};exports[_0x6831('0x26')]=function(_0x26abe1,_0x3513b6){if(_0x26abe1['body']['id']){delete _0x26abe1['body']['id'];}return db['AnalyticCustomReport']['find']({'where':{'id':_0x26abe1[_0x6831('0x4a')]['id']}})[_0x6831('0x27')](handleEntityNotFound(_0x3513b6,null))[_0x6831('0x27')](saveUpdates(_0x26abe1[_0x6831('0x55')],null))[_0x6831('0x27')](respondWithResult(_0x3513b6,null))[_0x6831('0x48')](handleError(_0x3513b6,null));};exports['destroy']=function(_0xcace4c,_0x29d2b1){return db[_0x6831('0x31')]['find']({'where':{'id':_0xcace4c[_0x6831('0x4a')]['id']}})[_0x6831('0x27')](handleEntityNotFound(_0x29d2b1,null))['then'](removeEntity(_0x29d2b1,null))['catch'](handleError(_0x29d2b1,null));};exports[_0x6831('0x56')]=function(_0x1d25c0,_0xbb6664){var _0x229e98=0xa;var _0xa66740=['join',_0x6831('0x57'),_0x6831('0x58'),_0x6831('0x59')];var _0x3d96e6={'SUM':_0x6831('0x5a'),'COUNT':_0x6831('0x5b'),'COUNT DISTINCT':_0x6831('0x5c'),'MAX':_0x6831('0x5d'),'MIN':_0x6831('0x5e'),'AVG':_0x6831('0x5f'),'GROUP_CONCAT':_0x6831('0x60'),'GROUP_CONCAT ASC':_0x6831('0x61'),'GROUP_CONCAT DESC':_0x6831('0x62')};var _0x144ebc={'SEC_TO_TIME':_0x6831('0x63'),'DATE':_0x6831('0x64'),'HOUR':_0x6831('0x65'),'ROUND':_0x6831('0x66'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1d8b22=function(_0x2d829a){return!_[_0x6831('0x67')]([_0x6831('0x68'),'IS\x20NOT\x20NULL',_0x6831('0x69'),'IS\x20NOT\x20EMPTY'],_0x2d829a);};var _0x5e4369=function(_0x3fbf17){if(!_0x3fbf17||!_0x3fbf17[_0x6831('0x6a')][_0x6831('0x3d')]){return'';}for(var _0x4aaabd='(',_0x76279c=0x0;_0x76279c<_0x3fbf17[_0x6831('0x6a')][_0x6831('0x3d')];_0x76279c+=0x1){_0x76279c>0x0&&(_0x4aaabd+='\x20'+_0x3fbf17[_0x6831('0x6b')]+'\x20');_0x4aaabd+=_0x3fbf17[_0x6831('0x6a')][_0x76279c]['group']?_0x5e4369(_0x3fbf17[_0x6831('0x6a')][_0x76279c][_0x6831('0x6c')]):_0x3fbf17['rules'][_0x76279c]['field']+'\x20'+_0x3fbf17[_0x6831('0x6a')][_0x76279c][_0x6831('0x6d')]+(_0x1d8b22(_0x3fbf17[_0x6831('0x6a')][_0x76279c]['condition'])?'\x20'+_0x3fbf17[_0x6831('0x6a')][_0x76279c]['value']:'');}return _0x4aaabd+')';};var _0x2e0099={'where':{'id':_0x1d25c0[_0x6831('0x4a')]['id']}},_0x2de3f2,_0x537163,_0x206b59,_0x58cb0f,_0x404ea8;_0x2e0099=_[_0x6831('0x44')]({},_0x2e0099,_0x1d25c0[_0x6831('0x46')]);return db[_0x6831('0x31')][_0x6831('0x51')](_0x2e0099)[_0x6831('0x27')](function(_0x119895){if(_0x119895){_0x2de3f2=_0x119895;return _0x119895[_0x6831('0x6e')]();}return null;})[_0x6831('0x27')](function(_0x4e6f49){if(_0x4e6f49){if(!_0x4e6f49[_0x6831('0x3d')]){throw new db[(_0x6831('0x6f'))][(_0x6831('0x70'))](_0x6831('0x71'),0x193);}_0x537163=_0x4e6f49;return db[_0x6831('0x72')][_0x6831('0x73')]({'raw':!![]});}return null;})[_0x6831('0x27')](function(_0x384b34){if(_0x384b34){_0x206b59=_[_0x6831('0x74')](_0x384b34,'id');var _0x1f2fb7;var _0x393d7f=squel[_0x6831('0x75')]();_0x393d7f[_0x6831('0x76')](_0x2de3f2[_0x6831('0x77')]);for(var _0x53437a=0x0;_0x53437a<_0x537163[_0x6831('0x3d')];_0x53437a+=0x1){_0x1f2fb7=_0x537163[_0x53437a][_0x6831('0x78')]?_0x206b59[_0x537163[_0x53437a][_0x6831('0x78')]][_0x6831('0x79')]:_0x537163[_0x53437a][_0x6831('0x7a')];_0x1f2fb7=_0x537163[_0x53437a]['function']?_[_0x6831('0x7b')](_0x3d96e6[_0x537163[_0x53437a][_0x6831('0x7c')]],'%s',_0x1f2fb7):_0x1f2fb7;_0x1f2fb7=_0x537163[_0x53437a][_0x6831('0x7d')]?_['replace'](_0x144ebc[_0x537163[_0x53437a][_0x6831('0x7d')]],'%s',_0x1f2fb7):_0x1f2fb7;if(_0x537163[_0x53437a][_0x6831('0x7e')]){_0x393d7f['group'](_0x1f2fb7);}_0x537163[_0x53437a]['orderBy']&&_0x393d7f[_0x6831('0x40')](_0x1f2fb7,_0x537163[_0x53437a]['orderBy']==='DESC'?![]:!![]);_0x393d7f[_0x6831('0x7a')](_0x1f2fb7,_0x537163[_0x53437a]['alias']||_0x1f2fb7);}if(_0x2de3f2[_0x6831('0x7f')]){_0x2de3f2[_0x6831('0x7f')]=JSON['parse'](_0x2de3f2[_0x6831('0x7f')]);for(var _0x3d2278=0x0;_0x3d2278<_0x2de3f2['joins'][_0x6831('0x3d')];_0x3d2278+=0x1){if(_0x2de3f2['joins'][_0x3d2278][_0x6831('0x34')]&&_[_0x6831('0x67')](_0xa66740,_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x34')])&&_0x2de3f2['joins'][_0x3d2278]['parentKey']&&_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x80')]&&_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x81')]){_0x393d7f[_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x34')]](_0x2de3f2[_0x6831('0x7f')][_0x3d2278]['foreignTable'],null,util[_0x6831('0x7d')]('%s.%s\x20=\x20%s.%s',_0x2de3f2[_0x6831('0x77')],_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x82')],_0x2de3f2['joins'][_0x3d2278]['foreignTable'],_0x2de3f2[_0x6831('0x7f')][_0x3d2278][_0x6831('0x81')]));}}}if(_0x2de3f2['conditions']){_0x2de3f2[_0x6831('0x83')]=JSON[_0x6831('0x84')](_0x2de3f2[_0x6831('0x83')]);_0x393d7f[_0x6831('0x42')](_0x5e4369(_0x2de3f2[_0x6831('0x83')]['group']));}_0x404ea8=_0x393d7f['clone']();_0x393d7f[_0x6831('0x1f')](_0x229e98);_0x393d7f[_0x6831('0x21')](0x0);logger[_0x6831('0x85')](_0x6831('0x86'),_0x393d7f[_0x6831('0x87')]());return dbH[_0x6831('0x88')]['query'](_0x393d7f[_0x6831('0x87')](),{'type':dbH[_0x6831('0x88')][_0x6831('0x89')][_0x6831('0x8a')]});}})['then'](respondWithResult(_0xbb6664,null))['catch'](handleError(_0xbb6664,null));};function runReport(_0x8e4de7,_0x1e20ff,_0x5382ce){var _0x5deb08=_0x1e20ff[_0x6831('0x2d')];var _0x1464ac=0xa;var _0x3cd474=[_0x6831('0x8b'),_0x6831('0x57'),_0x6831('0x58'),'cross_join'];var _0x32fcb5={'SUM':_0x6831('0x5a'),'COUNT':_0x6831('0x5b'),'COUNT DISTINCT':_0x6831('0x5c'),'MAX':'MAX(%s)','MIN':_0x6831('0x5e'),'AVG':_0x6831('0x5f'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x6831('0x61'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x174e0b={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0x6831('0x65'),'ROUND':_0x6831('0x66'),'UNIX_TIMESTAMP':_0x6831('0x8c')};var _0x2aa50e=function(_0x53a5dc){return!_[_0x6831('0x67')]([_0x6831('0x68'),'IS\x20NOT\x20NULL',_0x6831('0x69'),_0x6831('0x8d')],_0x53a5dc);};var _0x128a3c=function(_0x396a0e){if(!_0x396a0e||!_0x396a0e[_0x6831('0x6a')][_0x6831('0x3d')]){return'';}for(var _0x3621fb='(',_0x33019f=0x0;_0x33019f<_0x396a0e['rules'][_0x6831('0x3d')];_0x33019f+=0x1){_0x33019f>0x0&&(_0x3621fb+='\x20'+_0x396a0e[_0x6831('0x6b')]+'\x20');_0x3621fb+=_0x396a0e[_0x6831('0x6a')][_0x33019f]['group']?_0x128a3c(_0x396a0e['rules'][_0x33019f][_0x6831('0x6c')]):_0x396a0e[_0x6831('0x6a')][_0x33019f]['field']+'\x20'+_0x396a0e['rules'][_0x33019f]['condition']+(_0x2aa50e(_0x396a0e[_0x6831('0x6a')][_0x33019f][_0x6831('0x6d')])?'\x20'+_0x396a0e[_0x6831('0x6a')][_0x33019f][_0x6831('0x8e')]:'');}return _0x3621fb+')';};var _0x394f8a={'where':{'id':_0x8e4de7['id']}},_0x195992,_0x3ae8cf,_0x150cae,_0xc43993,_0x4b4813;_0x394f8a=_[_0x6831('0x44')]({},_0x394f8a,_0x5382ce);return db[_0x6831('0x31')][_0x6831('0x51')](_0x394f8a)['then'](function(_0x1b2f29){if(_0x1b2f29){_0x195992=_0x1b2f29;return _0x1b2f29[_0x6831('0x6e')]();}return null;})[_0x6831('0x27')](function(_0x5a0a7d){if(_0x5a0a7d){if(!_0x5a0a7d[_0x6831('0x3d')]){throw new db[(_0x6831('0x6f'))][(_0x6831('0x70'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x3ae8cf=_0x5a0a7d;return db[_0x6831('0x72')][_0x6831('0x73')]({'raw':!![]});}return null;})[_0x6831('0x27')](function(_0x55b6cf){if(_0x55b6cf){_0x150cae=_[_0x6831('0x74')](_0x55b6cf,'id');var _0x4fdfa2;var _0x26857b=squel[_0x6831('0x75')]();_0x26857b['from'](_0x195992['table']);for(var _0x4c83a9=0x0;_0x4c83a9<_0x3ae8cf[_0x6831('0x3d')];_0x4c83a9+=0x1){_0x4fdfa2=_0x3ae8cf[_0x4c83a9][_0x6831('0x78')]?_0x150cae[_0x3ae8cf[_0x4c83a9][_0x6831('0x78')]][_0x6831('0x79')]:_0x3ae8cf[_0x4c83a9][_0x6831('0x7a')];_0x4fdfa2=_0x3ae8cf[_0x4c83a9]['function']?_[_0x6831('0x7b')](_0x32fcb5[_0x3ae8cf[_0x4c83a9]['function']],'%s',_0x4fdfa2):_0x4fdfa2;_0x4fdfa2=_0x3ae8cf[_0x4c83a9]['format']?_[_0x6831('0x7b')](_0x174e0b[_0x3ae8cf[_0x4c83a9][_0x6831('0x7d')]],'%s',_0x4fdfa2):_0x4fdfa2;if(_0x3ae8cf[_0x4c83a9][_0x6831('0x7e')]){_0x26857b[_0x6831('0x6c')](_0x4fdfa2);}_0x3ae8cf[_0x4c83a9][_0x6831('0x8f')]&&_0x26857b[_0x6831('0x40')](_0x4fdfa2,_0x3ae8cf[_0x4c83a9][_0x6831('0x8f')]===_0x6831('0x90')?![]:!![]);_0x26857b[_0x6831('0x7a')](_0x4fdfa2,_0x3ae8cf[_0x4c83a9]['alias']||_0x4fdfa2);}if(_0x195992[_0x6831('0x7f')]){_0x195992[_0x6831('0x7f')]=JSON[_0x6831('0x84')](_0x195992[_0x6831('0x7f')]);for(var _0x41ecd4=0x0;_0x41ecd4<_0x195992[_0x6831('0x7f')]['length'];_0x41ecd4+=0x1){if(_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x34')]&&_['includes'](_0x3cd474,_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x34')])&&_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x82')]&&_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x80')]&&_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x81')]){_0x26857b[_0x195992[_0x6831('0x7f')][_0x41ecd4]['type']](_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x80')],null,util[_0x6831('0x7d')](_0x6831('0x91'),_0x195992[_0x6831('0x77')],_0x195992[_0x6831('0x7f')][_0x41ecd4]['parentKey'],_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x80')],_0x195992[_0x6831('0x7f')][_0x41ecd4][_0x6831('0x81')]));}}}if(_0x195992[_0x6831('0x83')]){_0x195992[_0x6831('0x83')]=JSON['parse'](_0x195992[_0x6831('0x83')]);_0x26857b[_0x6831('0x42')](_0x128a3c(_0x195992[_0x6831('0x83')][_0x6831('0x6c')]));}_0x4b4813=_0x26857b[_0x6831('0x92')]();_0x26857b[_0x6831('0x1f')](_0x1464ac);_0x26857b[_0x6831('0x21')](0x0);return;}})[_0x6831('0x27')](function(){if(_0x1e20ff['output']==='web'){return null;}var _0x4c29ec=_[_0x6831('0x44')](_0x1e20ff,{'name':_0x1e20ff[_0x6831('0x93')]||_0x1e20ff[_0x6831('0x2d')]||_0x195992[_0x6831('0x2d')],'basename':_0x5deb08,'savename':util[_0x6831('0x7d')](_0x6831('0x94'),_0x1e20ff[_0x6831('0x2d')]||_0x195992[_0x6831('0x2d')],require('randomstring')[_0x6831('0x95')](0x4),_0x1e20ff[_0x6831('0x96')]||_0x6831('0x97')),'reportId':_0x195992['id'],'reportType':_0x6831('0x98')});return db[_0x6831('0x99')][_0x6831('0x4c')](_0x4c29ec,{'raw':!![]});})[_0x6831('0x27')](function(_0x463d93){if(_0x195992[_0x6831('0x77')]==='cdr'){_0x4b4813[_0x6831('0x42')](_0x195992[_0x6831('0x77')]+_0x6831('0x9a'),_0x1e20ff[_0x6831('0x9b')],_0x1e20ff[_0x6831('0x9c')]);}else{_0x4b4813[_0x6831('0x42')](_0x195992[_0x6831('0x77')]+_0x6831('0x9d'),_0x1e20ff[_0x6831('0x9b')],_0x1e20ff[_0x6831('0x9c')]);}if(_0x463d93){logger[_0x6831('0x9e')](_0x6831('0x9f'),_0x4b4813[_0x6831('0x87')]());require(_0x6831('0xa0'))[_0x6831('0xa1')](path[_0x6831('0x8b')](__dirname,_0x6831('0xa2'),_0x463d93['output']),[_0x463d93['id'],_0x4b4813[_0x6831('0x87')](),path[_0x6831('0x8b')](__dirname,_0x6831('0xa3'),_0x463d93[_0x6831('0xa4')]),_0x5deb08]);return _0x463d93;}else{var _0x491be9=squel['select']();_0x491be9[_0x6831('0x76')]('('+_0x4b4813[_0x6831('0x87')]()+')',_0x6831('0xa5'));_0x491be9[_0x6831('0x7a')]('COUNT(*)','count');_0x4b4813[_0x6831('0x1f')](_0x1e20ff[_0x6831('0x1f')]||_0x1464ac);_0x4b4813[_0x6831('0x21')](_0x1e20ff[_0x6831('0x21')]||0x0);return dbH['sequelize'][_0x6831('0x37')](_0x491be9['toString'](),{'type':dbH[_0x6831('0x88')][_0x6831('0x89')]['SELECT']})[_0x6831('0x27')](function(_0x3fe7ef){if(!_0x3fe7ef[_0x6831('0x3d')]){_0xc43993=0x0;}else{_0xc43993=_0x3fe7ef[0x0][_0x6831('0x20')]||0x0;}return dbH[_0x6831('0x88')][_0x6831('0x37')](_0x4b4813['toString'](),{'type':dbH[_0x6831('0x88')]['QueryTypes'][_0x6831('0x8a')]});})[_0x6831('0x27')](function(_0x331553){return{'rows':_0x331553||[],'count':_0xc43993};});}});}exports[_0x6831('0xa6')]=function(_0x354bf2,_0x53ada7){return runReport(_0x354bf2['params'],_0x354bf2[_0x6831('0x37')],_0x354bf2['options'])['then'](respondWithResult(_0x53ada7,null))[_0x6831('0x48')](handleError(_0x53ada7,null));};exports['runReport']=runReport;exports['query']=function(_0x15714a,_0x3391c7){var _0x55677f=0xa;var _0x3fc1d5=[_0x6831('0x8b'),_0x6831('0x57'),_0x6831('0x58'),'cross_join'];var _0x2fb362={'SUM':_0x6831('0x5a'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x6831('0x5d'),'MIN':_0x6831('0x5e'),'AVG':_0x6831('0x5f'),'GROUP_CONCAT':_0x6831('0x60'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x60ef95={'SEC_TO_TIME':_0x6831('0x63'),'DATE':_0x6831('0x64'),'HOUR':_0x6831('0x65'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x6831('0x8c')};var _0x493564=function(_0x345b75){return!_['includes']([_0x6831('0x68'),_0x6831('0xa7'),_0x6831('0x69'),_0x6831('0x8d')],_0x345b75);};var _0xaf2fe=function(_0x5cf0c6){if(!_0x5cf0c6||!_0x5cf0c6['rules'][_0x6831('0x3d')]){return'';}for(var _0x243c43='(',_0x24256f=0x0;_0x24256f<_0x5cf0c6[_0x6831('0x6a')][_0x6831('0x3d')];_0x24256f+=0x1){_0x24256f>0x0&&(_0x243c43+='\x20'+_0x5cf0c6[_0x6831('0x6b')]+'\x20');_0x243c43+=_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x6c')]?_0xaf2fe(_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x6c')]):_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x7a')]+'\x20'+_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x6d')]+(_0x493564(_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x6d')])?'\x20'+_0x5cf0c6[_0x6831('0x6a')][_0x24256f][_0x6831('0x8e')]:'');}return _0x243c43+')';};var _0x261f88={'where':{'id':_0x15714a[_0x6831('0x4a')]['id']}},_0x10bb75,_0xe9e7e6,_0x58f1c6,_0x1f9ae4,_0x244ece;_0x261f88=_[_0x6831('0x44')]({},_0x261f88,_0x15714a[_0x6831('0x46')]);return db[_0x6831('0x31')][_0x6831('0x51')](_0x261f88)[_0x6831('0x27')](function(_0x19cf99){if(_0x19cf99){_0x10bb75=_0x19cf99;return _0x19cf99['getFields']();}return null;})[_0x6831('0x27')](function(_0x209338){if(_0x209338){if(!_0x209338[_0x6831('0x3d')]){throw new db[(_0x6831('0x6f'))][(_0x6831('0x70'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0xe9e7e6=_0x209338;return db['AnalyticMetric'][_0x6831('0x73')]({'raw':!![]});}return null;})['then'](function(_0x3f45ad){if(_0x3f45ad){_0x58f1c6=_[_0x6831('0x74')](_0x3f45ad,'id');var _0x5124ae;var _0x109d0f=squel[_0x6831('0x75')]();_0x109d0f[_0x6831('0x76')](_0x10bb75['table']);for(var _0x444865=0x0;_0x444865<_0xe9e7e6[_0x6831('0x3d')];_0x444865+=0x1){_0x5124ae=_0xe9e7e6[_0x444865][_0x6831('0x78')]?_0x58f1c6[_0xe9e7e6[_0x444865][_0x6831('0x78')]][_0x6831('0x79')]:_0xe9e7e6[_0x444865]['field'];_0x5124ae=_0xe9e7e6[_0x444865]['function']?_[_0x6831('0x7b')](_0x2fb362[_0xe9e7e6[_0x444865][_0x6831('0x7c')]],'%s',_0x5124ae):_0x5124ae;_0x5124ae=_0xe9e7e6[_0x444865][_0x6831('0x7d')]?_[_0x6831('0x7b')](_0x60ef95[_0xe9e7e6[_0x444865][_0x6831('0x7d')]],'%s',_0x5124ae):_0x5124ae;if(_0xe9e7e6[_0x444865][_0x6831('0x7e')]){_0x109d0f[_0x6831('0x6c')](_0x5124ae);}_0xe9e7e6[_0x444865]['orderBy']&&_0x109d0f[_0x6831('0x40')](_0x5124ae,_0xe9e7e6[_0x444865][_0x6831('0x8f')]==='DESC'?![]:!![]);_0x109d0f[_0x6831('0x7a')](_0x5124ae,_0xe9e7e6[_0x444865][_0x6831('0xa8')]||_0x5124ae);}if(_0x10bb75[_0x6831('0x7f')]){_0x10bb75[_0x6831('0x7f')]=JSON[_0x6831('0x84')](_0x10bb75[_0x6831('0x7f')]);for(var _0x311fe0=0x0;_0x311fe0<_0x10bb75[_0x6831('0x7f')][_0x6831('0x3d')];_0x311fe0+=0x1){if(_0x10bb75[_0x6831('0x7f')][_0x311fe0][_0x6831('0x34')]&&_[_0x6831('0x67')](_0x3fc1d5,_0x10bb75[_0x6831('0x7f')][_0x311fe0]['type'])&&_0x10bb75[_0x6831('0x7f')][_0x311fe0]['parentKey']&&_0x10bb75[_0x6831('0x7f')][_0x311fe0]['foreignTable']&&_0x10bb75[_0x6831('0x7f')][_0x311fe0][_0x6831('0x81')]){_0x109d0f[_0x10bb75[_0x6831('0x7f')][_0x311fe0][_0x6831('0x34')]](_0x10bb75[_0x6831('0x7f')][_0x311fe0][_0x6831('0x80')],null,util[_0x6831('0x7d')](_0x6831('0x91'),_0x10bb75[_0x6831('0x77')],_0x10bb75[_0x6831('0x7f')][_0x311fe0]['parentKey'],_0x10bb75[_0x6831('0x7f')][_0x311fe0]['foreignTable'],_0x10bb75[_0x6831('0x7f')][_0x311fe0][_0x6831('0x81')]));}}}if(_0x10bb75[_0x6831('0x83')]){_0x10bb75[_0x6831('0x83')]=JSON[_0x6831('0x84')](_0x10bb75['conditions']);_0x109d0f[_0x6831('0x42')](_0xaf2fe(_0x10bb75[_0x6831('0x83')][_0x6831('0x6c')]));}_0x244ece=_0x109d0f[_0x6831('0x92')]();_0x109d0f[_0x6831('0x1f')](_0x55677f);_0x109d0f['offset'](0x0);logger['debug'](_0x6831('0x86'),_0x109d0f['toString']());return dbH['sequelize']['query'](_0x109d0f['toString'](),{'type':dbH[_0x6831('0x88')]['QueryTypes'][_0x6831('0x8a')]});}})[_0x6831('0x27')](function(){return{'sql':_0x244ece[_0x6831('0x87')]()};})['then'](respondWithResult(_0x3391c7,null))[_0x6831('0x48')](handleError(_0x3391c7,null));};