Built motion from commit 9d0783e6.|2.6.13
[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 _0xd978=['IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','getFields','Sequelize','AnalyticMetric','keyBy','select','table','MetricId','metric','field','function','replace','format','groupBy','orderBy','DESC','alias','joins','parse','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','parentKey','conditions','clone','debug','sequelize','toString','QueryTypes','SELECT','MIN(%s)','UNIX_TIMESTAMP(%s)','value','ValidationErrorItem','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','Run\x20Query:','fork','../../components/export/','savename','from','countTable','COUNT(*)','Please\x20insert\x20at\x20least\x20one\x20field','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','dbH','status','end','offset','limit','count','Content-Range','json','apply','reject','save','update','destroy','then','get','CustomReports','sendStatus','error','stack','send','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','UserProfileResource','params','preview','join','left_join','right_join','cross_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'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xd978,0x186));var _0x8d97=function(_0x269ee8,_0x477226){_0x269ee8=_0x269ee8-0x0;var _0x4d98bd=_0xd978[_0x269ee8];return _0x4d98bd;};'use strict';var emlformat=require(_0x8d97('0x0'));var rimraf=require(_0x8d97('0x1'));var zipdir=require(_0x8d97('0x2'));var jsonpatch=require(_0x8d97('0x3'));var rp=require(_0x8d97('0x4'));var moment=require(_0x8d97('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x8d97('0x6'));var util=require(_0x8d97('0x7'));var path=require('path');var sox=require(_0x8d97('0x8'));var csv=require(_0x8d97('0x9'));var ejs=require(_0x8d97('0xa'));var fs=require('fs');var fs_extra=require(_0x8d97('0xb'));var _=require(_0x8d97('0xc'));var squel=require('squel');var crypto=require(_0x8d97('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x8d97('0xe'));var toCsv=require(_0x8d97('0x9'));var querystring=require(_0x8d97('0xf'));var Papa=require(_0x8d97('0x10'));var Redis=require('ioredis');var authService=require(_0x8d97('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8d97('0x12'));var hardwareService=require(_0x8d97('0x13'));var logger=require(_0x8d97('0x14'))(_0x8d97('0x15'));var utils=require(_0x8d97('0x16'));var config=require(_0x8d97('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var dbH=require(_0x8d97('0x18'))[_0x8d97('0x19')];function respondWithStatusCode(_0x1273d9,_0x47031d){_0x47031d=_0x47031d||0xcc;return function(_0x537838){if(_0x537838){return _0x1273d9['sendStatus'](_0x47031d);}return _0x1273d9[_0x8d97('0x1a')](_0x47031d)[_0x8d97('0x1b')]();};}function respondWithResult(_0x4a45fd,_0x4c77dd){_0x4c77dd=_0x4c77dd||0xc8;return function(_0x201443){if(_0x201443){return _0x4a45fd[_0x8d97('0x1a')](_0x4c77dd)['json'](_0x201443);}};}function respondWithFilteredResult(_0x2fb49c,_0xf30378){return function(_0x2df358){if(_0x2df358){var _0x46462b=typeof _0xf30378[_0x8d97('0x1c')]==='undefined'&&typeof _0xf30378[_0x8d97('0x1d')]==='undefined';var _0x35425c=_0x2df358[_0x8d97('0x1e')];var _0x4130aa=_0x46462b?0x0:_0xf30378['offset'];var _0x2e73b5=_0x46462b?_0x2df358[_0x8d97('0x1e')]:_0xf30378[_0x8d97('0x1c')]+_0xf30378[_0x8d97('0x1d')];var _0x39a833;if(_0x2e73b5>=_0x35425c){_0x2e73b5=_0x35425c;_0x39a833=0xc8;}else{_0x39a833=0xce;}_0x2fb49c[_0x8d97('0x1a')](_0x39a833);return _0x2fb49c['set'](_0x8d97('0x1f'),_0x4130aa+'-'+_0x2e73b5+'/'+_0x35425c)[_0x8d97('0x20')](_0x2df358);}return null;};}function patchUpdates(_0x194161){return function(_0x1210fa){try{jsonpatch[_0x8d97('0x21')](_0x1210fa,_0x194161,!![]);}catch(_0x5e31e5){return BPromise[_0x8d97('0x22')](_0x5e31e5);}return _0x1210fa[_0x8d97('0x23')]();};}function saveUpdates(_0x2b90f7,_0x1fa54d){return function(_0x1d2623){if(_0x1d2623){return _0x1d2623[_0x8d97('0x24')](_0x2b90f7)['then'](function(_0x720d0d){return _0x720d0d;});}return null;};}function removeEntity(_0x1ba65b,_0x20962a){return function(_0x127e39){if(_0x127e39){return _0x127e39[_0x8d97('0x25')]()[_0x8d97('0x26')](function(){var _0x59bf41=_0x127e39[_0x8d97('0x27')]({'plain':!![]});var _0x11ac11=_0x8d97('0x28');return db['UserProfileResource']['destroy']({'where':{'type':_0x11ac11,'resourceId':_0x59bf41['id']}})[_0x8d97('0x26')](function(){return _0x127e39;});})[_0x8d97('0x26')](function(){_0x1ba65b['status'](0xcc)[_0x8d97('0x1b')]();});}};}function handleEntityNotFound(_0x39593e,_0x31c914){return function(_0x3751f5){if(!_0x3751f5){_0x39593e[_0x8d97('0x29')](0x194);}return _0x3751f5;};}function handleError(_0x20ffa3,_0x8282c6){_0x8282c6=_0x8282c6||0x1f4;return function(_0x40744d){logger[_0x8d97('0x2a')](_0x40744d[_0x8d97('0x2b')]);if(_0x40744d['name']){delete _0x40744d['name'];}_0x20ffa3[_0x8d97('0x1a')](_0x8282c6)[_0x8d97('0x2c')](_0x40744d);};}exports[_0x8d97('0x2d')]=function(_0x257a77,_0x120e3b){var _0x2bf51d={},_0x42a5eb={},_0x45828b={'count':0x0,'rows':[]};var _0x8e37ec=_[_0x8d97('0x2e')](db[_0x8d97('0x2f')][_0x8d97('0x30')],function(_0x4c0f88){return{'name':_0x4c0f88[_0x8d97('0x31')],'type':_0x4c0f88[_0x8d97('0x32')]['key']};});_0x42a5eb[_0x8d97('0x33')]=_[_0x8d97('0x2e')](_0x8e37ec,_0x8d97('0x34'));_0x42a5eb[_0x8d97('0x35')]=_[_0x8d97('0x36')](_0x257a77[_0x8d97('0x35')]);_0x42a5eb[_0x8d97('0x37')]=_[_0x8d97('0x38')](_0x42a5eb['model'],_0x42a5eb['query']);_0x2bf51d['attributes']=_[_0x8d97('0x38')](_0x42a5eb[_0x8d97('0x33')],qs[_0x8d97('0x39')](_0x257a77[_0x8d97('0x35')][_0x8d97('0x39')]));_0x2bf51d['attributes']=_0x2bf51d[_0x8d97('0x3a')][_0x8d97('0x3b')]?_0x2bf51d[_0x8d97('0x3a')]:_0x42a5eb[_0x8d97('0x33')];if(!_0x257a77[_0x8d97('0x35')][_0x8d97('0x3c')](_0x8d97('0x3d'))){_0x2bf51d[_0x8d97('0x1d')]=qs[_0x8d97('0x1d')](_0x257a77['query'][_0x8d97('0x1d')]);_0x2bf51d['offset']=qs[_0x8d97('0x1c')](_0x257a77[_0x8d97('0x35')][_0x8d97('0x1c')]);}_0x2bf51d[_0x8d97('0x3e')]=qs[_0x8d97('0x3f')](_0x257a77[_0x8d97('0x35')][_0x8d97('0x3f')]);_0x2bf51d[_0x8d97('0x40')]=qs['filters'](_[_0x8d97('0x41')](_0x257a77[_0x8d97('0x35')],_0x42a5eb['filters']),_0x8e37ec);if(_0x257a77['query'][_0x8d97('0x42')]){_0x2bf51d[_0x8d97('0x40')]=_[_0x8d97('0x43')](_0x2bf51d[_0x8d97('0x40')],{'$or':_[_0x8d97('0x2e')](_0x8e37ec,function(_0x32fb7d){if(_0x32fb7d[_0x8d97('0x32')]!==_0x8d97('0x44')){var _0x3294a6={};_0x3294a6[_0x32fb7d[_0x8d97('0x34')]]={'$like':'%'+_0x257a77['query'][_0x8d97('0x42')]+'%'};return _0x3294a6;}})});}_0x2bf51d=_[_0x8d97('0x43')]({},_0x2bf51d,_0x257a77[_0x8d97('0x45')]);var _0x11212f={'where':_0x2bf51d[_0x8d97('0x40')]};return db[_0x8d97('0x2f')]['count'](_0x11212f)['then'](function(_0xda83b0){_0x45828b[_0x8d97('0x1e')]=_0xda83b0;if(_0x257a77[_0x8d97('0x35')][_0x8d97('0x46')]){_0x2bf51d[_0x8d97('0x47')]=[{'all':!![]}];}return db[_0x8d97('0x2f')][_0x8d97('0x48')](_0x2bf51d);})['then'](function(_0x428540){_0x45828b['rows']=_0x428540;return _0x45828b;})[_0x8d97('0x26')](respondWithFilteredResult(_0x120e3b,_0x2bf51d))[_0x8d97('0x49')](handleError(_0x120e3b,null));};exports[_0x8d97('0x4a')]=function(_0x2688be,_0x408c22){var _0xe431a2={'raw':![],'where':{'id':_0x2688be['params']['id']}},_0x1a883e={};_0x1a883e['model']=_[_0x8d97('0x36')](db[_0x8d97('0x2f')]['rawAttributes']);_0x1a883e[_0x8d97('0x35')]=_[_0x8d97('0x36')](_0x2688be[_0x8d97('0x35')]);_0x1a883e[_0x8d97('0x37')]=_['intersection'](_0x1a883e[_0x8d97('0x33')],_0x1a883e[_0x8d97('0x35')]);_0xe431a2[_0x8d97('0x3a')]=_[_0x8d97('0x38')](_0x1a883e[_0x8d97('0x33')],qs[_0x8d97('0x39')](_0x2688be[_0x8d97('0x35')][_0x8d97('0x39')]));_0xe431a2[_0x8d97('0x3a')]=_0xe431a2[_0x8d97('0x3a')][_0x8d97('0x3b')]?_0xe431a2[_0x8d97('0x3a')]:_0x1a883e[_0x8d97('0x33')];if(_0x2688be['query'][_0x8d97('0x46')]){_0xe431a2[_0x8d97('0x47')]=[{'all':!![]}];}_0xe431a2=_[_0x8d97('0x43')]({},_0xe431a2,_0x2688be[_0x8d97('0x45')]);return db['AnalyticCustomReport'][_0x8d97('0x4b')](_0xe431a2)[_0x8d97('0x26')](handleEntityNotFound(_0x408c22,null))[_0x8d97('0x26')](respondWithResult(_0x408c22,null))[_0x8d97('0x49')](handleError(_0x408c22,null));};exports['create']=function(_0x21bce2,_0x36a086){return db[_0x8d97('0x2f')][_0x8d97('0x4c')](_0x21bce2[_0x8d97('0x4d')],{})[_0x8d97('0x26')](function(_0x35ae34){var _0x3dcfc9=_0x21bce2[_0x8d97('0x4e')]['get']({'plain':!![]});if(!_0x3dcfc9)throw new Error(_0x8d97('0x4f'));if(_0x3dcfc9[_0x8d97('0x50')]===_0x8d97('0x4e')){var _0x1ae33f=_0x35ae34[_0x8d97('0x27')]({'plain':!![]});var _0x2548b3=_0x8d97('0x51');return db[_0x8d97('0x52')][_0x8d97('0x4b')]({'where':{'name':_0x2548b3,'userProfileId':_0x3dcfc9[_0x8d97('0x53')]},'raw':!![]})[_0x8d97('0x26')](function(_0x8ad7ee){if(_0x8ad7ee&&_0x8ad7ee['autoAssociation']===0x0){return db[_0x8d97('0x54')][_0x8d97('0x4c')]({'name':_0x1ae33f[_0x8d97('0x34')],'resourceId':_0x1ae33f['id'],'type':_0x8d97('0x28'),'sectionId':_0x8ad7ee['id']},{})['then'](function(){return _0x35ae34;});}else{return _0x35ae34;}})[_0x8d97('0x49')](function(_0x1c2f11){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c2f11);throw _0x1c2f11;});}return _0x35ae34;})['then'](respondWithResult(_0x36a086,0xc9))[_0x8d97('0x49')](handleError(_0x36a086,null));};exports[_0x8d97('0x24')]=function(_0x26a804,_0x4d8aba){if(_0x26a804[_0x8d97('0x4d')]['id']){delete _0x26a804[_0x8d97('0x4d')]['id'];}return db['AnalyticCustomReport'][_0x8d97('0x4b')]({'where':{'id':_0x26a804[_0x8d97('0x55')]['id']}})[_0x8d97('0x26')](handleEntityNotFound(_0x4d8aba,null))[_0x8d97('0x26')](saveUpdates(_0x26a804[_0x8d97('0x4d')],null))[_0x8d97('0x26')](respondWithResult(_0x4d8aba,null))['catch'](handleError(_0x4d8aba,null));};exports[_0x8d97('0x25')]=function(_0x208765,_0x576d9a){return db[_0x8d97('0x2f')][_0x8d97('0x4b')]({'where':{'id':_0x208765[_0x8d97('0x55')]['id']}})[_0x8d97('0x26')](handleEntityNotFound(_0x576d9a,null))['then'](removeEntity(_0x576d9a,null))[_0x8d97('0x49')](handleError(_0x576d9a,null));};exports[_0x8d97('0x56')]=function(_0x572bdb,_0x37796a){var _0x4c50cd=0xa;var _0x20a667=[_0x8d97('0x57'),_0x8d97('0x58'),_0x8d97('0x59'),_0x8d97('0x5a')];var _0x29f256={'SUM':_0x8d97('0x5b'),'COUNT':_0x8d97('0x5c'),'COUNT DISTINCT':_0x8d97('0x5d'),'MAX':_0x8d97('0x5e'),'MIN':'MIN(%s)','AVG':_0x8d97('0x5f'),'GROUP_CONCAT':_0x8d97('0x60'),'GROUP_CONCAT ASC':_0x8d97('0x61'),'GROUP_CONCAT DESC':_0x8d97('0x62')};var _0x255c0b={'SEC_TO_TIME':_0x8d97('0x63'),'DATE':_0x8d97('0x64'),'HOUR':_0x8d97('0x65'),'ROUND':_0x8d97('0x66'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x361db1=function(_0x8759bd){return!_[_0x8d97('0x67')]([_0x8d97('0x68'),'IS\x20NOT\x20NULL',_0x8d97('0x69'),_0x8d97('0x6a')],_0x8759bd);};var _0x4f84b0=function(_0x1bff9d){if(!_0x1bff9d||!_0x1bff9d[_0x8d97('0x6b')][_0x8d97('0x3b')]){return'';}for(var _0xabf76c='(',_0x3fb655=0x0;_0x3fb655<_0x1bff9d['rules'][_0x8d97('0x3b')];_0x3fb655+=0x1){_0x3fb655>0x0&&(_0xabf76c+='\x20'+_0x1bff9d[_0x8d97('0x6c')]+'\x20');_0xabf76c+=_0x1bff9d[_0x8d97('0x6b')][_0x3fb655][_0x8d97('0x6d')]?_0x4f84b0(_0x1bff9d[_0x8d97('0x6b')][_0x3fb655][_0x8d97('0x6d')]):_0x1bff9d[_0x8d97('0x6b')][_0x3fb655]['field']+'\x20'+_0x1bff9d['rules'][_0x3fb655][_0x8d97('0x6e')]+(_0x361db1(_0x1bff9d[_0x8d97('0x6b')][_0x3fb655][_0x8d97('0x6e')])?'\x20'+_0x1bff9d[_0x8d97('0x6b')][_0x3fb655]['value']:'');}return _0xabf76c+')';};var _0x2e6f3d={'where':{'id':_0x572bdb['params']['id']}},_0x1e3934,_0x4c9748,_0x258512,_0x49aa7e,_0x12b0f3;_0x2e6f3d=_[_0x8d97('0x43')]({},_0x2e6f3d,_0x572bdb[_0x8d97('0x45')]);return db[_0x8d97('0x2f')][_0x8d97('0x4b')](_0x2e6f3d)[_0x8d97('0x26')](function(_0x4d17f2){if(_0x4d17f2){_0x1e3934=_0x4d17f2;return _0x4d17f2[_0x8d97('0x6f')]();}return null;})[_0x8d97('0x26')](function(_0x588471){if(_0x588471){if(!_0x588471[_0x8d97('0x3b')]){throw new db[(_0x8d97('0x70'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x4c9748=_0x588471;return db[_0x8d97('0x71')][_0x8d97('0x48')]({'raw':!![]});}return null;})[_0x8d97('0x26')](function(_0x4b5cf6){if(_0x4b5cf6){_0x258512=_[_0x8d97('0x72')](_0x4b5cf6,'id');var _0x2dfda0;var _0x50dfc4=squel[_0x8d97('0x73')]();_0x50dfc4['from'](_0x1e3934[_0x8d97('0x74')]);for(var _0x4743b3=0x0;_0x4743b3<_0x4c9748['length'];_0x4743b3+=0x1){_0x2dfda0=_0x4c9748[_0x4743b3][_0x8d97('0x75')]?_0x258512[_0x4c9748[_0x4743b3][_0x8d97('0x75')]][_0x8d97('0x76')]:_0x4c9748[_0x4743b3][_0x8d97('0x77')];_0x2dfda0=_0x4c9748[_0x4743b3][_0x8d97('0x78')]?_[_0x8d97('0x79')](_0x29f256[_0x4c9748[_0x4743b3]['function']],'%s',_0x2dfda0):_0x2dfda0;_0x2dfda0=_0x4c9748[_0x4743b3][_0x8d97('0x7a')]?_[_0x8d97('0x79')](_0x255c0b[_0x4c9748[_0x4743b3]['format']],'%s',_0x2dfda0):_0x2dfda0;if(_0x4c9748[_0x4743b3][_0x8d97('0x7b')]){_0x50dfc4[_0x8d97('0x6d')](_0x2dfda0);}_0x4c9748[_0x4743b3][_0x8d97('0x7c')]&&_0x50dfc4[_0x8d97('0x3e')](_0x2dfda0,_0x4c9748[_0x4743b3]['orderBy']===_0x8d97('0x7d')?![]:!![]);_0x50dfc4[_0x8d97('0x77')](_0x2dfda0,_0x4c9748[_0x4743b3][_0x8d97('0x7e')]||_0x2dfda0);}if(_0x1e3934[_0x8d97('0x7f')]){_0x1e3934[_0x8d97('0x7f')]=JSON[_0x8d97('0x80')](_0x1e3934[_0x8d97('0x7f')]);for(var _0x11355a=0x0;_0x11355a<_0x1e3934[_0x8d97('0x7f')][_0x8d97('0x3b')];_0x11355a+=0x1){if(_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x32')]&&_[_0x8d97('0x67')](_0x20a667,_0x1e3934['joins'][_0x11355a]['type'])&&_0x1e3934[_0x8d97('0x7f')][_0x11355a]['parentKey']&&_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x81')]&&_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x82')]){_0x50dfc4[_0x1e3934['joins'][_0x11355a]['type']](_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x81')],null,util[_0x8d97('0x7a')](_0x8d97('0x83'),_0x1e3934[_0x8d97('0x74')],_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x84')],_0x1e3934[_0x8d97('0x7f')][_0x11355a]['foreignTable'],_0x1e3934[_0x8d97('0x7f')][_0x11355a][_0x8d97('0x82')]));}}}if(_0x1e3934[_0x8d97('0x85')]){_0x1e3934[_0x8d97('0x85')]=JSON[_0x8d97('0x80')](_0x1e3934[_0x8d97('0x85')]);_0x50dfc4['where'](_0x4f84b0(_0x1e3934[_0x8d97('0x85')]['group']));}_0x12b0f3=_0x50dfc4[_0x8d97('0x86')]();_0x50dfc4[_0x8d97('0x1d')](_0x4c50cd);_0x50dfc4[_0x8d97('0x1c')](0x0);logger[_0x8d97('0x87')]('Limited\x20Query:',_0x50dfc4['toString']());return dbH[_0x8d97('0x88')]['query'](_0x50dfc4[_0x8d97('0x89')](),{'type':dbH[_0x8d97('0x88')][_0x8d97('0x8a')][_0x8d97('0x8b')]});}})[_0x8d97('0x26')](respondWithResult(_0x37796a,null))[_0x8d97('0x49')](handleError(_0x37796a,null));};function runReport(_0x3f23f7,_0x2d65a5,_0x5dce26){var _0x493eca=_0x2d65a5['name'];var _0x242ccb=0xa;var _0x548826=['join',_0x8d97('0x58'),_0x8d97('0x59'),'cross_join'];var _0x34c973={'SUM':_0x8d97('0x5b'),'COUNT':_0x8d97('0x5c'),'COUNT DISTINCT':_0x8d97('0x5d'),'MAX':_0x8d97('0x5e'),'MIN':_0x8d97('0x8c'),'AVG':_0x8d97('0x5f'),'GROUP_CONCAT':_0x8d97('0x60'),'GROUP_CONCAT ASC':_0x8d97('0x61'),'GROUP_CONCAT DESC':_0x8d97('0x62')};var _0x3a5257={'SEC_TO_TIME':_0x8d97('0x63'),'DATE':'DATE(%s)','HOUR':_0x8d97('0x65'),'ROUND':_0x8d97('0x66'),'UNIX_TIMESTAMP':_0x8d97('0x8d')};var _0x1198ff=function(_0x41e35f){return!_[_0x8d97('0x67')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x8d97('0x69'),_0x8d97('0x6a')],_0x41e35f);};var _0x3a1c59=function(_0x453911){if(!_0x453911||!_0x453911['rules']['length']){return'';}for(var _0xa5f12d='(',_0x7e358e=0x0;_0x7e358e<_0x453911[_0x8d97('0x6b')]['length'];_0x7e358e+=0x1){_0x7e358e>0x0&&(_0xa5f12d+='\x20'+_0x453911[_0x8d97('0x6c')]+'\x20');_0xa5f12d+=_0x453911[_0x8d97('0x6b')][_0x7e358e][_0x8d97('0x6d')]?_0x3a1c59(_0x453911['rules'][_0x7e358e][_0x8d97('0x6d')]):_0x453911[_0x8d97('0x6b')][_0x7e358e][_0x8d97('0x77')]+'\x20'+_0x453911['rules'][_0x7e358e][_0x8d97('0x6e')]+(_0x1198ff(_0x453911[_0x8d97('0x6b')][_0x7e358e]['condition'])?'\x20'+_0x453911[_0x8d97('0x6b')][_0x7e358e][_0x8d97('0x8e')]:'');}return _0xa5f12d+')';};var _0x5456ed={'where':{'id':_0x3f23f7['id']}},_0x481b3d,_0x1bafd2,_0x2682ed,_0x47f649,_0xa81e1a;_0x5456ed=_[_0x8d97('0x43')]({},_0x5456ed,_0x5dce26);return db[_0x8d97('0x2f')][_0x8d97('0x4b')](_0x5456ed)[_0x8d97('0x26')](function(_0xe4f28c){if(_0xe4f28c){_0x481b3d=_0xe4f28c;return _0xe4f28c[_0x8d97('0x6f')]();}return null;})[_0x8d97('0x26')](function(_0x32c8d0){if(_0x32c8d0){if(!_0x32c8d0[_0x8d97('0x3b')]){throw new db['Sequelize'][(_0x8d97('0x8f'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x1bafd2=_0x32c8d0;return db['AnalyticMetric'][_0x8d97('0x48')]({'raw':!![]});}return null;})['then'](function(_0x1bad57){if(_0x1bad57){_0x2682ed=_[_0x8d97('0x72')](_0x1bad57,'id');var _0x2990a2;var _0x7c589a=squel[_0x8d97('0x73')]();_0x7c589a['from'](_0x481b3d[_0x8d97('0x74')]);for(var _0x58a316=0x0;_0x58a316<_0x1bafd2[_0x8d97('0x3b')];_0x58a316+=0x1){_0x2990a2=_0x1bafd2[_0x58a316][_0x8d97('0x75')]?_0x2682ed[_0x1bafd2[_0x58a316]['MetricId']][_0x8d97('0x76')]:_0x1bafd2[_0x58a316]['field'];_0x2990a2=_0x1bafd2[_0x58a316][_0x8d97('0x78')]?_[_0x8d97('0x79')](_0x34c973[_0x1bafd2[_0x58a316]['function']],'%s',_0x2990a2):_0x2990a2;_0x2990a2=_0x1bafd2[_0x58a316][_0x8d97('0x7a')]?_[_0x8d97('0x79')](_0x3a5257[_0x1bafd2[_0x58a316][_0x8d97('0x7a')]],'%s',_0x2990a2):_0x2990a2;if(_0x1bafd2[_0x58a316]['groupBy']){_0x7c589a[_0x8d97('0x6d')](_0x2990a2);}_0x1bafd2[_0x58a316][_0x8d97('0x7c')]&&_0x7c589a[_0x8d97('0x3e')](_0x2990a2,_0x1bafd2[_0x58a316][_0x8d97('0x7c')]===_0x8d97('0x7d')?![]:!![]);_0x7c589a['field'](_0x2990a2,_0x1bafd2[_0x58a316]['alias']||_0x2990a2);}if(_0x481b3d[_0x8d97('0x7f')]){_0x481b3d['joins']=JSON['parse'](_0x481b3d['joins']);for(var _0x1f8301=0x0;_0x1f8301<_0x481b3d[_0x8d97('0x7f')][_0x8d97('0x3b')];_0x1f8301+=0x1){if(_0x481b3d[_0x8d97('0x7f')][_0x1f8301][_0x8d97('0x32')]&&_[_0x8d97('0x67')](_0x548826,_0x481b3d[_0x8d97('0x7f')][_0x1f8301][_0x8d97('0x32')])&&_0x481b3d['joins'][_0x1f8301]['parentKey']&&_0x481b3d[_0x8d97('0x7f')][_0x1f8301][_0x8d97('0x81')]&&_0x481b3d[_0x8d97('0x7f')][_0x1f8301][_0x8d97('0x82')]){_0x7c589a[_0x481b3d[_0x8d97('0x7f')][_0x1f8301]['type']](_0x481b3d[_0x8d97('0x7f')][_0x1f8301][_0x8d97('0x81')],null,util[_0x8d97('0x7a')]('%s.%s\x20=\x20%s.%s',_0x481b3d[_0x8d97('0x74')],_0x481b3d[_0x8d97('0x7f')][_0x1f8301]['parentKey'],_0x481b3d['joins'][_0x1f8301]['foreignTable'],_0x481b3d[_0x8d97('0x7f')][_0x1f8301]['foreignKey']));}}}if(_0x481b3d[_0x8d97('0x85')]){_0x481b3d[_0x8d97('0x85')]=JSON[_0x8d97('0x80')](_0x481b3d[_0x8d97('0x85')]);_0x7c589a['where'](_0x3a1c59(_0x481b3d[_0x8d97('0x85')][_0x8d97('0x6d')]));}_0xa81e1a=_0x7c589a[_0x8d97('0x86')]();_0x7c589a['limit'](_0x242ccb);_0x7c589a[_0x8d97('0x1c')](0x0);return;}})['then'](function(){if(_0x2d65a5[_0x8d97('0x90')]===_0x8d97('0x91')){return null;}var _0x3ece5e=_[_0x8d97('0x43')](_0x2d65a5,{'name':_0x2d65a5[_0x8d97('0x92')]||_0x2d65a5['name']||_0x481b3d[_0x8d97('0x34')],'basename':_0x493eca,'savename':util[_0x8d97('0x7a')](_0x8d97('0x93'),_0x2d65a5[_0x8d97('0x34')]||_0x481b3d[_0x8d97('0x34')],require(_0x8d97('0x94'))[_0x8d97('0x95')](0x4),_0x2d65a5[_0x8d97('0x90')]||_0x8d97('0x96')),'reportId':_0x481b3d['id'],'reportType':_0x8d97('0x97')});return db[_0x8d97('0x98')][_0x8d97('0x4c')](_0x3ece5e,{'raw':!![]});})[_0x8d97('0x26')](function(_0x378df0){if(_0x481b3d[_0x8d97('0x74')]==='cdr'){_0xa81e1a['where'](_0x481b3d[_0x8d97('0x74')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x2d65a5['startDate'],_0x2d65a5[_0x8d97('0x99')]);}else{_0xa81e1a[_0x8d97('0x40')](_0x481b3d[_0x8d97('0x74')]+_0x8d97('0x9a'),_0x2d65a5[_0x8d97('0x9b')],_0x2d65a5['endDate']);}if(_0x378df0){logger[_0x8d97('0x9c')](_0x8d97('0x9d'),_0xa81e1a['toString']());require('child_process')[_0x8d97('0x9e')](path[_0x8d97('0x57')](__dirname,_0x8d97('0x9f'),_0x378df0[_0x8d97('0x90')]),[_0x378df0['id'],_0xa81e1a[_0x8d97('0x89')](),path[_0x8d97('0x57')](__dirname,'../../files/reports',_0x378df0[_0x8d97('0xa0')]),_0x493eca]);return _0x378df0;}else{var _0x18ffc9=squel[_0x8d97('0x73')]();_0x18ffc9[_0x8d97('0xa1')]('('+_0xa81e1a[_0x8d97('0x89')]()+')',_0x8d97('0xa2'));_0x18ffc9[_0x8d97('0x77')](_0x8d97('0xa3'),_0x8d97('0x1e'));_0xa81e1a['limit'](_0x2d65a5['limit']||_0x242ccb);_0xa81e1a[_0x8d97('0x1c')](_0x2d65a5[_0x8d97('0x1c')]||0x0);return dbH[_0x8d97('0x88')][_0x8d97('0x35')](_0x18ffc9[_0x8d97('0x89')](),{'type':dbH[_0x8d97('0x88')][_0x8d97('0x8a')][_0x8d97('0x8b')]})[_0x8d97('0x26')](function(_0x309b42){if(!_0x309b42[_0x8d97('0x3b')]){_0x47f649=0x0;}else{_0x47f649=_0x309b42[0x0]['count']||0x0;}return dbH[_0x8d97('0x88')][_0x8d97('0x35')](_0xa81e1a[_0x8d97('0x89')](),{'type':dbH[_0x8d97('0x88')][_0x8d97('0x8a')][_0x8d97('0x8b')]});})[_0x8d97('0x26')](function(_0x552a52){return{'rows':_0x552a52||[],'count':_0x47f649};});}});}exports['run']=function(_0x52191c,_0x128cfb){return runReport(_0x52191c['params'],_0x52191c['query'],_0x52191c['options'])[_0x8d97('0x26')](respondWithResult(_0x128cfb,null))[_0x8d97('0x49')](handleError(_0x128cfb,null));};exports['runReport']=runReport;exports[_0x8d97('0x35')]=function(_0x5ec9e0,_0x1a9fc0){var _0x3812d7=0xa;var _0x4a626d=[_0x8d97('0x57'),_0x8d97('0x58'),'right_join',_0x8d97('0x5a')];var _0x27a903={'SUM':'SUM(%s)','COUNT':_0x8d97('0x5c'),'COUNT DISTINCT':_0x8d97('0x5d'),'MAX':_0x8d97('0x5e'),'MIN':_0x8d97('0x8c'),'AVG':_0x8d97('0x5f'),'GROUP_CONCAT':_0x8d97('0x60'),'GROUP_CONCAT ASC':_0x8d97('0x61'),'GROUP_CONCAT DESC':_0x8d97('0x62')};var _0x439d78={'SEC_TO_TIME':_0x8d97('0x63'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0x8d97('0x66'),'UNIX_TIMESTAMP':_0x8d97('0x8d')};var _0x1eaab6=function(_0x5a103e){return!_[_0x8d97('0x67')]([_0x8d97('0x68'),'IS\x20NOT\x20NULL',_0x8d97('0x69'),_0x8d97('0x6a')],_0x5a103e);};var _0x3b6b38=function(_0x50d093){if(!_0x50d093||!_0x50d093[_0x8d97('0x6b')][_0x8d97('0x3b')]){return'';}for(var _0x2fba3a='(',_0x32dfb9=0x0;_0x32dfb9<_0x50d093['rules'][_0x8d97('0x3b')];_0x32dfb9+=0x1){_0x32dfb9>0x0&&(_0x2fba3a+='\x20'+_0x50d093[_0x8d97('0x6c')]+'\x20');_0x2fba3a+=_0x50d093[_0x8d97('0x6b')][_0x32dfb9][_0x8d97('0x6d')]?_0x3b6b38(_0x50d093[_0x8d97('0x6b')][_0x32dfb9]['group']):_0x50d093[_0x8d97('0x6b')][_0x32dfb9][_0x8d97('0x77')]+'\x20'+_0x50d093[_0x8d97('0x6b')][_0x32dfb9]['condition']+(_0x1eaab6(_0x50d093['rules'][_0x32dfb9][_0x8d97('0x6e')])?'\x20'+_0x50d093['rules'][_0x32dfb9]['value']:'');}return _0x2fba3a+')';};var _0x36d50a={'where':{'id':_0x5ec9e0[_0x8d97('0x55')]['id']}},_0x5824b4,_0x1261a3,_0x307f65,_0x4920d6,_0x9452b1;_0x36d50a=_[_0x8d97('0x43')]({},_0x36d50a,_0x5ec9e0[_0x8d97('0x45')]);return db[_0x8d97('0x2f')][_0x8d97('0x4b')](_0x36d50a)['then'](function(_0x39cc07){if(_0x39cc07){_0x5824b4=_0x39cc07;return _0x39cc07[_0x8d97('0x6f')]();}return null;})['then'](function(_0x29ebc){if(_0x29ebc){if(!_0x29ebc[_0x8d97('0x3b')]){throw new db['Sequelize']['ValidationErrorItem'](_0x8d97('0xa4'),0x193);}_0x1261a3=_0x29ebc;return db[_0x8d97('0x71')][_0x8d97('0x48')]({'raw':!![]});}return null;})[_0x8d97('0x26')](function(_0x106f4c){if(_0x106f4c){_0x307f65=_[_0x8d97('0x72')](_0x106f4c,'id');var _0x7af445;var _0x3f4464=squel['select']();_0x3f4464[_0x8d97('0xa1')](_0x5824b4[_0x8d97('0x74')]);for(var _0xc8c3a7=0x0;_0xc8c3a7<_0x1261a3[_0x8d97('0x3b')];_0xc8c3a7+=0x1){_0x7af445=_0x1261a3[_0xc8c3a7]['MetricId']?_0x307f65[_0x1261a3[_0xc8c3a7]['MetricId']]['metric']:_0x1261a3[_0xc8c3a7][_0x8d97('0x77')];_0x7af445=_0x1261a3[_0xc8c3a7]['function']?_['replace'](_0x27a903[_0x1261a3[_0xc8c3a7][_0x8d97('0x78')]],'%s',_0x7af445):_0x7af445;_0x7af445=_0x1261a3[_0xc8c3a7][_0x8d97('0x7a')]?_['replace'](_0x439d78[_0x1261a3[_0xc8c3a7]['format']],'%s',_0x7af445):_0x7af445;if(_0x1261a3[_0xc8c3a7]['groupBy']){_0x3f4464['group'](_0x7af445);}_0x1261a3[_0xc8c3a7]['orderBy']&&_0x3f4464[_0x8d97('0x3e')](_0x7af445,_0x1261a3[_0xc8c3a7][_0x8d97('0x7c')]==='DESC'?![]:!![]);_0x3f4464[_0x8d97('0x77')](_0x7af445,_0x1261a3[_0xc8c3a7][_0x8d97('0x7e')]||_0x7af445);}if(_0x5824b4[_0x8d97('0x7f')]){_0x5824b4[_0x8d97('0x7f')]=JSON[_0x8d97('0x80')](_0x5824b4['joins']);for(var _0xa568c3=0x0;_0xa568c3<_0x5824b4[_0x8d97('0x7f')][_0x8d97('0x3b')];_0xa568c3+=0x1){if(_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x32')]&&_[_0x8d97('0x67')](_0x4a626d,_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x32')])&&_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x84')]&&_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x81')]&&_0x5824b4['joins'][_0xa568c3][_0x8d97('0x82')]){_0x3f4464[_0x5824b4['joins'][_0xa568c3][_0x8d97('0x32')]](_0x5824b4[_0x8d97('0x7f')][_0xa568c3]['foreignTable'],null,util['format'](_0x8d97('0x83'),_0x5824b4[_0x8d97('0x74')],_0x5824b4['joins'][_0xa568c3][_0x8d97('0x84')],_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x81')],_0x5824b4[_0x8d97('0x7f')][_0xa568c3][_0x8d97('0x82')]));}}}if(_0x5824b4[_0x8d97('0x85')]){_0x5824b4['conditions']=JSON[_0x8d97('0x80')](_0x5824b4[_0x8d97('0x85')]);_0x3f4464[_0x8d97('0x40')](_0x3b6b38(_0x5824b4['conditions']['group']));}_0x9452b1=_0x3f4464[_0x8d97('0x86')]();_0x3f4464[_0x8d97('0x1d')](_0x3812d7);_0x3f4464[_0x8d97('0x1c')](0x0);logger[_0x8d97('0x87')]('Limited\x20Query:',_0x3f4464[_0x8d97('0x89')]());return dbH['sequelize'][_0x8d97('0x35')](_0x3f4464[_0x8d97('0x89')](),{'type':dbH[_0x8d97('0x88')][_0x8d97('0x8a')]['SELECT']});}})[_0x8d97('0x26')](function(){return{'sql':_0x9452b1[_0x8d97('0x89')]()};})[_0x8d97('0x26')](respondWithResult(_0x1a9fc0,null))[_0x8d97('0x49')](handleError(_0x1a9fc0,null));};