4bdb2e8879dddc5bbcbeaa48602a31c6e6cad4e4
[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 _0x4a62=['DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','conditions','clone','Limited\x20Query:','sequelize','toString','QueryTypes','SELECT','SUM(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20NOT\x20NULL','field','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','savename','countTable','run','runReport','Sequelize','debug','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','dbH','status','end','count','limit','set','Content-Range','json','reject','save','update','then','destroy','CustomReports','UserProfileResource','error','stack','name','index','rawAttributes','key','model','keys','query','intersection','attributes','fields','nolimit','offset','order','sort','where','filters','filter','map','type','VIRTUAL','merge','options','AnalyticCustomReport','include','findAll','rows','catch','show','params','length','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','HOUR(%s)','ROUND(%s)','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','operator','group','condition','value','getFields','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy'];(function(_0x26d386,_0x1660c0){var _0x4ef9a8=function(_0x55e2d3){while(--_0x55e2d3){_0x26d386['push'](_0x26d386['shift']());}};_0x4ef9a8(++_0x1660c0);}(_0x4a62,0xd5));var _0x24a6=function(_0x4677f9,_0x23e69e){_0x4677f9=_0x4677f9-0x0;var _0x4b2068=_0x4a62[_0x4677f9];return _0x4b2068;};'use strict';var pdf=require(_0x24a6('0x0'));var emlformat=require(_0x24a6('0x1'));var rimraf=require(_0x24a6('0x2'));var zipdir=require(_0x24a6('0x3'));var jsonpatch=require(_0x24a6('0x4'));var rp=require(_0x24a6('0x5'));var moment=require(_0x24a6('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x24a6('0x7'));var path=require(_0x24a6('0x8'));var sox=require(_0x24a6('0x9'));var csv=require(_0x24a6('0xa'));var ejs=require(_0x24a6('0xb'));var fs=require('fs');var _=require(_0x24a6('0xc'));var squel=require(_0x24a6('0xd'));var crypto=require(_0x24a6('0xe'));var jsforce=require(_0x24a6('0xf'));var deskjs=require(_0x24a6('0x10'));var toCsv=require('to-csv');var querystring=require(_0x24a6('0x11'));var Papa=require(_0x24a6('0x12'));var Redis=require(_0x24a6('0x13'));var authService=require(_0x24a6('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x24a6('0x15'));var hardwareService=require(_0x24a6('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x24a6('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x24a6('0x18'));var db=require(_0x24a6('0x19'))['db'];var dbH=require(_0x24a6('0x19'))[_0x24a6('0x1a')];function respondWithStatusCode(_0x1e226e,_0x861c55){_0x861c55=_0x861c55||0xcc;return function(_0x3011ef){if(_0x3011ef){return _0x1e226e['sendStatus'](_0x861c55);}return _0x1e226e[_0x24a6('0x1b')](_0x861c55)[_0x24a6('0x1c')]();};}function respondWithResult(_0x3c6a78,_0x30df2c){_0x30df2c=_0x30df2c||0xc8;return function(_0x8e9fd){if(_0x8e9fd){return _0x3c6a78['status'](_0x30df2c)['json'](_0x8e9fd);}};}function respondWithFilteredResult(_0xc7b00e,_0x12c08a){return function(_0x1b86fa){if(_0x1b86fa){var _0x579c48=_0x1b86fa[_0x24a6('0x1d')],_0x3afd45=_0x12c08a['offset'],_0x54ae60=_0x12c08a['offset']+_0x12c08a[_0x24a6('0x1e')],_0x3d0fe4;if(_0x54ae60>=_0x579c48){_0x54ae60=_0x579c48;_0x3d0fe4=0xc8;}else{_0x3d0fe4=0xce;}_0xc7b00e[_0x24a6('0x1b')](_0x3d0fe4);return _0xc7b00e[_0x24a6('0x1f')](_0x24a6('0x20'),_0x3afd45+'-'+_0x54ae60+'/'+_0x579c48)[_0x24a6('0x21')](_0x1b86fa);}return null;};}function patchUpdates(_0x20d322){return function(_0x5639c3){try{jsonpatch['apply'](_0x5639c3,_0x20d322,!![]);}catch(_0x5bc538){return BPromise[_0x24a6('0x22')](_0x5bc538);}return _0x5639c3[_0x24a6('0x23')]();};}function saveUpdates(_0xf886c9,_0x4a2216){return function(_0xd2ed35){if(_0xd2ed35){return _0xd2ed35[_0x24a6('0x24')](_0xf886c9)[_0x24a6('0x25')](function(_0x2d8e45){return _0x2d8e45;});}return null;};}function removeEntity(_0x40ee6c,_0x2a050b){return function(_0x13d401){if(_0x13d401){return _0x13d401[_0x24a6('0x26')]()[_0x24a6('0x25')](function(){var _0x4162b1=_0x13d401['get']({'plain':!![]});var _0xa4e7d3=_0x24a6('0x27');return db[_0x24a6('0x28')][_0x24a6('0x26')]({'where':{'type':_0xa4e7d3,'resourceId':_0x4162b1['id']}})['then'](function(){return _0x13d401;});})[_0x24a6('0x25')](function(){_0x40ee6c[_0x24a6('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x582cc5,_0x1b5225){return function(_0x2025e8){if(!_0x2025e8){_0x582cc5['sendStatus'](0x194);}return _0x2025e8;};}function handleError(_0x613000,_0xc680ac){_0xc680ac=_0xc680ac||0x1f4;return function(_0x259824){logger[_0x24a6('0x29')](_0x259824[_0x24a6('0x2a')]);if(_0x259824[_0x24a6('0x2b')]){delete _0x259824[_0x24a6('0x2b')];}_0x613000[_0x24a6('0x1b')](_0xc680ac)['send'](_0x259824);};}exports[_0x24a6('0x2c')]=function(_0xd13eb7,_0x107648){var _0x313802={},_0x1f36ca={},_0x59313a={'count':0x0,'rows':[]};var _0x4034ed=_['map'](db['AnalyticCustomReport'][_0x24a6('0x2d')],function(_0x24079d){return{'name':_0x24079d['fieldName'],'type':_0x24079d['type'][_0x24a6('0x2e')]};});_0x1f36ca[_0x24a6('0x2f')]=_['map'](_0x4034ed,_0x24a6('0x2b'));_0x1f36ca['query']=_[_0x24a6('0x30')](_0xd13eb7[_0x24a6('0x31')]);_0x1f36ca['filters']=_[_0x24a6('0x32')](_0x1f36ca[_0x24a6('0x2f')],_0x1f36ca[_0x24a6('0x31')]);_0x313802[_0x24a6('0x33')]=_[_0x24a6('0x32')](_0x1f36ca[_0x24a6('0x2f')],qs[_0x24a6('0x34')](_0xd13eb7[_0x24a6('0x31')][_0x24a6('0x34')]));_0x313802[_0x24a6('0x33')]=_0x313802[_0x24a6('0x33')]['length']?_0x313802['attributes']:_0x1f36ca['model'];if(!_0xd13eb7[_0x24a6('0x31')]['hasOwnProperty'](_0x24a6('0x35'))){_0x313802[_0x24a6('0x1e')]=qs['limit'](_0xd13eb7[_0x24a6('0x31')]['limit']);_0x313802['offset']=qs['offset'](_0xd13eb7[_0x24a6('0x31')][_0x24a6('0x36')]);}_0x313802[_0x24a6('0x37')]=qs['sort'](_0xd13eb7[_0x24a6('0x31')][_0x24a6('0x38')]);_0x313802[_0x24a6('0x39')]=qs[_0x24a6('0x3a')](_['pick'](_0xd13eb7[_0x24a6('0x31')],_0x1f36ca[_0x24a6('0x3a')]),_0x4034ed);if(_0xd13eb7['query'][_0x24a6('0x3b')]){_0x313802[_0x24a6('0x39')]=_['merge'](_0x313802[_0x24a6('0x39')],{'$or':_[_0x24a6('0x3c')](_0x4034ed,function(_0x55dfc9){if(_0x55dfc9[_0x24a6('0x3d')]!==_0x24a6('0x3e')){var _0x209d0a={};_0x209d0a[_0x55dfc9['name']]={'$like':'%'+_0xd13eb7[_0x24a6('0x31')][_0x24a6('0x3b')]+'%'};return _0x209d0a;}})});}_0x313802=_[_0x24a6('0x3f')]({},_0x313802,_0xd13eb7[_0x24a6('0x40')]);var _0x3e9fbc={'where':_0x313802[_0x24a6('0x39')]};return db[_0x24a6('0x41')][_0x24a6('0x1d')](_0x3e9fbc)[_0x24a6('0x25')](function(_0x5e179b){_0x59313a['count']=_0x5e179b;if(_0xd13eb7['query']['includeAll']){_0x313802[_0x24a6('0x42')]=[{'all':!![]}];}return db[_0x24a6('0x41')][_0x24a6('0x43')](_0x313802);})[_0x24a6('0x25')](function(_0x588099){_0x59313a[_0x24a6('0x44')]=_0x588099;return _0x59313a;})[_0x24a6('0x25')](respondWithFilteredResult(_0x107648,_0x313802))[_0x24a6('0x45')](handleError(_0x107648,null));};exports[_0x24a6('0x46')]=function(_0x1d0b47,_0x5a9766){var _0x17b506={'raw':![],'where':{'id':_0x1d0b47[_0x24a6('0x47')]['id']}},_0x2688d8={};_0x2688d8['model']=_[_0x24a6('0x30')](db[_0x24a6('0x41')][_0x24a6('0x2d')]);_0x2688d8['query']=_[_0x24a6('0x30')](_0x1d0b47[_0x24a6('0x31')]);_0x2688d8[_0x24a6('0x3a')]=_[_0x24a6('0x32')](_0x2688d8[_0x24a6('0x2f')],_0x2688d8['query']);_0x17b506[_0x24a6('0x33')]=_['intersection'](_0x2688d8['model'],qs['fields'](_0x1d0b47['query'][_0x24a6('0x34')]));_0x17b506[_0x24a6('0x33')]=_0x17b506[_0x24a6('0x33')][_0x24a6('0x48')]?_0x17b506[_0x24a6('0x33')]:_0x2688d8['model'];if(_0x1d0b47[_0x24a6('0x31')][_0x24a6('0x49')]){_0x17b506[_0x24a6('0x42')]=[{'all':!![]}];}_0x17b506=_[_0x24a6('0x3f')]({},_0x17b506,_0x1d0b47['options']);return db[_0x24a6('0x41')][_0x24a6('0x4a')](_0x17b506)[_0x24a6('0x25')](handleEntityNotFound(_0x5a9766,null))[_0x24a6('0x25')](respondWithResult(_0x5a9766,null))['catch'](handleError(_0x5a9766,null));};exports[_0x24a6('0x4b')]=function(_0x3a439b,_0x5a434d){return db['AnalyticCustomReport']['create'](_0x3a439b[_0x24a6('0x4c')],{})[_0x24a6('0x25')](function(_0xc97c68){var _0x1327b8=_0x3a439b[_0x24a6('0x4d')][_0x24a6('0x4e')]({'plain':!![]});if(!_0x1327b8)throw new Error(_0x24a6('0x4f'));if(_0x1327b8[_0x24a6('0x50')]===_0x24a6('0x4d')){var _0x6732f2=_0xc97c68['get']({'plain':!![]});var _0x11a82b='Reports';return db['UserProfileSection']['find']({'where':{'name':_0x11a82b,'userProfileId':_0x1327b8['userProfileId']},'raw':!![]})[_0x24a6('0x25')](function(_0x4daf4c){if(_0x4daf4c&&_0x4daf4c['autoAssociation']===0x0){return db[_0x24a6('0x28')][_0x24a6('0x4b')]({'name':_0x6732f2['name'],'resourceId':_0x6732f2['id'],'type':_0x24a6('0x27'),'sectionId':_0x4daf4c['id']},{})['then'](function(){return _0xc97c68;});}else{return _0xc97c68;}})[_0x24a6('0x45')](function(_0x485d14){logger[_0x24a6('0x29')](_0x24a6('0x51'),_0x485d14);throw _0x485d14;});}return _0xc97c68;})['then'](respondWithResult(_0x5a434d,0xc9))['catch'](handleError(_0x5a434d,null));};exports[_0x24a6('0x24')]=function(_0x1352b3,_0x7d2130){if(_0x1352b3[_0x24a6('0x4c')]['id']){delete _0x1352b3[_0x24a6('0x4c')]['id'];}return db['AnalyticCustomReport'][_0x24a6('0x4a')]({'where':{'id':_0x1352b3[_0x24a6('0x47')]['id']}})[_0x24a6('0x25')](handleEntityNotFound(_0x7d2130,null))[_0x24a6('0x25')](saveUpdates(_0x1352b3[_0x24a6('0x4c')],null))[_0x24a6('0x25')](respondWithResult(_0x7d2130,null))[_0x24a6('0x45')](handleError(_0x7d2130,null));};exports[_0x24a6('0x26')]=function(_0x2f7367,_0x2bc5a6){return db[_0x24a6('0x41')][_0x24a6('0x4a')]({'where':{'id':_0x2f7367[_0x24a6('0x47')]['id']}})['then'](handleEntityNotFound(_0x2bc5a6,null))[_0x24a6('0x25')](removeEntity(_0x2bc5a6,null))[_0x24a6('0x45')](handleError(_0x2bc5a6,null));};exports[_0x24a6('0x52')]=function(_0x9fd7ff,_0x4f1809){var _0x426aca=0xa;var _0x5f3412=[_0x24a6('0x53'),_0x24a6('0x54'),_0x24a6('0x55'),_0x24a6('0x56')];var _0x365a5a={'SUM':'SUM(%s)','COUNT':_0x24a6('0x57'),'COUNT DISTINCT':_0x24a6('0x58'),'MAX':_0x24a6('0x59'),'MIN':_0x24a6('0x5a'),'AVG':_0x24a6('0x5b'),'GROUP_CONCAT':_0x24a6('0x5c'),'GROUP_CONCAT ASC':_0x24a6('0x5d'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xd95faa={'SEC_TO_TIME':_0x24a6('0x5e'),'DATE':'DATE(%s)','HOUR':_0x24a6('0x5f'),'ROUND':_0x24a6('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x16624a=function(_0x39d367){return!_['includes'](['IS\x20NULL','IS\x20NOT\x20NULL',_0x24a6('0x61'),_0x24a6('0x62')],_0x39d367);};var _0xf561de=function(_0x518573){if(!_0x518573||!_0x518573[_0x24a6('0x63')][_0x24a6('0x48')]){return'';}for(var _0x4ca7f3='(',_0x3f90cd=0x0;_0x3f90cd<_0x518573[_0x24a6('0x63')][_0x24a6('0x48')];_0x3f90cd+=0x1){_0x3f90cd>0x0&&(_0x4ca7f3+='\x20'+_0x518573[_0x24a6('0x64')]+'\x20');_0x4ca7f3+=_0x518573[_0x24a6('0x63')][_0x3f90cd][_0x24a6('0x65')]?_0xf561de(_0x518573[_0x24a6('0x63')][_0x3f90cd][_0x24a6('0x65')]):_0x518573[_0x24a6('0x63')][_0x3f90cd]['field']+'\x20'+_0x518573[_0x24a6('0x63')][_0x3f90cd]['condition']+(_0x16624a(_0x518573[_0x24a6('0x63')][_0x3f90cd][_0x24a6('0x66')])?'\x20'+_0x518573['rules'][_0x3f90cd][_0x24a6('0x67')]:'');}return _0x4ca7f3+')';};var _0x4f7a96={'where':{'id':_0x9fd7ff[_0x24a6('0x47')]['id']}},_0x3683e0,_0x1c0f82,_0x8bba59,_0x263dfb,_0x2c7123;_0x4f7a96=_[_0x24a6('0x3f')]({},_0x4f7a96,_0x9fd7ff[_0x24a6('0x40')]);return db[_0x24a6('0x41')][_0x24a6('0x4a')](_0x4f7a96)[_0x24a6('0x25')](function(_0x504e1d){if(_0x504e1d){_0x3683e0=_0x504e1d;return _0x504e1d[_0x24a6('0x68')]();}return null;})['then'](function(_0x4a83fb){if(_0x4a83fb){if(!_0x4a83fb[_0x24a6('0x48')]){throw new db['Sequelize'][(_0x24a6('0x69'))](_0x24a6('0x6a'),0x193);}_0x1c0f82=_0x4a83fb;return db[_0x24a6('0x6b')][_0x24a6('0x43')]({'raw':!![]});}return null;})['then'](function(_0xbcbe3a){if(_0xbcbe3a){_0x8bba59=_[_0x24a6('0x6c')](_0xbcbe3a,'id');var _0x57c221;var _0x2af828=squel[_0x24a6('0x6d')]();_0x2af828[_0x24a6('0x6e')](_0x3683e0[_0x24a6('0x6f')]);for(var _0xd1bb83=0x0;_0xd1bb83<_0x1c0f82[_0x24a6('0x48')];_0xd1bb83+=0x1){_0x57c221=_0x1c0f82[_0xd1bb83][_0x24a6('0x70')]?_0x8bba59[_0x1c0f82[_0xd1bb83][_0x24a6('0x70')]][_0x24a6('0x71')]:_0x1c0f82[_0xd1bb83]['field'];_0x57c221=_0x1c0f82[_0xd1bb83][_0x24a6('0x72')]?_[_0x24a6('0x73')](_0x365a5a[_0x1c0f82[_0xd1bb83][_0x24a6('0x72')]],'%s',_0x57c221):_0x57c221;_0x57c221=_0x1c0f82[_0xd1bb83][_0x24a6('0x74')]?_['replace'](_0xd95faa[_0x1c0f82[_0xd1bb83][_0x24a6('0x74')]],'%s',_0x57c221):_0x57c221;if(_0x1c0f82[_0xd1bb83][_0x24a6('0x75')]){_0x2af828['group'](_0x57c221);}_0x1c0f82[_0xd1bb83][_0x24a6('0x76')]&&_0x2af828[_0x24a6('0x37')](_0x57c221,_0x1c0f82[_0xd1bb83]['orderBy']===_0x24a6('0x77')?![]:!![]);_0x2af828['field'](_0x57c221,_0x1c0f82[_0xd1bb83][_0x24a6('0x78')]||_0x57c221);}if(_0x3683e0['joins']){_0x3683e0[_0x24a6('0x79')]=JSON[_0x24a6('0x7a')](_0x3683e0['joins']);for(var _0x195a02=0x0;_0x195a02<_0x3683e0[_0x24a6('0x79')][_0x24a6('0x48')];_0x195a02+=0x1){if(_0x3683e0[_0x24a6('0x79')][_0x195a02]['type']&&_[_0x24a6('0x7b')](_0x5f3412,_0x3683e0['joins'][_0x195a02][_0x24a6('0x3d')])&&_0x3683e0['joins'][_0x195a02][_0x24a6('0x7c')]&&_0x3683e0['joins'][_0x195a02][_0x24a6('0x7d')]&&_0x3683e0[_0x24a6('0x79')][_0x195a02][_0x24a6('0x7e')]){_0x2af828[_0x3683e0[_0x24a6('0x79')][_0x195a02][_0x24a6('0x3d')]](_0x3683e0[_0x24a6('0x79')][_0x195a02][_0x24a6('0x7d')],null,util[_0x24a6('0x74')](_0x24a6('0x7f'),_0x3683e0['table'],_0x3683e0[_0x24a6('0x79')][_0x195a02][_0x24a6('0x7c')],_0x3683e0['joins'][_0x195a02][_0x24a6('0x7d')],_0x3683e0[_0x24a6('0x79')][_0x195a02][_0x24a6('0x7e')]));}}}if(_0x3683e0[_0x24a6('0x80')]){_0x3683e0[_0x24a6('0x80')]=JSON[_0x24a6('0x7a')](_0x3683e0[_0x24a6('0x80')]);_0x2af828[_0x24a6('0x39')](_0xf561de(_0x3683e0[_0x24a6('0x80')][_0x24a6('0x65')]));}_0x2c7123=_0x2af828[_0x24a6('0x81')]();_0x2af828[_0x24a6('0x1e')](_0x426aca);_0x2af828[_0x24a6('0x36')](0x0);logger['debug'](_0x24a6('0x82'),_0x2af828['toString']());return dbH[_0x24a6('0x83')][_0x24a6('0x31')](_0x2af828[_0x24a6('0x84')](),{'type':dbH[_0x24a6('0x83')][_0x24a6('0x85')][_0x24a6('0x86')]});}})[_0x24a6('0x25')](respondWithResult(_0x4f1809,null))[_0x24a6('0x45')](handleError(_0x4f1809,null));};function runReport(_0x290836,_0x875e0c,_0x44aeb3){var _0x135390=_0x875e0c[_0x24a6('0x2b')];var _0x244b73=0xa;var _0x15b7fa=[_0x24a6('0x53'),_0x24a6('0x54'),_0x24a6('0x55'),'cross_join'];var _0x42cda7={'SUM':_0x24a6('0x87'),'COUNT':_0x24a6('0x57'),'COUNT DISTINCT':_0x24a6('0x58'),'MAX':_0x24a6('0x59'),'MIN':_0x24a6('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x24a6('0x5c'),'GROUP_CONCAT ASC':_0x24a6('0x5d'),'GROUP_CONCAT DESC':_0x24a6('0x88')};var _0x46aa24={'SEC_TO_TIME':_0x24a6('0x5e'),'DATE':_0x24a6('0x89'),'HOUR':_0x24a6('0x5f'),'ROUND':_0x24a6('0x60'),'UNIX_TIMESTAMP':_0x24a6('0x8a')};var _0x172c13=function(_0x18e49f){return!_[_0x24a6('0x7b')]([_0x24a6('0x8b'),_0x24a6('0x8c'),'IS\x20EMPTY',_0x24a6('0x62')],_0x18e49f);};var _0x439251=function(_0x4b96f8){if(!_0x4b96f8||!_0x4b96f8[_0x24a6('0x63')][_0x24a6('0x48')]){return'';}for(var _0x400bf6='(',_0xffc6de=0x0;_0xffc6de<_0x4b96f8['rules'][_0x24a6('0x48')];_0xffc6de+=0x1){_0xffc6de>0x0&&(_0x400bf6+='\x20'+_0x4b96f8[_0x24a6('0x64')]+'\x20');_0x400bf6+=_0x4b96f8[_0x24a6('0x63')][_0xffc6de][_0x24a6('0x65')]?_0x439251(_0x4b96f8[_0x24a6('0x63')][_0xffc6de][_0x24a6('0x65')]):_0x4b96f8[_0x24a6('0x63')][_0xffc6de]['field']+'\x20'+_0x4b96f8['rules'][_0xffc6de][_0x24a6('0x66')]+(_0x172c13(_0x4b96f8['rules'][_0xffc6de][_0x24a6('0x66')])?'\x20'+_0x4b96f8[_0x24a6('0x63')][_0xffc6de][_0x24a6('0x67')]:'');}return _0x400bf6+')';};var _0x423aa7={'where':{'id':_0x290836['id']}},_0x3d6721,_0x285836,_0x718f4b,_0x457bc7,_0x56e377;_0x423aa7=_[_0x24a6('0x3f')]({},_0x423aa7,_0x44aeb3);return db['AnalyticCustomReport'][_0x24a6('0x4a')](_0x423aa7)[_0x24a6('0x25')](function(_0x400aed){if(_0x400aed){_0x3d6721=_0x400aed;return _0x400aed['getFields']();}return null;})[_0x24a6('0x25')](function(_0x250def){if(_0x250def){if(!_0x250def[_0x24a6('0x48')]){throw new db['Sequelize'][(_0x24a6('0x69'))](_0x24a6('0x6a'),0x193);}_0x285836=_0x250def;return db['AnalyticMetric'][_0x24a6('0x43')]({'raw':!![]});}return null;})[_0x24a6('0x25')](function(_0x2d3d4a){if(_0x2d3d4a){_0x718f4b=_[_0x24a6('0x6c')](_0x2d3d4a,'id');var _0x4833a2;var _0x5267d0=squel[_0x24a6('0x6d')]();_0x5267d0[_0x24a6('0x6e')](_0x3d6721[_0x24a6('0x6f')]);for(var _0xc3f483=0x0;_0xc3f483<_0x285836[_0x24a6('0x48')];_0xc3f483+=0x1){_0x4833a2=_0x285836[_0xc3f483]['MetricId']?_0x718f4b[_0x285836[_0xc3f483][_0x24a6('0x70')]][_0x24a6('0x71')]:_0x285836[_0xc3f483]['field'];_0x4833a2=_0x285836[_0xc3f483][_0x24a6('0x72')]?_[_0x24a6('0x73')](_0x42cda7[_0x285836[_0xc3f483][_0x24a6('0x72')]],'%s',_0x4833a2):_0x4833a2;_0x4833a2=_0x285836[_0xc3f483]['format']?_[_0x24a6('0x73')](_0x46aa24[_0x285836[_0xc3f483][_0x24a6('0x74')]],'%s',_0x4833a2):_0x4833a2;if(_0x285836[_0xc3f483][_0x24a6('0x75')]){_0x5267d0[_0x24a6('0x65')](_0x4833a2);}_0x285836[_0xc3f483]['orderBy']&&_0x5267d0[_0x24a6('0x37')](_0x4833a2,_0x285836[_0xc3f483][_0x24a6('0x76')]===_0x24a6('0x77')?![]:!![]);_0x5267d0[_0x24a6('0x8d')](_0x4833a2,_0x285836[_0xc3f483][_0x24a6('0x78')]||_0x4833a2);}if(_0x3d6721[_0x24a6('0x79')]){_0x3d6721[_0x24a6('0x79')]=JSON['parse'](_0x3d6721[_0x24a6('0x79')]);for(var _0x522f25=0x0;_0x522f25<_0x3d6721[_0x24a6('0x79')][_0x24a6('0x48')];_0x522f25+=0x1){if(_0x3d6721['joins'][_0x522f25][_0x24a6('0x3d')]&&_[_0x24a6('0x7b')](_0x15b7fa,_0x3d6721['joins'][_0x522f25][_0x24a6('0x3d')])&&_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7c')]&&_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7d')]&&_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7e')]){_0x5267d0[_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x3d')]](_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7d')],null,util[_0x24a6('0x74')](_0x24a6('0x7f'),_0x3d6721[_0x24a6('0x6f')],_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7c')],_0x3d6721[_0x24a6('0x79')][_0x522f25][_0x24a6('0x7d')],_0x3d6721['joins'][_0x522f25]['foreignKey']));}}}if(_0x3d6721[_0x24a6('0x80')]){_0x3d6721[_0x24a6('0x80')]=JSON[_0x24a6('0x7a')](_0x3d6721['conditions']);_0x5267d0[_0x24a6('0x39')](_0x439251(_0x3d6721['conditions'][_0x24a6('0x65')]));}_0x56e377=_0x5267d0[_0x24a6('0x81')]();_0x5267d0['limit'](_0x244b73);_0x5267d0[_0x24a6('0x36')](0x0);return;}})['then'](function(){if(_0x875e0c[_0x24a6('0x8e')]===_0x24a6('0x8f')){return null;}var _0x3648f8=_[_0x24a6('0x3f')](_0x875e0c,{'name':_0x875e0c[_0x24a6('0x90')]||_0x875e0c[_0x24a6('0x2b')]||_0x3d6721[_0x24a6('0x2b')],'basename':_0x135390,'savename':util[_0x24a6('0x74')](_0x24a6('0x91'),_0x875e0c[_0x24a6('0x2b')]||_0x3d6721[_0x24a6('0x2b')],require(_0x24a6('0x92'))[_0x24a6('0x93')](0x4),_0x875e0c[_0x24a6('0x8e')]||_0x24a6('0x94')),'reportId':_0x3d6721['id'],'reportType':_0x24a6('0x95')});return db['AnalyticExtractedReport'][_0x24a6('0x4b')](_0x3648f8,{'raw':!![]});})[_0x24a6('0x25')](function(_0xf42952){if(_0x3d6721[_0x24a6('0x6f')]===_0x24a6('0x96')){_0x56e377[_0x24a6('0x39')](_0x3d6721[_0x24a6('0x6f')]+_0x24a6('0x97'),_0x875e0c[_0x24a6('0x98')],_0x875e0c[_0x24a6('0x99')]);}else{_0x56e377[_0x24a6('0x39')](_0x3d6721['table']+_0x24a6('0x9a'),_0x875e0c[_0x24a6('0x98')],_0x875e0c[_0x24a6('0x99')]);}if(_0xf42952){logger[_0x24a6('0x9b')](_0x24a6('0x9c'),_0x56e377[_0x24a6('0x84')]());require(_0x24a6('0x9d'))[_0x24a6('0x9e')](path[_0x24a6('0x53')](__dirname,_0x24a6('0x9f'),_0xf42952['output']),[_0xf42952['id'],_0x56e377[_0x24a6('0x84')](),path[_0x24a6('0x53')](__dirname,'../../files/reports',_0xf42952[_0x24a6('0xa0')]),_0x135390]);return _0xf42952;}else{var _0xfbb94d=squel['select']();_0xfbb94d[_0x24a6('0x6e')]('('+_0x56e377['toString']()+')',_0x24a6('0xa1'));_0xfbb94d[_0x24a6('0x8d')]('COUNT(*)','count');_0x56e377['limit'](_0x875e0c[_0x24a6('0x1e')]||_0x244b73);_0x56e377['offset'](_0x875e0c[_0x24a6('0x36')]||0x0);return dbH['sequelize'][_0x24a6('0x31')](_0xfbb94d[_0x24a6('0x84')](),{'type':dbH[_0x24a6('0x83')][_0x24a6('0x85')][_0x24a6('0x86')]})[_0x24a6('0x25')](function(_0x437b86){if(!_0x437b86[_0x24a6('0x48')]){_0x457bc7=0x0;}else{_0x457bc7=_0x437b86[0x0][_0x24a6('0x1d')]||0x0;}return dbH[_0x24a6('0x83')][_0x24a6('0x31')](_0x56e377[_0x24a6('0x84')](),{'type':dbH[_0x24a6('0x83')][_0x24a6('0x85')][_0x24a6('0x86')]});})['then'](function(_0x4cb78a){return{'rows':_0x4cb78a||[],'count':_0x457bc7};});}});}exports[_0x24a6('0xa2')]=function(_0x3dcdeb,_0x303981){return runReport(_0x3dcdeb[_0x24a6('0x47')],_0x3dcdeb[_0x24a6('0x31')],_0x3dcdeb[_0x24a6('0x40')])[_0x24a6('0x25')](respondWithResult(_0x303981,null))[_0x24a6('0x45')](handleError(_0x303981,null));};exports[_0x24a6('0xa3')]=runReport;exports['query']=function(_0x5d0b04,_0x410e76){var _0x4950f5=0xa;var _0x4938ec=[_0x24a6('0x53'),_0x24a6('0x54'),'right_join',_0x24a6('0x56')];var _0x6646eb={'SUM':_0x24a6('0x87'),'COUNT':_0x24a6('0x57'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x24a6('0x59'),'MIN':_0x24a6('0x5a'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x24a6('0x5c'),'GROUP_CONCAT ASC':_0x24a6('0x5d'),'GROUP_CONCAT DESC':_0x24a6('0x88')};var _0x37bbe0={'SEC_TO_TIME':_0x24a6('0x5e'),'DATE':'DATE(%s)','HOUR':_0x24a6('0x5f'),'ROUND':_0x24a6('0x60'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x115156=function(_0x1b5925){return!_[_0x24a6('0x7b')]([_0x24a6('0x8b'),_0x24a6('0x8c'),'IS\x20EMPTY',_0x24a6('0x62')],_0x1b5925);};var _0x3aa8c1=function(_0x562f66){if(!_0x562f66||!_0x562f66['rules'][_0x24a6('0x48')]){return'';}for(var _0x133a8d='(',_0x3023df=0x0;_0x3023df<_0x562f66[_0x24a6('0x63')][_0x24a6('0x48')];_0x3023df+=0x1){_0x3023df>0x0&&(_0x133a8d+='\x20'+_0x562f66['operator']+'\x20');_0x133a8d+=_0x562f66[_0x24a6('0x63')][_0x3023df][_0x24a6('0x65')]?_0x3aa8c1(_0x562f66[_0x24a6('0x63')][_0x3023df][_0x24a6('0x65')]):_0x562f66[_0x24a6('0x63')][_0x3023df][_0x24a6('0x8d')]+'\x20'+_0x562f66[_0x24a6('0x63')][_0x3023df][_0x24a6('0x66')]+(_0x115156(_0x562f66[_0x24a6('0x63')][_0x3023df][_0x24a6('0x66')])?'\x20'+_0x562f66['rules'][_0x3023df][_0x24a6('0x67')]:'');}return _0x133a8d+')';};var _0x1cc145={'where':{'id':_0x5d0b04[_0x24a6('0x47')]['id']}},_0x1688bc,_0x1072ba,_0x31f466,_0xa5057e,_0x578a7a;_0x1cc145=_[_0x24a6('0x3f')]({},_0x1cc145,_0x5d0b04[_0x24a6('0x40')]);return db['AnalyticCustomReport'][_0x24a6('0x4a')](_0x1cc145)[_0x24a6('0x25')](function(_0x4b61db){if(_0x4b61db){_0x1688bc=_0x4b61db;return _0x4b61db['getFields']();}return null;})['then'](function(_0x32b9b5){if(_0x32b9b5){if(!_0x32b9b5[_0x24a6('0x48')]){throw new db[(_0x24a6('0xa4'))][(_0x24a6('0x69'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x1072ba=_0x32b9b5;return db[_0x24a6('0x6b')][_0x24a6('0x43')]({'raw':!![]});}return null;})[_0x24a6('0x25')](function(_0x535ae2){if(_0x535ae2){_0x31f466=_[_0x24a6('0x6c')](_0x535ae2,'id');var _0x14e74c;var _0x3c8941=squel[_0x24a6('0x6d')]();_0x3c8941[_0x24a6('0x6e')](_0x1688bc[_0x24a6('0x6f')]);for(var _0x841b30=0x0;_0x841b30<_0x1072ba[_0x24a6('0x48')];_0x841b30+=0x1){_0x14e74c=_0x1072ba[_0x841b30][_0x24a6('0x70')]?_0x31f466[_0x1072ba[_0x841b30][_0x24a6('0x70')]]['metric']:_0x1072ba[_0x841b30][_0x24a6('0x8d')];_0x14e74c=_0x1072ba[_0x841b30][_0x24a6('0x72')]?_[_0x24a6('0x73')](_0x6646eb[_0x1072ba[_0x841b30][_0x24a6('0x72')]],'%s',_0x14e74c):_0x14e74c;_0x14e74c=_0x1072ba[_0x841b30][_0x24a6('0x74')]?_[_0x24a6('0x73')](_0x37bbe0[_0x1072ba[_0x841b30][_0x24a6('0x74')]],'%s',_0x14e74c):_0x14e74c;if(_0x1072ba[_0x841b30][_0x24a6('0x75')]){_0x3c8941[_0x24a6('0x65')](_0x14e74c);}_0x1072ba[_0x841b30][_0x24a6('0x76')]&&_0x3c8941[_0x24a6('0x37')](_0x14e74c,_0x1072ba[_0x841b30][_0x24a6('0x76')]===_0x24a6('0x77')?![]:!![]);_0x3c8941[_0x24a6('0x8d')](_0x14e74c,_0x1072ba[_0x841b30][_0x24a6('0x78')]||_0x14e74c);}if(_0x1688bc[_0x24a6('0x79')]){_0x1688bc[_0x24a6('0x79')]=JSON['parse'](_0x1688bc[_0x24a6('0x79')]);for(var _0x562970=0x0;_0x562970<_0x1688bc[_0x24a6('0x79')][_0x24a6('0x48')];_0x562970+=0x1){if(_0x1688bc['joins'][_0x562970][_0x24a6('0x3d')]&&_[_0x24a6('0x7b')](_0x4938ec,_0x1688bc['joins'][_0x562970][_0x24a6('0x3d')])&&_0x1688bc[_0x24a6('0x79')][_0x562970][_0x24a6('0x7c')]&&_0x1688bc[_0x24a6('0x79')][_0x562970][_0x24a6('0x7d')]&&_0x1688bc[_0x24a6('0x79')][_0x562970]['foreignKey']){_0x3c8941[_0x1688bc[_0x24a6('0x79')][_0x562970][_0x24a6('0x3d')]](_0x1688bc['joins'][_0x562970][_0x24a6('0x7d')],null,util[_0x24a6('0x74')](_0x24a6('0x7f'),_0x1688bc[_0x24a6('0x6f')],_0x1688bc['joins'][_0x562970][_0x24a6('0x7c')],_0x1688bc['joins'][_0x562970]['foreignTable'],_0x1688bc[_0x24a6('0x79')][_0x562970][_0x24a6('0x7e')]));}}}if(_0x1688bc['conditions']){_0x1688bc['conditions']=JSON[_0x24a6('0x7a')](_0x1688bc[_0x24a6('0x80')]);_0x3c8941[_0x24a6('0x39')](_0x3aa8c1(_0x1688bc[_0x24a6('0x80')][_0x24a6('0x65')]));}_0x578a7a=_0x3c8941[_0x24a6('0x81')]();_0x3c8941[_0x24a6('0x1e')](_0x4950f5);_0x3c8941[_0x24a6('0x36')](0x0);logger[_0x24a6('0xa5')](_0x24a6('0x82'),_0x3c8941['toString']());return dbH[_0x24a6('0x83')][_0x24a6('0x31')](_0x3c8941['toString'](),{'type':dbH['sequelize'][_0x24a6('0x85')]['SELECT']});}})['then'](function(){return{'sql':_0x578a7a[_0x24a6('0x84')]()};})[_0x24a6('0x25')](respondWithResult(_0x410e76,null))[_0x24a6('0x45')](handleError(_0x410e76,null));};