Built motion from commit bab6f49e.|2.6.17
[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 _0x0d3d=['AnalyticCustomReport','includeAll','findAll','rows','catch','params','keys','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','COUNT(DISTINCT\x20%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','alias','joins','foreignTable','foreignKey','parentKey','conditions','parse','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SUM(%s)','COUNT(%s)','SEC_TO_TIME(%s)','DATE(%s)','IS\x20EMPTY','value','keyBy','select','%s.%s\x20=\x20%s.%s','output','fullPath','%s-%s.%s','randomstring','generate','custom','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','Run\x20Query:','../../components/export/','COUNT(*)','run','runReport','MAX(%s)','DESC','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','reject','save','update','destroy','then','get','CustomReports','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','options'];(function(_0x5bbb4f,_0x47971b){var _0x5b3af6=function(_0x4b9078){while(--_0x4b9078){_0x5bbb4f['push'](_0x5bbb4f['shift']());}};_0x5b3af6(++_0x47971b);}(_0x0d3d,0x1ab));var _0xd0d3=function(_0x1cd3b9,_0x36130b){_0x1cd3b9=_0x1cd3b9-0x0;var _0x1d1f4e=_0x0d3d[_0x1cd3b9];return _0x1d1f4e;};'use strict';var emlformat=require(_0xd0d3('0x0'));var rimraf=require(_0xd0d3('0x1'));var zipdir=require(_0xd0d3('0x2'));var jsonpatch=require(_0xd0d3('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xd0d3('0x4'));var Mustache=require(_0xd0d3('0x5'));var util=require(_0xd0d3('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xd0d3('0x7'));var ejs=require(_0xd0d3('0x8'));var fs=require('fs');var fs_extra=require(_0xd0d3('0x9'));var _=require(_0xd0d3('0xa'));var squel=require('squel');var crypto=require(_0xd0d3('0xb'));var jsforce=require(_0xd0d3('0xc'));var deskjs=require(_0xd0d3('0xd'));var toCsv=require('to-csv');var querystring=require(_0xd0d3('0xe'));var Papa=require(_0xd0d3('0xf'));var Redis=require(_0xd0d3('0x10'));var authService=require(_0xd0d3('0x11'));var qs=require(_0xd0d3('0x12'));var as=require(_0xd0d3('0x13'));var hardwareService=require(_0xd0d3('0x14'));var logger=require(_0xd0d3('0x15'))(_0xd0d3('0x16'));var utils=require(_0xd0d3('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xd0d3('0x18'));var db=require(_0xd0d3('0x19'))['db'];var dbH=require(_0xd0d3('0x19'))[_0xd0d3('0x1a')];function respondWithStatusCode(_0x388f4b,_0x242379){_0x242379=_0x242379||0xcc;return function(_0x6edc6f){if(_0x6edc6f){return _0x388f4b[_0xd0d3('0x1b')](_0x242379);}return _0x388f4b[_0xd0d3('0x1c')](_0x242379)[_0xd0d3('0x1d')]();};}function respondWithResult(_0x20eebc,_0x1c6b8c){_0x1c6b8c=_0x1c6b8c||0xc8;return function(_0x356ea9){if(_0x356ea9){return _0x20eebc[_0xd0d3('0x1c')](_0x1c6b8c)['json'](_0x356ea9);}};}function respondWithFilteredResult(_0x5e8192,_0x243867){return function(_0x4b7a78){if(_0x4b7a78){var _0x180805=typeof _0x243867['offset']===_0xd0d3('0x1e')&&typeof _0x243867['limit']==='undefined';var _0x187554=_0x4b7a78[_0xd0d3('0x1f')];var _0x369fdd=_0x180805?0x0:_0x243867[_0xd0d3('0x20')];var _0x3cce60=_0x180805?_0x4b7a78[_0xd0d3('0x1f')]:_0x243867['offset']+_0x243867[_0xd0d3('0x21')];var _0x2cedd7;if(_0x3cce60>=_0x187554){_0x3cce60=_0x187554;_0x2cedd7=0xc8;}else{_0x2cedd7=0xce;}_0x5e8192['status'](_0x2cedd7);return _0x5e8192[_0xd0d3('0x22')](_0xd0d3('0x23'),_0x369fdd+'-'+_0x3cce60+'/'+_0x187554)[_0xd0d3('0x24')](_0x4b7a78);}return null;};}function patchUpdates(_0x549105){return function(_0x4e2e33){try{jsonpatch['apply'](_0x4e2e33,_0x549105,!![]);}catch(_0x28aef0){return BPromise[_0xd0d3('0x25')](_0x28aef0);}return _0x4e2e33[_0xd0d3('0x26')]();};}function saveUpdates(_0x25dbad,_0xce09d9){return function(_0x17d1f6){if(_0x17d1f6){return _0x17d1f6[_0xd0d3('0x27')](_0x25dbad)['then'](function(_0x151066){return _0x151066;});}return null;};}function removeEntity(_0x35aa4e,_0x17814b){return function(_0x2f628e){if(_0x2f628e){return _0x2f628e[_0xd0d3('0x28')]()[_0xd0d3('0x29')](function(){var _0x263c1f=_0x2f628e[_0xd0d3('0x2a')]({'plain':!![]});var _0xfd8dd8=_0xd0d3('0x2b');return db[_0xd0d3('0x2c')][_0xd0d3('0x28')]({'where':{'type':_0xfd8dd8,'resourceId':_0x263c1f['id']}})[_0xd0d3('0x29')](function(){return _0x2f628e;});})[_0xd0d3('0x29')](function(){_0x35aa4e['status'](0xcc)[_0xd0d3('0x1d')]();});}};}function handleEntityNotFound(_0xbe17d6,_0x79357e){return function(_0x264f46){if(!_0x264f46){_0xbe17d6['sendStatus'](0x194);}return _0x264f46;};}function handleError(_0x17c264,_0x5ef5e5){_0x5ef5e5=_0x5ef5e5||0x1f4;return function(_0x2bfb9a){logger[_0xd0d3('0x2d')](_0x2bfb9a[_0xd0d3('0x2e')]);if(_0x2bfb9a['name']){delete _0x2bfb9a[_0xd0d3('0x2f')];}_0x17c264['status'](_0x5ef5e5)[_0xd0d3('0x30')](_0x2bfb9a);};}exports[_0xd0d3('0x31')]=function(_0xe3be87,_0x205d5c){var _0x53c869={},_0x13eb1f={},_0x14658={'count':0x0,'rows':[]};var _0xf45b73=_[_0xd0d3('0x32')](db['AnalyticCustomReport'][_0xd0d3('0x33')],function(_0x4c3b6c){return{'name':_0x4c3b6c['fieldName'],'type':_0x4c3b6c[_0xd0d3('0x34')][_0xd0d3('0x35')]};});_0x13eb1f[_0xd0d3('0x36')]=_[_0xd0d3('0x32')](_0xf45b73,_0xd0d3('0x2f'));_0x13eb1f[_0xd0d3('0x37')]=_['keys'](_0xe3be87[_0xd0d3('0x37')]);_0x13eb1f[_0xd0d3('0x38')]=_[_0xd0d3('0x39')](_0x13eb1f[_0xd0d3('0x36')],_0x13eb1f[_0xd0d3('0x37')]);_0x53c869[_0xd0d3('0x3a')]=_[_0xd0d3('0x39')](_0x13eb1f[_0xd0d3('0x36')],qs[_0xd0d3('0x3b')](_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x3b')]));_0x53c869[_0xd0d3('0x3a')]=_0x53c869[_0xd0d3('0x3a')]['length']?_0x53c869[_0xd0d3('0x3a')]:_0x13eb1f[_0xd0d3('0x36')];if(!_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x3c')](_0xd0d3('0x3d'))){_0x53c869[_0xd0d3('0x21')]=qs['limit'](_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x21')]);_0x53c869[_0xd0d3('0x20')]=qs[_0xd0d3('0x20')](_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x20')]);}_0x53c869[_0xd0d3('0x3e')]=qs[_0xd0d3('0x3f')](_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x3f')]);_0x53c869[_0xd0d3('0x40')]=qs['filters'](_['pick'](_0xe3be87[_0xd0d3('0x37')],_0x13eb1f['filters']),_0xf45b73);if(_0xe3be87[_0xd0d3('0x37')]['filter']){_0x53c869[_0xd0d3('0x40')]=_['merge'](_0x53c869['where'],{'$or':_[_0xd0d3('0x32')](_0xf45b73,function(_0x5919cb){if(_0x5919cb['type']!=='VIRTUAL'){var _0x3b6376={};_0x3b6376[_0x5919cb[_0xd0d3('0x2f')]]={'$like':'%'+_0xe3be87['query'][_0xd0d3('0x41')]+'%'};return _0x3b6376;}})});}_0x53c869=_[_0xd0d3('0x42')]({},_0x53c869,_0xe3be87[_0xd0d3('0x43')]);var _0x1315e9={'where':_0x53c869[_0xd0d3('0x40')]};return db[_0xd0d3('0x44')][_0xd0d3('0x1f')](_0x1315e9)[_0xd0d3('0x29')](function(_0x261034){_0x14658[_0xd0d3('0x1f')]=_0x261034;if(_0xe3be87[_0xd0d3('0x37')][_0xd0d3('0x45')]){_0x53c869['include']=[{'all':!![]}];}return db['AnalyticCustomReport'][_0xd0d3('0x46')](_0x53c869);})[_0xd0d3('0x29')](function(_0x5f375d){_0x14658[_0xd0d3('0x47')]=_0x5f375d;return _0x14658;})[_0xd0d3('0x29')](respondWithFilteredResult(_0x205d5c,_0x53c869))[_0xd0d3('0x48')](handleError(_0x205d5c,null));};exports['show']=function(_0x18a29d,_0x7d779b){var _0x42a76d={'raw':![],'where':{'id':_0x18a29d[_0xd0d3('0x49')]['id']}},_0xac118f={};_0xac118f[_0xd0d3('0x36')]=_[_0xd0d3('0x4a')](db[_0xd0d3('0x44')]['rawAttributes']);_0xac118f[_0xd0d3('0x37')]=_[_0xd0d3('0x4a')](_0x18a29d[_0xd0d3('0x37')]);_0xac118f[_0xd0d3('0x38')]=_[_0xd0d3('0x39')](_0xac118f[_0xd0d3('0x36')],_0xac118f[_0xd0d3('0x37')]);_0x42a76d[_0xd0d3('0x3a')]=_['intersection'](_0xac118f['model'],qs[_0xd0d3('0x3b')](_0x18a29d[_0xd0d3('0x37')]['fields']));_0x42a76d[_0xd0d3('0x3a')]=_0x42a76d['attributes'][_0xd0d3('0x4b')]?_0x42a76d[_0xd0d3('0x3a')]:_0xac118f['model'];if(_0x18a29d[_0xd0d3('0x37')][_0xd0d3('0x45')]){_0x42a76d[_0xd0d3('0x4c')]=[{'all':!![]}];}_0x42a76d=_['merge']({},_0x42a76d,_0x18a29d['options']);return db[_0xd0d3('0x44')][_0xd0d3('0x4d')](_0x42a76d)['then'](handleEntityNotFound(_0x7d779b,null))[_0xd0d3('0x29')](respondWithResult(_0x7d779b,null))['catch'](handleError(_0x7d779b,null));};exports[_0xd0d3('0x4e')]=function(_0x5642ed,_0x226850){return db[_0xd0d3('0x44')][_0xd0d3('0x4e')](_0x5642ed[_0xd0d3('0x4f')],{})[_0xd0d3('0x29')](function(_0x2ba516){var _0x301bd3=_0x5642ed[_0xd0d3('0x50')][_0xd0d3('0x2a')]({'plain':!![]});if(!_0x301bd3)throw new Error(_0xd0d3('0x51'));if(_0x301bd3[_0xd0d3('0x52')]===_0xd0d3('0x50')){var _0x38fe91=_0x2ba516['get']({'plain':!![]});var _0x5c84dc=_0xd0d3('0x53');return db[_0xd0d3('0x54')][_0xd0d3('0x4d')]({'where':{'name':_0x5c84dc,'userProfileId':_0x301bd3[_0xd0d3('0x55')]},'raw':!![]})[_0xd0d3('0x29')](function(_0x2c24ec){if(_0x2c24ec&&_0x2c24ec[_0xd0d3('0x56')]===0x0){return db[_0xd0d3('0x2c')][_0xd0d3('0x4e')]({'name':_0x38fe91[_0xd0d3('0x2f')],'resourceId':_0x38fe91['id'],'type':'CustomReports','sectionId':_0x2c24ec['id']},{})['then'](function(){return _0x2ba516;});}else{return _0x2ba516;}})['catch'](function(_0x3cc585){logger[_0xd0d3('0x2d')](_0xd0d3('0x57'),_0x3cc585);throw _0x3cc585;});}return _0x2ba516;})['then'](respondWithResult(_0x226850,0xc9))['catch'](handleError(_0x226850,null));};exports['update']=function(_0x1aaf96,_0x2a91dd){if(_0x1aaf96['body']['id']){delete _0x1aaf96[_0xd0d3('0x4f')]['id'];}return db[_0xd0d3('0x44')][_0xd0d3('0x4d')]({'where':{'id':_0x1aaf96[_0xd0d3('0x49')]['id']}})[_0xd0d3('0x29')](handleEntityNotFound(_0x2a91dd,null))[_0xd0d3('0x29')](saveUpdates(_0x1aaf96[_0xd0d3('0x4f')],null))['then'](respondWithResult(_0x2a91dd,null))[_0xd0d3('0x48')](handleError(_0x2a91dd,null));};exports[_0xd0d3('0x28')]=function(_0x25321a,_0x40ba0b){return db[_0xd0d3('0x44')]['find']({'where':{'id':_0x25321a[_0xd0d3('0x49')]['id']}})['then'](handleEntityNotFound(_0x40ba0b,null))[_0xd0d3('0x29')](removeEntity(_0x40ba0b,null))['catch'](handleError(_0x40ba0b,null));};exports[_0xd0d3('0x58')]=function(_0x4ab01c,_0xb50d75){var _0x15fa87=0xa;var _0x19b3d0=[_0xd0d3('0x59'),_0xd0d3('0x5a'),_0xd0d3('0x5b'),_0xd0d3('0x5c')];var _0x36f918={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0xd0d3('0x5d'),'MAX':'MAX(%s)','MIN':_0xd0d3('0x5e'),'AVG':_0xd0d3('0x5f'),'GROUP_CONCAT':_0xd0d3('0x60'),'GROUP_CONCAT ASC':_0xd0d3('0x61'),'GROUP_CONCAT DESC':_0xd0d3('0x62')};var _0x39bb09={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xd0d3('0x63'),'ROUND':_0xd0d3('0x64'),'UNIX_TIMESTAMP':_0xd0d3('0x65')};var _0x158dc8=function(_0x1c2cae){return!_[_0xd0d3('0x66')]([_0xd0d3('0x67'),_0xd0d3('0x68'),'IS\x20EMPTY',_0xd0d3('0x69')],_0x1c2cae);};var _0x4797ef=function(_0x4ce7fe){if(!_0x4ce7fe||!_0x4ce7fe['rules'][_0xd0d3('0x4b')]){return'';}for(var _0x287208='(',_0x371048=0x0;_0x371048<_0x4ce7fe[_0xd0d3('0x6a')][_0xd0d3('0x4b')];_0x371048+=0x1){_0x371048>0x0&&(_0x287208+='\x20'+_0x4ce7fe[_0xd0d3('0x6b')]+'\x20');_0x287208+=_0x4ce7fe[_0xd0d3('0x6a')][_0x371048][_0xd0d3('0x6c')]?_0x4797ef(_0x4ce7fe[_0xd0d3('0x6a')][_0x371048][_0xd0d3('0x6c')]):_0x4ce7fe['rules'][_0x371048][_0xd0d3('0x6d')]+'\x20'+_0x4ce7fe[_0xd0d3('0x6a')][_0x371048]['condition']+(_0x158dc8(_0x4ce7fe[_0xd0d3('0x6a')][_0x371048][_0xd0d3('0x6e')])?'\x20'+_0x4ce7fe[_0xd0d3('0x6a')][_0x371048]['value']:'');}return _0x287208+')';};var _0x40d41d={'where':{'id':_0x4ab01c[_0xd0d3('0x49')]['id']}},_0x3503d1,_0xb62e2a,_0x55efb9,_0x3c6994,_0x4f4991;_0x40d41d=_[_0xd0d3('0x42')]({},_0x40d41d,_0x4ab01c[_0xd0d3('0x43')]);return db['AnalyticCustomReport'][_0xd0d3('0x4d')](_0x40d41d)[_0xd0d3('0x29')](function(_0x1a89cd){if(_0x1a89cd){_0x3503d1=_0x1a89cd;return _0x1a89cd[_0xd0d3('0x6f')]();}return null;})[_0xd0d3('0x29')](function(_0x3156f6){if(_0x3156f6){if(!_0x3156f6['length']){throw new db[(_0xd0d3('0x70'))][(_0xd0d3('0x71'))](_0xd0d3('0x72'),0x193);}_0xb62e2a=_0x3156f6;return db[_0xd0d3('0x73')][_0xd0d3('0x46')]({'raw':!![]});}return null;})[_0xd0d3('0x29')](function(_0x1735ff){if(_0x1735ff){_0x55efb9=_['keyBy'](_0x1735ff,'id');var _0x14b178;var _0x414bae=squel['select']();_0x414bae[_0xd0d3('0x74')](_0x3503d1[_0xd0d3('0x75')]);for(var _0x2af150=0x0;_0x2af150<_0xb62e2a[_0xd0d3('0x4b')];_0x2af150+=0x1){_0x14b178=_0xb62e2a[_0x2af150][_0xd0d3('0x76')]?_0x55efb9[_0xb62e2a[_0x2af150][_0xd0d3('0x76')]][_0xd0d3('0x77')]:_0xb62e2a[_0x2af150][_0xd0d3('0x6d')];_0x14b178=_0xb62e2a[_0x2af150][_0xd0d3('0x78')]?_[_0xd0d3('0x79')](_0x36f918[_0xb62e2a[_0x2af150][_0xd0d3('0x78')]],'%s',_0x14b178):_0x14b178;_0x14b178=_0xb62e2a[_0x2af150][_0xd0d3('0x7a')]?_[_0xd0d3('0x79')](_0x39bb09[_0xb62e2a[_0x2af150][_0xd0d3('0x7a')]],'%s',_0x14b178):_0x14b178;if(_0xb62e2a[_0x2af150][_0xd0d3('0x7b')]){_0x414bae['group'](_0x14b178);}_0xb62e2a[_0x2af150][_0xd0d3('0x7c')]&&_0x414bae[_0xd0d3('0x3e')](_0x14b178,_0xb62e2a[_0x2af150][_0xd0d3('0x7c')]==='DESC'?![]:!![]);_0x414bae[_0xd0d3('0x6d')](_0x14b178,_0xb62e2a[_0x2af150][_0xd0d3('0x7d')]||_0x14b178);}if(_0x3503d1[_0xd0d3('0x7e')]){_0x3503d1['joins']=JSON['parse'](_0x3503d1['joins']);for(var _0x450d4e=0x0;_0x450d4e<_0x3503d1[_0xd0d3('0x7e')]['length'];_0x450d4e+=0x1){if(_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x34')]&&_[_0xd0d3('0x66')](_0x19b3d0,_0x3503d1['joins'][_0x450d4e][_0xd0d3('0x34')])&&_0x3503d1[_0xd0d3('0x7e')][_0x450d4e]['parentKey']&&_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x7f')]&&_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x80')]){_0x414bae[_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x34')]](_0x3503d1['joins'][_0x450d4e][_0xd0d3('0x7f')],null,util[_0xd0d3('0x7a')]('%s.%s\x20=\x20%s.%s',_0x3503d1[_0xd0d3('0x75')],_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x81')],_0x3503d1[_0xd0d3('0x7e')][_0x450d4e][_0xd0d3('0x7f')],_0x3503d1[_0xd0d3('0x7e')][_0x450d4e]['foreignKey']));}}}if(_0x3503d1[_0xd0d3('0x82')]){_0x3503d1[_0xd0d3('0x82')]=JSON[_0xd0d3('0x83')](_0x3503d1[_0xd0d3('0x82')]);_0x414bae[_0xd0d3('0x40')](_0x4797ef(_0x3503d1[_0xd0d3('0x82')]['group']));}_0x4f4991=_0x414bae[_0xd0d3('0x84')]();_0x414bae[_0xd0d3('0x21')](_0x15fa87);_0x414bae[_0xd0d3('0x20')](0x0);logger[_0xd0d3('0x85')](_0xd0d3('0x86'),_0x414bae[_0xd0d3('0x87')]());return dbH['sequelize']['query'](_0x414bae[_0xd0d3('0x87')](),{'type':dbH[_0xd0d3('0x88')][_0xd0d3('0x89')][_0xd0d3('0x8a')]});}})[_0xd0d3('0x29')](respondWithResult(_0xb50d75,null))['catch'](handleError(_0xb50d75,null));};function runReport(_0x41cbbf,_0x45466c,_0x1e9583){var _0x1311b4=_0x45466c[_0xd0d3('0x2f')];var _0x45363f=0xa;var _0xa1ac16=[_0xd0d3('0x59'),_0xd0d3('0x5a'),_0xd0d3('0x5b'),_0xd0d3('0x5c')];var _0x2a6f0c={'SUM':_0xd0d3('0x8b'),'COUNT':_0xd0d3('0x8c'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0xd0d3('0x5e'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xd0d3('0x60'),'GROUP_CONCAT ASC':_0xd0d3('0x61'),'GROUP_CONCAT DESC':_0xd0d3('0x62')};var _0x14a578={'SEC_TO_TIME':_0xd0d3('0x8d'),'DATE':_0xd0d3('0x8e'),'HOUR':_0xd0d3('0x63'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xd0d3('0x65')};var _0x27836b=function(_0xc66f50){return!_[_0xd0d3('0x66')]([_0xd0d3('0x67'),_0xd0d3('0x68'),_0xd0d3('0x8f'),_0xd0d3('0x69')],_0xc66f50);};var _0x34b141=function(_0x5043f0){if(!_0x5043f0||!_0x5043f0['rules'][_0xd0d3('0x4b')]){return'';}for(var _0x4e239e='(',_0x517f7c=0x0;_0x517f7c<_0x5043f0[_0xd0d3('0x6a')][_0xd0d3('0x4b')];_0x517f7c+=0x1){_0x517f7c>0x0&&(_0x4e239e+='\x20'+_0x5043f0[_0xd0d3('0x6b')]+'\x20');_0x4e239e+=_0x5043f0['rules'][_0x517f7c]['group']?_0x34b141(_0x5043f0[_0xd0d3('0x6a')][_0x517f7c]['group']):_0x5043f0['rules'][_0x517f7c][_0xd0d3('0x6d')]+'\x20'+_0x5043f0[_0xd0d3('0x6a')][_0x517f7c]['condition']+(_0x27836b(_0x5043f0[_0xd0d3('0x6a')][_0x517f7c][_0xd0d3('0x6e')])?'\x20'+_0x5043f0['rules'][_0x517f7c][_0xd0d3('0x90')]:'');}return _0x4e239e+')';};var _0x2c4c99={'where':{'id':_0x41cbbf['id']}},_0x40df09,_0x5819db,_0x290029,_0x549696,_0x32f2b;_0x2c4c99=_['merge']({},_0x2c4c99,_0x1e9583);return db[_0xd0d3('0x44')][_0xd0d3('0x4d')](_0x2c4c99)[_0xd0d3('0x29')](function(_0x12814c){if(_0x12814c){_0x40df09=_0x12814c;return _0x12814c['getFields']();}return null;})[_0xd0d3('0x29')](function(_0xda82cc){if(_0xda82cc){if(!_0xda82cc[_0xd0d3('0x4b')]){throw new db[(_0xd0d3('0x70'))][(_0xd0d3('0x71'))](_0xd0d3('0x72'),0x193);}_0x5819db=_0xda82cc;return db[_0xd0d3('0x73')][_0xd0d3('0x46')]({'raw':!![]});}return null;})[_0xd0d3('0x29')](function(_0x16442c){if(_0x16442c){_0x290029=_[_0xd0d3('0x91')](_0x16442c,'id');var _0x135902;var _0x29c862=squel[_0xd0d3('0x92')]();_0x29c862['from'](_0x40df09[_0xd0d3('0x75')]);for(var _0x1eee00=0x0;_0x1eee00<_0x5819db[_0xd0d3('0x4b')];_0x1eee00+=0x1){_0x135902=_0x5819db[_0x1eee00]['MetricId']?_0x290029[_0x5819db[_0x1eee00]['MetricId']][_0xd0d3('0x77')]:_0x5819db[_0x1eee00][_0xd0d3('0x6d')];_0x135902=_0x5819db[_0x1eee00]['function']?_[_0xd0d3('0x79')](_0x2a6f0c[_0x5819db[_0x1eee00]['function']],'%s',_0x135902):_0x135902;_0x135902=_0x5819db[_0x1eee00][_0xd0d3('0x7a')]?_[_0xd0d3('0x79')](_0x14a578[_0x5819db[_0x1eee00][_0xd0d3('0x7a')]],'%s',_0x135902):_0x135902;if(_0x5819db[_0x1eee00][_0xd0d3('0x7b')]){_0x29c862[_0xd0d3('0x6c')](_0x135902);}_0x5819db[_0x1eee00][_0xd0d3('0x7c')]&&_0x29c862[_0xd0d3('0x3e')](_0x135902,_0x5819db[_0x1eee00][_0xd0d3('0x7c')]==='DESC'?![]:!![]);_0x29c862[_0xd0d3('0x6d')](_0x135902,_0x5819db[_0x1eee00]['alias']||_0x135902);}if(_0x40df09[_0xd0d3('0x7e')]){_0x40df09['joins']=JSON['parse'](_0x40df09[_0xd0d3('0x7e')]);for(var _0x45f89f=0x0;_0x45f89f<_0x40df09[_0xd0d3('0x7e')][_0xd0d3('0x4b')];_0x45f89f+=0x1){if(_0x40df09[_0xd0d3('0x7e')][_0x45f89f][_0xd0d3('0x34')]&&_[_0xd0d3('0x66')](_0xa1ac16,_0x40df09[_0xd0d3('0x7e')][_0x45f89f][_0xd0d3('0x34')])&&_0x40df09['joins'][_0x45f89f][_0xd0d3('0x81')]&&_0x40df09[_0xd0d3('0x7e')][_0x45f89f]['foreignTable']&&_0x40df09[_0xd0d3('0x7e')][_0x45f89f]['foreignKey']){_0x29c862[_0x40df09['joins'][_0x45f89f][_0xd0d3('0x34')]](_0x40df09['joins'][_0x45f89f]['foreignTable'],null,util[_0xd0d3('0x7a')](_0xd0d3('0x93'),_0x40df09['table'],_0x40df09['joins'][_0x45f89f]['parentKey'],_0x40df09[_0xd0d3('0x7e')][_0x45f89f][_0xd0d3('0x7f')],_0x40df09[_0xd0d3('0x7e')][_0x45f89f][_0xd0d3('0x80')]));}}}if(_0x40df09[_0xd0d3('0x82')]){_0x40df09[_0xd0d3('0x82')]=JSON[_0xd0d3('0x83')](_0x40df09['conditions']);_0x29c862['where'](_0x34b141(_0x40df09['conditions']['group']));}_0x32f2b=_0x29c862['clone']();_0x29c862['limit'](_0x45363f);_0x29c862[_0xd0d3('0x20')](0x0);return;}})[_0xd0d3('0x29')](function(){if(_0x45466c[_0xd0d3('0x94')]==='web'){return null;}var _0x5ca981=_[_0xd0d3('0x42')](_0x45466c,{'name':_0x45466c[_0xd0d3('0x95')]||_0x45466c[_0xd0d3('0x2f')]||_0x40df09[_0xd0d3('0x2f')],'basename':_0x1311b4,'savename':util[_0xd0d3('0x7a')](_0xd0d3('0x96'),_0x45466c[_0xd0d3('0x2f')]||_0x40df09[_0xd0d3('0x2f')],require(_0xd0d3('0x97'))[_0xd0d3('0x98')](0x4),_0x45466c[_0xd0d3('0x94')]||'csv'),'reportId':_0x40df09['id'],'reportType':_0xd0d3('0x99')});return db['AnalyticExtractedReport']['create'](_0x5ca981,{'raw':!![]});})[_0xd0d3('0x29')](function(_0x270379){if(_0x40df09[_0xd0d3('0x75')]==='cdr'){_0x32f2b[_0xd0d3('0x40')](_0x40df09[_0xd0d3('0x75')]+_0xd0d3('0x9a'),_0x45466c[_0xd0d3('0x9b')],_0x45466c[_0xd0d3('0x9c')]);}else{_0x32f2b[_0xd0d3('0x40')](_0x40df09['table']+_0xd0d3('0x9d'),_0x45466c[_0xd0d3('0x9b')],_0x45466c[_0xd0d3('0x9c')]);}if(_0x270379){logger['info'](_0xd0d3('0x9e'),_0x32f2b[_0xd0d3('0x87')]());require('child_process')['fork'](path[_0xd0d3('0x59')](__dirname,_0xd0d3('0x9f'),_0x270379['output']),[_0x270379['id'],_0x32f2b['toString'](),path['join'](__dirname,'../../files/reports',_0x270379['savename']),_0x1311b4]);return _0x270379;}else{var _0x25ecfe=squel[_0xd0d3('0x92')]();_0x25ecfe[_0xd0d3('0x74')]('('+_0x32f2b[_0xd0d3('0x87')]()+')','countTable');_0x25ecfe[_0xd0d3('0x6d')](_0xd0d3('0xa0'),'count');_0x32f2b[_0xd0d3('0x21')](_0x45466c[_0xd0d3('0x21')]||_0x45363f);_0x32f2b[_0xd0d3('0x20')](_0x45466c[_0xd0d3('0x20')]||0x0);return dbH[_0xd0d3('0x88')][_0xd0d3('0x37')](_0x25ecfe[_0xd0d3('0x87')](),{'type':dbH[_0xd0d3('0x88')][_0xd0d3('0x89')][_0xd0d3('0x8a')]})[_0xd0d3('0x29')](function(_0x538ccb){if(!_0x538ccb[_0xd0d3('0x4b')]){_0x549696=0x0;}else{_0x549696=_0x538ccb[0x0][_0xd0d3('0x1f')]||0x0;}return dbH[_0xd0d3('0x88')]['query'](_0x32f2b[_0xd0d3('0x87')](),{'type':dbH[_0xd0d3('0x88')]['QueryTypes'][_0xd0d3('0x8a')]});})[_0xd0d3('0x29')](function(_0x733981){return{'rows':_0x733981||[],'count':_0x549696};});}});}exports[_0xd0d3('0xa1')]=function(_0x53dc6e,_0x387c5b){return runReport(_0x53dc6e[_0xd0d3('0x49')],_0x53dc6e[_0xd0d3('0x37')],_0x53dc6e[_0xd0d3('0x43')])[_0xd0d3('0x29')](respondWithResult(_0x387c5b,null))[_0xd0d3('0x48')](handleError(_0x387c5b,null));};exports[_0xd0d3('0xa2')]=runReport;exports[_0xd0d3('0x37')]=function(_0x32ffb1,_0xf76017){var _0x4d2d5b=0xa;var _0xb20b04=[_0xd0d3('0x59'),'left_join',_0xd0d3('0x5b'),_0xd0d3('0x5c')];var _0x35774a={'SUM':_0xd0d3('0x8b'),'COUNT':_0xd0d3('0x8c'),'COUNT DISTINCT':_0xd0d3('0x5d'),'MAX':_0xd0d3('0xa3'),'MIN':_0xd0d3('0x5e'),'AVG':_0xd0d3('0x5f'),'GROUP_CONCAT':_0xd0d3('0x60'),'GROUP_CONCAT ASC':_0xd0d3('0x61'),'GROUP_CONCAT DESC':_0xd0d3('0x62')};var _0xf2dbcc={'SEC_TO_TIME':_0xd0d3('0x8d'),'DATE':'DATE(%s)','HOUR':'HOUR(%s)','ROUND':_0xd0d3('0x64'),'UNIX_TIMESTAMP':_0xd0d3('0x65')};var _0x4137d6=function(_0x226fb6){return!_[_0xd0d3('0x66')]([_0xd0d3('0x67'),'IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY'],_0x226fb6);};var _0x3772b6=function(_0x261aca){if(!_0x261aca||!_0x261aca[_0xd0d3('0x6a')][_0xd0d3('0x4b')]){return'';}for(var _0x48c0c5='(',_0x546a30=0x0;_0x546a30<_0x261aca[_0xd0d3('0x6a')][_0xd0d3('0x4b')];_0x546a30+=0x1){_0x546a30>0x0&&(_0x48c0c5+='\x20'+_0x261aca[_0xd0d3('0x6b')]+'\x20');_0x48c0c5+=_0x261aca[_0xd0d3('0x6a')][_0x546a30]['group']?_0x3772b6(_0x261aca[_0xd0d3('0x6a')][_0x546a30][_0xd0d3('0x6c')]):_0x261aca[_0xd0d3('0x6a')][_0x546a30][_0xd0d3('0x6d')]+'\x20'+_0x261aca['rules'][_0x546a30][_0xd0d3('0x6e')]+(_0x4137d6(_0x261aca['rules'][_0x546a30][_0xd0d3('0x6e')])?'\x20'+_0x261aca[_0xd0d3('0x6a')][_0x546a30][_0xd0d3('0x90')]:'');}return _0x48c0c5+')';};var _0x367ed9={'where':{'id':_0x32ffb1[_0xd0d3('0x49')]['id']}},_0x24a4b7,_0x17dc56,_0x38d256,_0x40be9a,_0x2df404;_0x367ed9=_['merge']({},_0x367ed9,_0x32ffb1['options']);return db[_0xd0d3('0x44')]['find'](_0x367ed9)[_0xd0d3('0x29')](function(_0x15bb5b){if(_0x15bb5b){_0x24a4b7=_0x15bb5b;return _0x15bb5b['getFields']();}return null;})['then'](function(_0x262119){if(_0x262119){if(!_0x262119[_0xd0d3('0x4b')]){throw new db[(_0xd0d3('0x70'))][(_0xd0d3('0x71'))](_0xd0d3('0x72'),0x193);}_0x17dc56=_0x262119;return db[_0xd0d3('0x73')][_0xd0d3('0x46')]({'raw':!![]});}return null;})[_0xd0d3('0x29')](function(_0x55e854){if(_0x55e854){_0x38d256=_['keyBy'](_0x55e854,'id');var _0x53dbc8;var _0x510f9b=squel['select']();_0x510f9b[_0xd0d3('0x74')](_0x24a4b7[_0xd0d3('0x75')]);for(var _0xb96539=0x0;_0xb96539<_0x17dc56[_0xd0d3('0x4b')];_0xb96539+=0x1){_0x53dbc8=_0x17dc56[_0xb96539]['MetricId']?_0x38d256[_0x17dc56[_0xb96539]['MetricId']][_0xd0d3('0x77')]:_0x17dc56[_0xb96539][_0xd0d3('0x6d')];_0x53dbc8=_0x17dc56[_0xb96539][_0xd0d3('0x78')]?_[_0xd0d3('0x79')](_0x35774a[_0x17dc56[_0xb96539]['function']],'%s',_0x53dbc8):_0x53dbc8;_0x53dbc8=_0x17dc56[_0xb96539][_0xd0d3('0x7a')]?_[_0xd0d3('0x79')](_0xf2dbcc[_0x17dc56[_0xb96539]['format']],'%s',_0x53dbc8):_0x53dbc8;if(_0x17dc56[_0xb96539][_0xd0d3('0x7b')]){_0x510f9b['group'](_0x53dbc8);}_0x17dc56[_0xb96539][_0xd0d3('0x7c')]&&_0x510f9b['order'](_0x53dbc8,_0x17dc56[_0xb96539][_0xd0d3('0x7c')]===_0xd0d3('0xa4')?![]:!![]);_0x510f9b[_0xd0d3('0x6d')](_0x53dbc8,_0x17dc56[_0xb96539][_0xd0d3('0x7d')]||_0x53dbc8);}if(_0x24a4b7[_0xd0d3('0x7e')]){_0x24a4b7[_0xd0d3('0x7e')]=JSON['parse'](_0x24a4b7[_0xd0d3('0x7e')]);for(var _0xe013f9=0x0;_0xe013f9<_0x24a4b7[_0xd0d3('0x7e')][_0xd0d3('0x4b')];_0xe013f9+=0x1){if(_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9]['type']&&_[_0xd0d3('0x66')](_0xb20b04,_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9]['type'])&&_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9][_0xd0d3('0x81')]&&_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9][_0xd0d3('0x7f')]&&_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9][_0xd0d3('0x80')]){_0x510f9b[_0x24a4b7['joins'][_0xe013f9][_0xd0d3('0x34')]](_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9][_0xd0d3('0x7f')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x24a4b7[_0xd0d3('0x75')],_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9]['parentKey'],_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9]['foreignTable'],_0x24a4b7[_0xd0d3('0x7e')][_0xe013f9][_0xd0d3('0x80')]));}}}if(_0x24a4b7[_0xd0d3('0x82')]){_0x24a4b7[_0xd0d3('0x82')]=JSON[_0xd0d3('0x83')](_0x24a4b7[_0xd0d3('0x82')]);_0x510f9b[_0xd0d3('0x40')](_0x3772b6(_0x24a4b7[_0xd0d3('0x82')][_0xd0d3('0x6c')]));}_0x2df404=_0x510f9b[_0xd0d3('0x84')]();_0x510f9b[_0xd0d3('0x21')](_0x4d2d5b);_0x510f9b['offset'](0x0);logger[_0xd0d3('0x85')](_0xd0d3('0x86'),_0x510f9b[_0xd0d3('0x87')]());return dbH['sequelize'][_0xd0d3('0x37')](_0x510f9b[_0xd0d3('0x87')](),{'type':dbH[_0xd0d3('0x88')][_0xd0d3('0x89')][_0xd0d3('0x8a')]});}})[_0xd0d3('0x29')](function(){return{'sql':_0x2df404[_0xd0d3('0x87')]()};})['then'](respondWithResult(_0xf76017,null))[_0xd0d3('0x48')](handleError(_0xf76017,null));};