a96669de102552a96d301264fedf2bba17ac4d31
[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 _0x8adb=['user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','preview','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)','includes','IS\x20NULL','rules','length','group','field','condition','value','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','joins','parse','parentKey','foreignTable','foreignKey','conditions','debug','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','join','MIN(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','operator','keyBy','select','alias','%s.%s\x20=\x20%s.%s','clone','ValidationErrorItem','No\x20available\x20data','output','web','fullPath','%s-%s.%s','randomstring','generate','custom','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','../../components/export/','countTable','run','runReport','HOUR(%s)','ROUND(%s)','html-pdf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','dbH','sendStatus','end','status','json','count','offset','limit','Content-Range','apply','destroy','then','CustomReports','stack','name','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','create','body'];(function(_0x470d48,_0x29d996){var _0xbaee4c=function(_0x175dd1){while(--_0x175dd1){_0x470d48['push'](_0x470d48['shift']());}};_0xbaee4c(++_0x29d996);}(_0x8adb,0x1a8));var _0xb8ad=function(_0x5b38cc,_0x3a8e06){_0x5b38cc=_0x5b38cc-0x0;var _0x24513d=_0x8adb[_0x5b38cc];return _0x24513d;};'use strict';var pdf=require(_0xb8ad('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb8ad('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb8ad('0x2'));var BPromise=require(_0xb8ad('0x3'));var Mustache=require('mustache');var util=require(_0xb8ad('0x4'));var path=require(_0xb8ad('0x5'));var sox=require(_0xb8ad('0x6'));var csv=require(_0xb8ad('0x7'));var ejs=require(_0xb8ad('0x8'));var fs=require('fs');var _=require(_0xb8ad('0x9'));var squel=require(_0xb8ad('0xa'));var crypto=require(_0xb8ad('0xb'));var jsforce=require(_0xb8ad('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xb8ad('0x7'));var querystring=require(_0xb8ad('0xd'));var Papa=require(_0xb8ad('0xe'));var Redis=require(_0xb8ad('0xf'));var authService=require(_0xb8ad('0x10'));var qs=require(_0xb8ad('0x11'));var as=require(_0xb8ad('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb8ad('0x13'))(_0xb8ad('0x14'));var utils=require(_0xb8ad('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xb8ad('0x16'));var db=require(_0xb8ad('0x17'))['db'];var dbH=require(_0xb8ad('0x17'))[_0xb8ad('0x18')];function respondWithStatusCode(_0xabeacf,_0x53e6a4){_0x53e6a4=_0x53e6a4||0xcc;return function(_0x53074b){if(_0x53074b){return _0xabeacf[_0xb8ad('0x19')](_0x53e6a4);}return _0xabeacf['status'](_0x53e6a4)[_0xb8ad('0x1a')]();};}function respondWithResult(_0x9281b3,_0x4b8c71){_0x4b8c71=_0x4b8c71||0xc8;return function(_0x2bcb43){if(_0x2bcb43){return _0x9281b3[_0xb8ad('0x1b')](_0x4b8c71)[_0xb8ad('0x1c')](_0x2bcb43);}};}function respondWithFilteredResult(_0x51c2f0,_0x104cd0){return function(_0x56150c){if(_0x56150c){var _0x4a0215=_0x56150c[_0xb8ad('0x1d')],_0x5cd42b=_0x104cd0['offset'],_0x1a1ad5=_0x104cd0[_0xb8ad('0x1e')]+_0x104cd0[_0xb8ad('0x1f')],_0x52ceca;if(_0x1a1ad5>=_0x4a0215){_0x1a1ad5=_0x4a0215;_0x52ceca=0xc8;}else{_0x52ceca=0xce;}_0x51c2f0[_0xb8ad('0x1b')](_0x52ceca);return _0x51c2f0['set'](_0xb8ad('0x20'),_0x5cd42b+'-'+_0x1a1ad5+'/'+_0x4a0215)[_0xb8ad('0x1c')](_0x56150c);}return null;};}function patchUpdates(_0xdab278){return function(_0x3e195b){try{jsonpatch[_0xb8ad('0x21')](_0x3e195b,_0xdab278,!![]);}catch(_0x125774){return BPromise['reject'](_0x125774);}return _0x3e195b['save']();};}function saveUpdates(_0x4f0063,_0x3fcd83){return function(_0x369beb){if(_0x369beb){return _0x369beb['update'](_0x4f0063)['then'](function(_0x423432){return _0x423432;});}return null;};}function removeEntity(_0x3fd23a,_0x1a7d2d){return function(_0x5da5d4){if(_0x5da5d4){return _0x5da5d4[_0xb8ad('0x22')]()[_0xb8ad('0x23')](function(){var _0x51fb81=_0x5da5d4['get']({'plain':!![]});var _0x591943=_0xb8ad('0x24');return db['UserProfileResource'][_0xb8ad('0x22')]({'where':{'type':_0x591943,'resourceId':_0x51fb81['id']}})[_0xb8ad('0x23')](function(){return _0x5da5d4;});})[_0xb8ad('0x23')](function(){_0x3fd23a[_0xb8ad('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16ac90,_0xe019f4){return function(_0x397ead){if(!_0x397ead){_0x16ac90[_0xb8ad('0x19')](0x194);}return _0x397ead;};}function handleError(_0x1214c8,_0x1f4aeb){_0x1f4aeb=_0x1f4aeb||0x1f4;return function(_0x231f04){logger['error'](_0x231f04[_0xb8ad('0x25')]);if(_0x231f04[_0xb8ad('0x26')]){delete _0x231f04[_0xb8ad('0x26')];}_0x1214c8[_0xb8ad('0x1b')](_0x1f4aeb)['send'](_0x231f04);};}exports[_0xb8ad('0x27')]=function(_0x39153c,_0x381953){var _0x427bb6={},_0x71153b={},_0x13544d={'count':0x0,'rows':[]};var _0x210788=_[_0xb8ad('0x28')](db[_0xb8ad('0x29')][_0xb8ad('0x2a')],function(_0x199194){return{'name':_0x199194[_0xb8ad('0x2b')],'type':_0x199194[_0xb8ad('0x2c')]['key']};});_0x71153b['model']=_['map'](_0x210788,_0xb8ad('0x26'));_0x71153b[_0xb8ad('0x2d')]=_[_0xb8ad('0x2e')](_0x39153c[_0xb8ad('0x2d')]);_0x71153b[_0xb8ad('0x2f')]=_[_0xb8ad('0x30')](_0x71153b[_0xb8ad('0x31')],_0x71153b['query']);_0x427bb6[_0xb8ad('0x32')]=_['intersection'](_0x71153b[_0xb8ad('0x31')],qs[_0xb8ad('0x33')](_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x33')]));_0x427bb6[_0xb8ad('0x32')]=_0x427bb6['attributes']['length']?_0x427bb6[_0xb8ad('0x32')]:_0x71153b[_0xb8ad('0x31')];if(!_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x34')](_0xb8ad('0x35'))){_0x427bb6[_0xb8ad('0x1f')]=qs[_0xb8ad('0x1f')](_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x1f')]);_0x427bb6[_0xb8ad('0x1e')]=qs[_0xb8ad('0x1e')](_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x1e')]);}_0x427bb6[_0xb8ad('0x36')]=qs['sort'](_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x37')]);_0x427bb6[_0xb8ad('0x38')]=qs[_0xb8ad('0x2f')](_[_0xb8ad('0x39')](_0x39153c['query'],_0x71153b[_0xb8ad('0x2f')]),_0x210788);if(_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x3a')]){_0x427bb6[_0xb8ad('0x38')]=_[_0xb8ad('0x3b')](_0x427bb6[_0xb8ad('0x38')],{'$or':_['map'](_0x210788,function(_0x5da2c7){if(_0x5da2c7[_0xb8ad('0x2c')]!==_0xb8ad('0x3c')){var _0x396769={};_0x396769[_0x5da2c7[_0xb8ad('0x26')]]={'$like':'%'+_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x3a')]+'%'};return _0x396769;}})});}_0x427bb6=_[_0xb8ad('0x3b')]({},_0x427bb6,_0x39153c[_0xb8ad('0x3d')]);var _0x2cbdaa={'where':_0x427bb6[_0xb8ad('0x38')]};return db[_0xb8ad('0x29')][_0xb8ad('0x1d')](_0x2cbdaa)[_0xb8ad('0x23')](function(_0x5eb793){_0x13544d[_0xb8ad('0x1d')]=_0x5eb793;if(_0x39153c[_0xb8ad('0x2d')][_0xb8ad('0x3e')]){_0x427bb6[_0xb8ad('0x3f')]=[{'all':!![]}];}return db[_0xb8ad('0x29')][_0xb8ad('0x40')](_0x427bb6);})['then'](function(_0x1040ed){_0x13544d[_0xb8ad('0x41')]=_0x1040ed;return _0x13544d;})[_0xb8ad('0x23')](respondWithFilteredResult(_0x381953,_0x427bb6))['catch'](handleError(_0x381953,null));};exports[_0xb8ad('0x42')]=function(_0x47cb80,_0xe348d6){var _0x3f17de={'raw':![],'where':{'id':_0x47cb80[_0xb8ad('0x43')]['id']}},_0x51eeca={};_0x51eeca[_0xb8ad('0x31')]=_['keys'](db['AnalyticCustomReport'][_0xb8ad('0x2a')]);_0x51eeca[_0xb8ad('0x2d')]=_[_0xb8ad('0x2e')](_0x47cb80[_0xb8ad('0x2d')]);_0x51eeca[_0xb8ad('0x2f')]=_['intersection'](_0x51eeca[_0xb8ad('0x31')],_0x51eeca[_0xb8ad('0x2d')]);_0x3f17de[_0xb8ad('0x32')]=_[_0xb8ad('0x30')](_0x51eeca[_0xb8ad('0x31')],qs[_0xb8ad('0x33')](_0x47cb80[_0xb8ad('0x2d')]['fields']));_0x3f17de['attributes']=_0x3f17de['attributes']['length']?_0x3f17de[_0xb8ad('0x32')]:_0x51eeca['model'];if(_0x47cb80[_0xb8ad('0x2d')][_0xb8ad('0x3e')]){_0x3f17de[_0xb8ad('0x3f')]=[{'all':!![]}];}_0x3f17de=_['merge']({},_0x3f17de,_0x47cb80['options']);return db[_0xb8ad('0x29')][_0xb8ad('0x44')](_0x3f17de)['then'](handleEntityNotFound(_0xe348d6,null))[_0xb8ad('0x23')](respondWithResult(_0xe348d6,null))['catch'](handleError(_0xe348d6,null));};exports['create']=function(_0x369c61,_0x1184bf){return db[_0xb8ad('0x29')][_0xb8ad('0x45')](_0x369c61[_0xb8ad('0x46')],{})[_0xb8ad('0x23')](function(_0x16f75c){var _0x3f57b9=_0x369c61[_0xb8ad('0x47')][_0xb8ad('0x48')]({'plain':!![]});if(!_0x3f57b9)throw new Error(_0xb8ad('0x49'));if(_0x3f57b9[_0xb8ad('0x4a')]===_0xb8ad('0x47')){var _0x26b728=_0x16f75c['get']({'plain':!![]});var _0x208c75=_0xb8ad('0x4b');return db[_0xb8ad('0x4c')]['find']({'where':{'name':_0x208c75,'userProfileId':_0x3f57b9[_0xb8ad('0x4d')]},'raw':!![]})[_0xb8ad('0x23')](function(_0x4b0157){if(_0x4b0157&&_0x4b0157[_0xb8ad('0x4e')]===0x0){return db[_0xb8ad('0x4f')]['create']({'name':_0x26b728[_0xb8ad('0x26')],'resourceId':_0x26b728['id'],'type':_0xb8ad('0x24'),'sectionId':_0x4b0157['id']},{})[_0xb8ad('0x23')](function(){return _0x16f75c;});}else{return _0x16f75c;}})[_0xb8ad('0x50')](function(_0x126559){logger[_0xb8ad('0x51')](_0xb8ad('0x52'),_0x126559);throw _0x126559;});}return _0x16f75c;})[_0xb8ad('0x23')](respondWithResult(_0x1184bf,0xc9))[_0xb8ad('0x50')](handleError(_0x1184bf,null));};exports[_0xb8ad('0x53')]=function(_0x38aea6,_0x42f82f){if(_0x38aea6[_0xb8ad('0x46')]['id']){delete _0x38aea6[_0xb8ad('0x46')]['id'];}return db['AnalyticCustomReport'][_0xb8ad('0x44')]({'where':{'id':_0x38aea6['params']['id']}})[_0xb8ad('0x23')](handleEntityNotFound(_0x42f82f,null))[_0xb8ad('0x23')](saveUpdates(_0x38aea6['body'],null))[_0xb8ad('0x23')](respondWithResult(_0x42f82f,null))['catch'](handleError(_0x42f82f,null));};exports[_0xb8ad('0x22')]=function(_0x5e6a56,_0x4b6511){return db['AnalyticCustomReport'][_0xb8ad('0x44')]({'where':{'id':_0x5e6a56[_0xb8ad('0x43')]['id']}})['then'](handleEntityNotFound(_0x4b6511,null))['then'](removeEntity(_0x4b6511,null))[_0xb8ad('0x50')](handleError(_0x4b6511,null));};exports[_0xb8ad('0x54')]=function(_0x5bc73b,_0x5809fa){var _0x2cae88=0xa;var _0x581ff4=['join',_0xb8ad('0x55'),_0xb8ad('0x56'),'cross_join'];var _0x568972={'SUM':_0xb8ad('0x57'),'COUNT':_0xb8ad('0x58'),'COUNT DISTINCT':_0xb8ad('0x59'),'MAX':_0xb8ad('0x5a'),'MIN':'MIN(%s)','AVG':_0xb8ad('0x5b'),'GROUP_CONCAT':_0xb8ad('0x5c'),'GROUP_CONCAT ASC':_0xb8ad('0x5d'),'GROUP_CONCAT DESC':_0xb8ad('0x5e')};var _0x58c2b9={'SEC_TO_TIME':_0xb8ad('0x5f'),'DATE':_0xb8ad('0x60'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x3243c4=function(_0x314d45){return!_[_0xb8ad('0x61')]([_0xb8ad('0x62'),'IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0x314d45);};var _0x118118=function(_0x337e4a){if(!_0x337e4a||!_0x337e4a[_0xb8ad('0x63')][_0xb8ad('0x64')]){return'';}for(var _0x1529d5='(',_0x130776=0x0;_0x130776<_0x337e4a[_0xb8ad('0x63')]['length'];_0x130776+=0x1){_0x130776>0x0&&(_0x1529d5+='\x20'+_0x337e4a['operator']+'\x20');_0x1529d5+=_0x337e4a[_0xb8ad('0x63')][_0x130776][_0xb8ad('0x65')]?_0x118118(_0x337e4a['rules'][_0x130776][_0xb8ad('0x65')]):_0x337e4a[_0xb8ad('0x63')][_0x130776][_0xb8ad('0x66')]+'\x20'+_0x337e4a[_0xb8ad('0x63')][_0x130776]['condition']+(_0x3243c4(_0x337e4a['rules'][_0x130776][_0xb8ad('0x67')])?'\x20'+_0x337e4a[_0xb8ad('0x63')][_0x130776][_0xb8ad('0x68')]:'');}return _0x1529d5+')';};var _0x1502e7={'where':{'id':_0x5bc73b['params']['id']}},_0xf1b7a5,_0x673ad,_0x9df6c,_0x565f21,_0x5d5e28;_0x1502e7=_[_0xb8ad('0x3b')]({},_0x1502e7,_0x5bc73b['options']);return db[_0xb8ad('0x29')]['find'](_0x1502e7)['then'](function(_0x3374ac){if(_0x3374ac){_0xf1b7a5=_0x3374ac;return _0x3374ac[_0xb8ad('0x69')]();}return null;})[_0xb8ad('0x23')](function(_0xab08d7){if(_0xab08d7){if(!_0xab08d7[_0xb8ad('0x64')]){throw new db[(_0xb8ad('0x6a'))]['ValidationErrorItem'](_0xb8ad('0x6b'),0x193);}_0x673ad=_0xab08d7;return db[_0xb8ad('0x6c')][_0xb8ad('0x40')]({'raw':!![]});}return null;})[_0xb8ad('0x23')](function(_0x55a274){if(_0x55a274){_0x9df6c=_['keyBy'](_0x55a274,'id');var _0x16f558;var _0x4d51d6=squel['select']();_0x4d51d6[_0xb8ad('0x6d')](_0xf1b7a5[_0xb8ad('0x6e')]);for(var _0x35bc8d=0x0;_0x35bc8d<_0x673ad[_0xb8ad('0x64')];_0x35bc8d+=0x1){_0x16f558=_0x673ad[_0x35bc8d][_0xb8ad('0x6f')]?_0x9df6c[_0x673ad[_0x35bc8d][_0xb8ad('0x6f')]][_0xb8ad('0x70')]:_0x673ad[_0x35bc8d][_0xb8ad('0x66')];_0x16f558=_0x673ad[_0x35bc8d][_0xb8ad('0x71')]?_[_0xb8ad('0x72')](_0x568972[_0x673ad[_0x35bc8d][_0xb8ad('0x71')]],'%s',_0x16f558):_0x16f558;_0x16f558=_0x673ad[_0x35bc8d]['format']?_[_0xb8ad('0x72')](_0x58c2b9[_0x673ad[_0x35bc8d][_0xb8ad('0x73')]],'%s',_0x16f558):_0x16f558;if(_0x673ad[_0x35bc8d][_0xb8ad('0x74')]){_0x4d51d6[_0xb8ad('0x65')](_0x16f558);}_0x673ad[_0x35bc8d][_0xb8ad('0x75')]&&_0x4d51d6['order'](_0x16f558,_0x673ad[_0x35bc8d][_0xb8ad('0x75')]===_0xb8ad('0x76')?![]:!![]);_0x4d51d6[_0xb8ad('0x66')](_0x16f558,_0x673ad[_0x35bc8d]['alias']||_0x16f558);}if(_0xf1b7a5[_0xb8ad('0x77')]){_0xf1b7a5[_0xb8ad('0x77')]=JSON[_0xb8ad('0x78')](_0xf1b7a5[_0xb8ad('0x77')]);for(var _0x34414f=0x0;_0x34414f<_0xf1b7a5['joins'][_0xb8ad('0x64')];_0x34414f+=0x1){if(_0xf1b7a5[_0xb8ad('0x77')][_0x34414f][_0xb8ad('0x2c')]&&_[_0xb8ad('0x61')](_0x581ff4,_0xf1b7a5[_0xb8ad('0x77')][_0x34414f][_0xb8ad('0x2c')])&&_0xf1b7a5['joins'][_0x34414f][_0xb8ad('0x79')]&&_0xf1b7a5['joins'][_0x34414f][_0xb8ad('0x7a')]&&_0xf1b7a5['joins'][_0x34414f]['foreignKey']){_0x4d51d6[_0xf1b7a5[_0xb8ad('0x77')][_0x34414f][_0xb8ad('0x2c')]](_0xf1b7a5['joins'][_0x34414f]['foreignTable'],null,util[_0xb8ad('0x73')]('%s.%s\x20=\x20%s.%s',_0xf1b7a5[_0xb8ad('0x6e')],_0xf1b7a5[_0xb8ad('0x77')][_0x34414f][_0xb8ad('0x79')],_0xf1b7a5['joins'][_0x34414f]['foreignTable'],_0xf1b7a5[_0xb8ad('0x77')][_0x34414f][_0xb8ad('0x7b')]));}}}if(_0xf1b7a5[_0xb8ad('0x7c')]){_0xf1b7a5[_0xb8ad('0x7c')]=JSON[_0xb8ad('0x78')](_0xf1b7a5[_0xb8ad('0x7c')]);_0x4d51d6[_0xb8ad('0x38')](_0x118118(_0xf1b7a5[_0xb8ad('0x7c')][_0xb8ad('0x65')]));}_0x5d5e28=_0x4d51d6['clone']();_0x4d51d6['limit'](_0x2cae88);_0x4d51d6[_0xb8ad('0x1e')](0x0);logger[_0xb8ad('0x7d')](_0xb8ad('0x7e'),_0x4d51d6['toString']());return db[_0xb8ad('0x7f')]['query'](_0x4d51d6[_0xb8ad('0x80')](),{'type':db['sequelize'][_0xb8ad('0x81')][_0xb8ad('0x82')]});}})[_0xb8ad('0x23')](respondWithResult(_0x5809fa,null))[_0xb8ad('0x50')](handleError(_0x5809fa,null));};function runReport(_0x466951,_0x4cb910,_0x2f25dd){var _0xd30df2=_0x4cb910[_0xb8ad('0x26')];var _0x58514c=0xa;var _0x1b8a02=[_0xb8ad('0x83'),_0xb8ad('0x55'),'right_join','cross_join'];var _0x34c7d0={'SUM':_0xb8ad('0x57'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xb8ad('0x59'),'MAX':_0xb8ad('0x5a'),'MIN':_0xb8ad('0x84'),'AVG':_0xb8ad('0x5b'),'GROUP_CONCAT':_0xb8ad('0x5c'),'GROUP_CONCAT ASC':_0xb8ad('0x5d'),'GROUP_CONCAT DESC':_0xb8ad('0x5e')};var _0x386f8a={'SEC_TO_TIME':_0xb8ad('0x5f'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xb8ad('0x85')};var _0x58d1b6=function(_0x6916ec){return!_[_0xb8ad('0x61')]([_0xb8ad('0x62'),_0xb8ad('0x86'),_0xb8ad('0x87'),_0xb8ad('0x88')],_0x6916ec);};var _0x8e01cd=function(_0x3cec65){if(!_0x3cec65||!_0x3cec65[_0xb8ad('0x63')]['length']){return'';}for(var _0xc440c8='(',_0x3e9030=0x0;_0x3e9030<_0x3cec65[_0xb8ad('0x63')][_0xb8ad('0x64')];_0x3e9030+=0x1){_0x3e9030>0x0&&(_0xc440c8+='\x20'+_0x3cec65[_0xb8ad('0x89')]+'\x20');_0xc440c8+=_0x3cec65[_0xb8ad('0x63')][_0x3e9030]['group']?_0x8e01cd(_0x3cec65[_0xb8ad('0x63')][_0x3e9030]['group']):_0x3cec65[_0xb8ad('0x63')][_0x3e9030]['field']+'\x20'+_0x3cec65[_0xb8ad('0x63')][_0x3e9030][_0xb8ad('0x67')]+(_0x58d1b6(_0x3cec65['rules'][_0x3e9030]['condition'])?'\x20'+_0x3cec65[_0xb8ad('0x63')][_0x3e9030][_0xb8ad('0x68')]:'');}return _0xc440c8+')';};var _0x4dbfad={'where':{'id':_0x466951['id']}},_0x283e3b,_0x4f35a8,_0x5337ae,_0xc5934f,_0x5a5f81;_0x4dbfad=_[_0xb8ad('0x3b')]({},_0x4dbfad,_0x2f25dd);return db[_0xb8ad('0x29')]['find'](_0x4dbfad)[_0xb8ad('0x23')](function(_0x43684c){if(_0x43684c){_0x283e3b=_0x43684c;return _0x43684c[_0xb8ad('0x69')]();}return null;})[_0xb8ad('0x23')](function(_0x32a095){if(_0x32a095){if(!_0x32a095[_0xb8ad('0x64')]){throw new db['Sequelize']['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4f35a8=_0x32a095;return db['AnalyticMetric'][_0xb8ad('0x40')]({'raw':!![]});}return null;})[_0xb8ad('0x23')](function(_0x23c487){if(_0x23c487){_0x5337ae=_[_0xb8ad('0x8a')](_0x23c487,'id');var _0x2ff5b7;var _0x13814b=squel[_0xb8ad('0x8b')]();_0x13814b[_0xb8ad('0x6d')](_0x283e3b['table']);for(var _0x3de20b=0x0;_0x3de20b<_0x4f35a8['length'];_0x3de20b+=0x1){_0x2ff5b7=_0x4f35a8[_0x3de20b]['MetricId']?_0x5337ae[_0x4f35a8[_0x3de20b][_0xb8ad('0x6f')]][_0xb8ad('0x70')]:_0x4f35a8[_0x3de20b][_0xb8ad('0x66')];_0x2ff5b7=_0x4f35a8[_0x3de20b]['function']?_[_0xb8ad('0x72')](_0x34c7d0[_0x4f35a8[_0x3de20b][_0xb8ad('0x71')]],'%s',_0x2ff5b7):_0x2ff5b7;_0x2ff5b7=_0x4f35a8[_0x3de20b][_0xb8ad('0x73')]?_[_0xb8ad('0x72')](_0x386f8a[_0x4f35a8[_0x3de20b][_0xb8ad('0x73')]],'%s',_0x2ff5b7):_0x2ff5b7;if(_0x4f35a8[_0x3de20b]['groupBy']){_0x13814b['group'](_0x2ff5b7);}_0x4f35a8[_0x3de20b][_0xb8ad('0x75')]&&_0x13814b[_0xb8ad('0x36')](_0x2ff5b7,_0x4f35a8[_0x3de20b][_0xb8ad('0x75')]===_0xb8ad('0x76')?![]:!![]);_0x13814b['field'](_0x2ff5b7,_0x4f35a8[_0x3de20b][_0xb8ad('0x8c')]||_0x2ff5b7);}if(_0x283e3b[_0xb8ad('0x77')]){_0x283e3b['joins']=JSON[_0xb8ad('0x78')](_0x283e3b[_0xb8ad('0x77')]);for(var _0x1101b8=0x0;_0x1101b8<_0x283e3b[_0xb8ad('0x77')][_0xb8ad('0x64')];_0x1101b8+=0x1){if(_0x283e3b['joins'][_0x1101b8][_0xb8ad('0x2c')]&&_[_0xb8ad('0x61')](_0x1b8a02,_0x283e3b[_0xb8ad('0x77')][_0x1101b8][_0xb8ad('0x2c')])&&_0x283e3b[_0xb8ad('0x77')][_0x1101b8][_0xb8ad('0x79')]&&_0x283e3b[_0xb8ad('0x77')][_0x1101b8]['foreignTable']&&_0x283e3b[_0xb8ad('0x77')][_0x1101b8]['foreignKey']){_0x13814b[_0x283e3b[_0xb8ad('0x77')][_0x1101b8]['type']](_0x283e3b[_0xb8ad('0x77')][_0x1101b8][_0xb8ad('0x7a')],null,util[_0xb8ad('0x73')](_0xb8ad('0x8d'),_0x283e3b[_0xb8ad('0x6e')],_0x283e3b['joins'][_0x1101b8][_0xb8ad('0x79')],_0x283e3b['joins'][_0x1101b8][_0xb8ad('0x7a')],_0x283e3b['joins'][_0x1101b8]['foreignKey']));}}}if(_0x283e3b[_0xb8ad('0x7c')]){_0x283e3b[_0xb8ad('0x7c')]=JSON[_0xb8ad('0x78')](_0x283e3b['conditions']);_0x13814b[_0xb8ad('0x38')](_0x8e01cd(_0x283e3b[_0xb8ad('0x7c')][_0xb8ad('0x65')]));}_0x5a5f81=_0x13814b[_0xb8ad('0x8e')]();_0x13814b[_0xb8ad('0x1f')](_0x58514c);_0x13814b[_0xb8ad('0x1e')](0x0);logger[_0xb8ad('0x7d')](_0xb8ad('0x7e'),_0x13814b[_0xb8ad('0x80')]());return db[_0xb8ad('0x7f')][_0xb8ad('0x2d')](_0x13814b['toString'](),{'type':db['sequelize'][_0xb8ad('0x81')]['SELECT']});}})[_0xb8ad('0x23')](function(_0x5b03dd){if(!_0x5b03dd[_0xb8ad('0x64')]){throw new db[(_0xb8ad('0x6a'))][(_0xb8ad('0x8f'))](_0xb8ad('0x90'),0xcc);}if(_0x4cb910[_0xb8ad('0x91')]===_0xb8ad('0x92')){return null;}var _0x357ef2=_['merge'](_0x4cb910,{'name':_0x4cb910[_0xb8ad('0x93')]||_0x4cb910[_0xb8ad('0x26')]||_0x283e3b[_0xb8ad('0x26')],'basename':_0xd30df2,'savename':util['format'](_0xb8ad('0x94'),_0x4cb910[_0xb8ad('0x26')]||_0x283e3b[_0xb8ad('0x26')],require(_0xb8ad('0x95'))[_0xb8ad('0x96')](0x4),_0x4cb910[_0xb8ad('0x91')]||'csv'),'reportId':_0x283e3b['id'],'reportType':_0xb8ad('0x97')});return db['AnalyticExtractedReport'][_0xb8ad('0x45')](_0x357ef2,{'raw':!![]});})[_0xb8ad('0x23')](function(_0x343df0){if(_0x283e3b[_0xb8ad('0x6e')]===_0xb8ad('0x98')){_0x5a5f81[_0xb8ad('0x38')](_0x283e3b[_0xb8ad('0x6e')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x4cb910[_0xb8ad('0x99')],_0x4cb910[_0xb8ad('0x9a')]);}else{_0x5a5f81[_0xb8ad('0x38')](_0x283e3b[_0xb8ad('0x6e')]+_0xb8ad('0x9b'),_0x4cb910[_0xb8ad('0x99')],_0x4cb910['endDate']);}if(_0x343df0){logger[_0xb8ad('0x9c')](_0xb8ad('0x9d'),_0x5a5f81['toString']());require(_0xb8ad('0x9e'))['fork'](path[_0xb8ad('0x83')](__dirname,_0xb8ad('0x9f'),_0x343df0['output']),[_0x343df0['id'],_0x5a5f81[_0xb8ad('0x80')](),path[_0xb8ad('0x83')](__dirname,'../../files/reports',_0x343df0['savename']),_0xd30df2]);return _0x343df0;}else{var _0x52a3b6=squel[_0xb8ad('0x8b')]();_0x52a3b6[_0xb8ad('0x6d')]('('+_0x5a5f81[_0xb8ad('0x80')]()+')',_0xb8ad('0xa0'));_0x52a3b6[_0xb8ad('0x66')]('COUNT(*)',_0xb8ad('0x1d'));_0x5a5f81[_0xb8ad('0x1f')](_0x4cb910[_0xb8ad('0x1f')]||_0x58514c);_0x5a5f81[_0xb8ad('0x1e')](_0x4cb910[_0xb8ad('0x1e')]||0x0);return dbH[_0xb8ad('0x7f')][_0xb8ad('0x2d')](_0x52a3b6[_0xb8ad('0x80')](),{'type':dbH['sequelize']['QueryTypes'][_0xb8ad('0x82')]})[_0xb8ad('0x23')](function(_0x35a7ea){if(!_0x35a7ea[_0xb8ad('0x64')]){_0xc5934f=0x0;}else{_0xc5934f=_0x35a7ea[0x0][_0xb8ad('0x1d')]||0x0;}return dbH['sequelize']['query'](_0x5a5f81[_0xb8ad('0x80')](),{'type':dbH[_0xb8ad('0x7f')]['QueryTypes'][_0xb8ad('0x82')]});})['then'](function(_0x4b0a1e){return{'rows':_0x4b0a1e||[],'count':_0xc5934f};});}});}exports[_0xb8ad('0xa1')]=function(_0x385662,_0x2eebb0){return runReport(_0x385662[_0xb8ad('0x43')],_0x385662[_0xb8ad('0x2d')],_0x385662[_0xb8ad('0x3d')])[_0xb8ad('0x23')](respondWithResult(_0x2eebb0,null))[_0xb8ad('0x50')](handleError(_0x2eebb0,null));};exports[_0xb8ad('0xa2')]=runReport;exports[_0xb8ad('0x2d')]=function(_0x595b8e,_0x5a7aa7){var _0x25b6bc=0xa;var _0x455677=[_0xb8ad('0x83'),'left_join',_0xb8ad('0x56'),'cross_join'];var _0x4a625a={'SUM':_0xb8ad('0x57'),'COUNT':_0xb8ad('0x58'),'COUNT DISTINCT':_0xb8ad('0x59'),'MAX':_0xb8ad('0x5a'),'MIN':_0xb8ad('0x84'),'AVG':_0xb8ad('0x5b'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xb8ad('0x5e')};var _0x4ffb23={'SEC_TO_TIME':_0xb8ad('0x5f'),'DATE':_0xb8ad('0x60'),'HOUR':_0xb8ad('0xa3'),'ROUND':_0xb8ad('0xa4'),'UNIX_TIMESTAMP':_0xb8ad('0x85')};var _0x3f976f=function(_0xb98a72){return!_[_0xb8ad('0x61')]([_0xb8ad('0x62'),'IS\x20NOT\x20NULL',_0xb8ad('0x87'),_0xb8ad('0x88')],_0xb98a72);};var _0x4a5ee4=function(_0x272d75){if(!_0x272d75||!_0x272d75[_0xb8ad('0x63')][_0xb8ad('0x64')]){return'';}for(var _0x27074d='(',_0x518f05=0x0;_0x518f05<_0x272d75[_0xb8ad('0x63')][_0xb8ad('0x64')];_0x518f05+=0x1){_0x518f05>0x0&&(_0x27074d+='\x20'+_0x272d75[_0xb8ad('0x89')]+'\x20');_0x27074d+=_0x272d75[_0xb8ad('0x63')][_0x518f05][_0xb8ad('0x65')]?_0x4a5ee4(_0x272d75[_0xb8ad('0x63')][_0x518f05]['group']):_0x272d75['rules'][_0x518f05][_0xb8ad('0x66')]+'\x20'+_0x272d75[_0xb8ad('0x63')][_0x518f05][_0xb8ad('0x67')]+(_0x3f976f(_0x272d75['rules'][_0x518f05][_0xb8ad('0x67')])?'\x20'+_0x272d75[_0xb8ad('0x63')][_0x518f05][_0xb8ad('0x68')]:'');}return _0x27074d+')';};var _0x27e972={'where':{'id':_0x595b8e[_0xb8ad('0x43')]['id']}},_0x3ac96c,_0x27c44d,_0x12fc03,_0x52daac,_0x5da4e2;_0x27e972=_[_0xb8ad('0x3b')]({},_0x27e972,_0x595b8e[_0xb8ad('0x3d')]);return db[_0xb8ad('0x29')]['find'](_0x27e972)[_0xb8ad('0x23')](function(_0x65250e){if(_0x65250e){_0x3ac96c=_0x65250e;return _0x65250e[_0xb8ad('0x69')]();}return null;})[_0xb8ad('0x23')](function(_0x264b4b){if(_0x264b4b){if(!_0x264b4b[_0xb8ad('0x64')]){throw new db[(_0xb8ad('0x6a'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x27c44d=_0x264b4b;return db[_0xb8ad('0x6c')][_0xb8ad('0x40')]({'raw':!![]});}return null;})['then'](function(_0x296cf7){if(_0x296cf7){_0x12fc03=_[_0xb8ad('0x8a')](_0x296cf7,'id');var _0x12e4a9;var _0x3087c3=squel[_0xb8ad('0x8b')]();_0x3087c3['from'](_0x3ac96c[_0xb8ad('0x6e')]);for(var _0x566aee=0x0;_0x566aee<_0x27c44d['length'];_0x566aee+=0x1){_0x12e4a9=_0x27c44d[_0x566aee]['MetricId']?_0x12fc03[_0x27c44d[_0x566aee]['MetricId']]['metric']:_0x27c44d[_0x566aee]['field'];_0x12e4a9=_0x27c44d[_0x566aee][_0xb8ad('0x71')]?_['replace'](_0x4a625a[_0x27c44d[_0x566aee]['function']],'%s',_0x12e4a9):_0x12e4a9;_0x12e4a9=_0x27c44d[_0x566aee][_0xb8ad('0x73')]?_[_0xb8ad('0x72')](_0x4ffb23[_0x27c44d[_0x566aee][_0xb8ad('0x73')]],'%s',_0x12e4a9):_0x12e4a9;if(_0x27c44d[_0x566aee][_0xb8ad('0x74')]){_0x3087c3[_0xb8ad('0x65')](_0x12e4a9);}_0x27c44d[_0x566aee][_0xb8ad('0x75')]&&_0x3087c3[_0xb8ad('0x36')](_0x12e4a9,_0x27c44d[_0x566aee][_0xb8ad('0x75')]===_0xb8ad('0x76')?![]:!![]);_0x3087c3[_0xb8ad('0x66')](_0x12e4a9,_0x27c44d[_0x566aee]['alias']||_0x12e4a9);}if(_0x3ac96c['joins']){_0x3ac96c[_0xb8ad('0x77')]=JSON[_0xb8ad('0x78')](_0x3ac96c[_0xb8ad('0x77')]);for(var _0x507eee=0x0;_0x507eee<_0x3ac96c[_0xb8ad('0x77')]['length'];_0x507eee+=0x1){if(_0x3ac96c[_0xb8ad('0x77')][_0x507eee][_0xb8ad('0x2c')]&&_[_0xb8ad('0x61')](_0x455677,_0x3ac96c['joins'][_0x507eee][_0xb8ad('0x2c')])&&_0x3ac96c['joins'][_0x507eee][_0xb8ad('0x79')]&&_0x3ac96c[_0xb8ad('0x77')][_0x507eee][_0xb8ad('0x7a')]&&_0x3ac96c['joins'][_0x507eee][_0xb8ad('0x7b')]){_0x3087c3[_0x3ac96c[_0xb8ad('0x77')][_0x507eee]['type']](_0x3ac96c[_0xb8ad('0x77')][_0x507eee]['foreignTable'],null,util[_0xb8ad('0x73')](_0xb8ad('0x8d'),_0x3ac96c[_0xb8ad('0x6e')],_0x3ac96c[_0xb8ad('0x77')][_0x507eee][_0xb8ad('0x79')],_0x3ac96c['joins'][_0x507eee][_0xb8ad('0x7a')],_0x3ac96c[_0xb8ad('0x77')][_0x507eee][_0xb8ad('0x7b')]));}}}if(_0x3ac96c[_0xb8ad('0x7c')]){_0x3ac96c[_0xb8ad('0x7c')]=JSON[_0xb8ad('0x78')](_0x3ac96c[_0xb8ad('0x7c')]);_0x3087c3[_0xb8ad('0x38')](_0x4a5ee4(_0x3ac96c['conditions'][_0xb8ad('0x65')]));}_0x5da4e2=_0x3087c3[_0xb8ad('0x8e')]();_0x3087c3[_0xb8ad('0x1f')](_0x25b6bc);_0x3087c3['offset'](0x0);logger[_0xb8ad('0x7d')]('Limited\x20Query:',_0x3087c3[_0xb8ad('0x80')]());return db[_0xb8ad('0x7f')][_0xb8ad('0x2d')](_0x3087c3['toString'](),{'type':db[_0xb8ad('0x7f')]['QueryTypes'][_0xb8ad('0x82')]});}})[_0xb8ad('0x23')](function(){return{'sql':_0x5da4e2['toString']()};})[_0xb8ad('0x23')](respondWithResult(_0x5a7aa7,null))[_0xb8ad('0x50')](handleError(_0x5a7aa7,null));};