Built motion from commit (unavailable).|2.5.0
[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 _0x9f62=['cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','startDate','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','run','runReport','SUM(%s)','DESC','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','then','get','CustomReports','UserProfileResource','error','stack','name','send','index','map','AnalyticCustomReport','rawAttributes','key','query','keys','intersection','model','attributes','fields','length','nolimit','sort','where','pick','filters','merge','type','filter','options','count','includeAll','include','findAll','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Reports','find','autoAssociation','catch','update','destroy','join','cross_join','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%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)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','group','condition','value','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','metric','field','function','replace','format','order','orderBy','alias','joins','parentKey','foreignKey','%s.%s\x20=\x20%s.%s','parse','conditions','clone','debug','toString','sequelize','QueryTypes','SELECT','left_join','right_join','COUNT(%s)','AVG(%s)','IS\x20NOT\x20NULL','IS\x20EMPTY','getFields','groupBy','foreignTable','Limited\x20Query:','Sequelize','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','custom','AnalyticExtractedReport'];(function(_0xf820ff,_0x165958){var _0xa14bc1=function(_0x61e876){while(--_0x61e876){_0xf820ff['push'](_0xf820ff['shift']());}};_0xa14bc1(++_0x165958);}(_0x9f62,0x154));var _0x29f6=function(_0x4d7a29,_0x4547eb){_0x4d7a29=_0x4d7a29-0x0;var _0x1c6c08=_0x9f62[_0x4d7a29];return _0x1c6c08;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x29f6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x29f6('0x1'));var jsonpatch=require(_0x29f6('0x2'));var rp=require(_0x29f6('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x29f6('0x4'));var util=require(_0x29f6('0x5'));var path=require(_0x29f6('0x6'));var sox=require(_0x29f6('0x7'));var csv=require('to-csv');var ejs=require(_0x29f6('0x8'));var fs=require('fs');var _=require(_0x29f6('0x9'));var squel=require(_0x29f6('0xa'));var crypto=require(_0x29f6('0xb'));var jsforce=require(_0x29f6('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x29f6('0xd'));var authService=require(_0x29f6('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x29f6('0xf'));var logger=require(_0x29f6('0x10'))('api');var utils=require(_0x29f6('0x11'));var config=require(_0x29f6('0x12'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')['dbH'];function respondWithStatusCode(_0x57b2d2,_0x2ae0e4){_0x2ae0e4=_0x2ae0e4||0xcc;return function(_0x55cf4){if(_0x55cf4){return _0x57b2d2[_0x29f6('0x13')](_0x2ae0e4);}return _0x57b2d2[_0x29f6('0x14')](_0x2ae0e4)[_0x29f6('0x15')]();};}function respondWithResult(_0x156c96,_0x35d2e2){_0x35d2e2=_0x35d2e2||0xc8;return function(_0x2418ee){if(_0x2418ee){return _0x156c96[_0x29f6('0x14')](_0x35d2e2)[_0x29f6('0x16')](_0x2418ee);}};}function respondWithFilteredResult(_0x28d314,_0x370484){return function(_0x1dde97){if(_0x1dde97){var _0x3a75d0=_0x1dde97['count'],_0x25e5a2=_0x370484['offset'],_0x14dd56=_0x370484[_0x29f6('0x17')]+_0x370484[_0x29f6('0x18')],_0x3584a1;if(_0x14dd56>=_0x3a75d0){_0x14dd56=_0x3a75d0;_0x3584a1=0xc8;}else{_0x3584a1=0xce;}_0x28d314[_0x29f6('0x14')](_0x3584a1);return _0x28d314['set'](_0x29f6('0x19'),_0x25e5a2+'-'+_0x14dd56+'/'+_0x3a75d0)[_0x29f6('0x16')](_0x1dde97);}return null;};}function patchUpdates(_0x49252f){return function(_0x159227){try{jsonpatch[_0x29f6('0x1a')](_0x159227,_0x49252f,!![]);}catch(_0x42a8fa){return BPromise[_0x29f6('0x1b')](_0x42a8fa);}return _0x159227[_0x29f6('0x1c')]();};}function saveUpdates(_0x2bfb3d,_0x5673c8){return function(_0xfb8fd2){if(_0xfb8fd2){return _0xfb8fd2['update'](_0x2bfb3d)['then'](function(_0x470019){return _0x470019;});}return null;};}function removeEntity(_0x1fa159,_0x39c6b3){return function(_0xafb5dd){if(_0xafb5dd){return _0xafb5dd['destroy']()[_0x29f6('0x1d')](function(){var _0x49f67d=_0xafb5dd[_0x29f6('0x1e')]({'plain':!![]});var _0xcce041=_0x29f6('0x1f');return db[_0x29f6('0x20')]['destroy']({'where':{'type':_0xcce041,'resourceId':_0x49f67d['id']}})[_0x29f6('0x1d')](function(){return _0xafb5dd;});})[_0x29f6('0x1d')](function(){_0x1fa159['status'](0xcc)[_0x29f6('0x15')]();});}};}function handleEntityNotFound(_0x45f792,_0x2519ac){return function(_0x342038){if(!_0x342038){_0x45f792[_0x29f6('0x13')](0x194);}return _0x342038;};}function handleError(_0x4333bc,_0x23c630){_0x23c630=_0x23c630||0x1f4;return function(_0x50cdd2){logger[_0x29f6('0x21')](_0x50cdd2[_0x29f6('0x22')]);if(_0x50cdd2[_0x29f6('0x23')]){delete _0x50cdd2[_0x29f6('0x23')];}_0x4333bc[_0x29f6('0x14')](_0x23c630)[_0x29f6('0x24')](_0x50cdd2);};}exports[_0x29f6('0x25')]=function(_0x17b2f2,_0x3d88db){var _0x13a3a2={},_0x2915bc={},_0x1c3f0b={'count':0x0,'rows':[]};var _0x40c830=_[_0x29f6('0x26')](db[_0x29f6('0x27')][_0x29f6('0x28')],function(_0x3a7249){return{'name':_0x3a7249['fieldName'],'type':_0x3a7249['type'][_0x29f6('0x29')]};});_0x2915bc['model']=_[_0x29f6('0x26')](_0x40c830,_0x29f6('0x23'));_0x2915bc[_0x29f6('0x2a')]=_[_0x29f6('0x2b')](_0x17b2f2['query']);_0x2915bc['filters']=_[_0x29f6('0x2c')](_0x2915bc[_0x29f6('0x2d')],_0x2915bc[_0x29f6('0x2a')]);_0x13a3a2[_0x29f6('0x2e')]=_[_0x29f6('0x2c')](_0x2915bc[_0x29f6('0x2d')],qs[_0x29f6('0x2f')](_0x17b2f2[_0x29f6('0x2a')][_0x29f6('0x2f')]));_0x13a3a2[_0x29f6('0x2e')]=_0x13a3a2[_0x29f6('0x2e')][_0x29f6('0x30')]?_0x13a3a2[_0x29f6('0x2e')]:_0x2915bc[_0x29f6('0x2d')];if(!_0x17b2f2['query']['hasOwnProperty'](_0x29f6('0x31'))){_0x13a3a2[_0x29f6('0x18')]=qs[_0x29f6('0x18')](_0x17b2f2['query'][_0x29f6('0x18')]);_0x13a3a2[_0x29f6('0x17')]=qs[_0x29f6('0x17')](_0x17b2f2[_0x29f6('0x2a')][_0x29f6('0x17')]);}_0x13a3a2['order']=qs[_0x29f6('0x32')](_0x17b2f2[_0x29f6('0x2a')][_0x29f6('0x32')]);_0x13a3a2[_0x29f6('0x33')]=qs['filters'](_[_0x29f6('0x34')](_0x17b2f2[_0x29f6('0x2a')],_0x2915bc[_0x29f6('0x35')]),_0x40c830);if(_0x17b2f2[_0x29f6('0x2a')]['filter']){_0x13a3a2['where']=_[_0x29f6('0x36')](_0x13a3a2['where'],{'$or':_[_0x29f6('0x26')](_0x40c830,function(_0x551411){if(_0x551411[_0x29f6('0x37')]!=='VIRTUAL'){var _0x34b1ea={};_0x34b1ea[_0x551411[_0x29f6('0x23')]]={'$like':'%'+_0x17b2f2['query'][_0x29f6('0x38')]+'%'};return _0x34b1ea;}})});}_0x13a3a2=_['merge']({},_0x13a3a2,_0x17b2f2[_0x29f6('0x39')]);var _0x10b4c0={'where':_0x13a3a2['where']};return db[_0x29f6('0x27')][_0x29f6('0x3a')](_0x10b4c0)[_0x29f6('0x1d')](function(_0x1e9d5a){_0x1c3f0b['count']=_0x1e9d5a;if(_0x17b2f2[_0x29f6('0x2a')][_0x29f6('0x3b')]){_0x13a3a2[_0x29f6('0x3c')]=[{'all':!![]}];}return db[_0x29f6('0x27')][_0x29f6('0x3d')](_0x13a3a2);})['then'](function(_0xb5f2b1){_0x1c3f0b['rows']=_0xb5f2b1;return _0x1c3f0b;})[_0x29f6('0x1d')](respondWithFilteredResult(_0x3d88db,_0x13a3a2))['catch'](handleError(_0x3d88db,null));};exports[_0x29f6('0x3e')]=function(_0x3a8a12,_0x4b1524){var _0x28046c={'raw':![],'where':{'id':_0x3a8a12[_0x29f6('0x3f')]['id']}},_0x2c371f={};_0x2c371f[_0x29f6('0x2d')]=_['keys'](db[_0x29f6('0x27')][_0x29f6('0x28')]);_0x2c371f[_0x29f6('0x2a')]=_['keys'](_0x3a8a12[_0x29f6('0x2a')]);_0x2c371f['filters']=_[_0x29f6('0x2c')](_0x2c371f['model'],_0x2c371f['query']);_0x28046c['attributes']=_[_0x29f6('0x2c')](_0x2c371f[_0x29f6('0x2d')],qs[_0x29f6('0x2f')](_0x3a8a12[_0x29f6('0x2a')][_0x29f6('0x2f')]));_0x28046c[_0x29f6('0x2e')]=_0x28046c[_0x29f6('0x2e')][_0x29f6('0x30')]?_0x28046c[_0x29f6('0x2e')]:_0x2c371f[_0x29f6('0x2d')];if(_0x3a8a12['query']['includeAll']){_0x28046c[_0x29f6('0x3c')]=[{'all':!![]}];}_0x28046c=_[_0x29f6('0x36')]({},_0x28046c,_0x3a8a12[_0x29f6('0x39')]);return db[_0x29f6('0x27')]['find'](_0x28046c)[_0x29f6('0x1d')](handleEntityNotFound(_0x4b1524,null))[_0x29f6('0x1d')](respondWithResult(_0x4b1524,null))['catch'](handleError(_0x4b1524,null));};exports[_0x29f6('0x40')]=function(_0xd8514a,_0x123e2f){return db[_0x29f6('0x27')][_0x29f6('0x40')](_0xd8514a[_0x29f6('0x41')],{})[_0x29f6('0x1d')](function(_0x1f03b6){var _0x2ca712=_0xd8514a[_0x29f6('0x42')][_0x29f6('0x1e')]({'plain':!![]});if(!_0x2ca712)throw new Error(_0x29f6('0x43'));if(_0x2ca712['role']===_0x29f6('0x42')){var _0x463551=_0x1f03b6[_0x29f6('0x1e')]({'plain':!![]});var _0x314e9b=_0x29f6('0x44');return db['UserProfileSection'][_0x29f6('0x45')]({'where':{'name':_0x314e9b,'userProfileId':_0x2ca712['userProfileId']},'raw':!![]})['then'](function(_0x9dfc77){if(_0x9dfc77&&_0x9dfc77[_0x29f6('0x46')]===0x0){return db[_0x29f6('0x20')][_0x29f6('0x40')]({'name':_0x463551[_0x29f6('0x23')],'resourceId':_0x463551['id'],'type':'CustomReports','sectionId':_0x9dfc77['id']},{})[_0x29f6('0x1d')](function(){return _0x1f03b6;});}else{return _0x1f03b6;}})[_0x29f6('0x47')](function(_0x5f42f3){logger[_0x29f6('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5f42f3);throw _0x5f42f3;});}return _0x1f03b6;})[_0x29f6('0x1d')](respondWithResult(_0x123e2f,0xc9))[_0x29f6('0x47')](handleError(_0x123e2f,null));};exports[_0x29f6('0x48')]=function(_0x292567,_0x5c9113){if(_0x292567[_0x29f6('0x41')]['id']){delete _0x292567[_0x29f6('0x41')]['id'];}return db[_0x29f6('0x27')][_0x29f6('0x45')]({'where':{'id':_0x292567[_0x29f6('0x3f')]['id']}})[_0x29f6('0x1d')](handleEntityNotFound(_0x5c9113,null))[_0x29f6('0x1d')](saveUpdates(_0x292567['body'],null))[_0x29f6('0x1d')](respondWithResult(_0x5c9113,null))[_0x29f6('0x47')](handleError(_0x5c9113,null));};exports[_0x29f6('0x49')]=function(_0xdbfc0f,_0x36e52c){return db[_0x29f6('0x27')][_0x29f6('0x45')]({'where':{'id':_0xdbfc0f[_0x29f6('0x3f')]['id']}})[_0x29f6('0x1d')](handleEntityNotFound(_0x36e52c,null))[_0x29f6('0x1d')](removeEntity(_0x36e52c,null))['catch'](handleError(_0x36e52c,null));};exports['preview']=function(_0x29f210,_0xf609d0){var _0x31c91e=0xa;var _0x5ab84e=[_0x29f6('0x4a'),'left_join','right_join',_0x29f6('0x4b')];var _0x234d30={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x29f6('0x4c'),'MAX':_0x29f6('0x4d'),'MIN':_0x29f6('0x4e'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x29f6('0x4f'),'GROUP_CONCAT ASC':_0x29f6('0x50'),'GROUP_CONCAT DESC':_0x29f6('0x51')};var _0x41143a={'SEC_TO_TIME':_0x29f6('0x52'),'DATE':_0x29f6('0x53'),'HOUR':_0x29f6('0x54'),'ROUND':_0x29f6('0x55'),'UNIX_TIMESTAMP':_0x29f6('0x56')};var _0x192525=function(_0x2d4c8d){return!_[_0x29f6('0x57')]([_0x29f6('0x58'),'IS\x20NOT\x20NULL','IS\x20EMPTY',_0x29f6('0x59')],_0x2d4c8d);};var _0x54cd1a=function(_0x1a5220){if(!_0x1a5220||!_0x1a5220[_0x29f6('0x5a')][_0x29f6('0x30')]){return'';}for(var _0x40b4d7='(',_0x2f757b=0x0;_0x2f757b<_0x1a5220['rules'][_0x29f6('0x30')];_0x2f757b+=0x1){_0x2f757b>0x0&&(_0x40b4d7+='\x20'+_0x1a5220[_0x29f6('0x5b')]+'\x20');_0x40b4d7+=_0x1a5220[_0x29f6('0x5a')][_0x2f757b][_0x29f6('0x5c')]?_0x54cd1a(_0x1a5220[_0x29f6('0x5a')][_0x2f757b]['group']):_0x1a5220[_0x29f6('0x5a')][_0x2f757b]['field']+'\x20'+_0x1a5220['rules'][_0x2f757b][_0x29f6('0x5d')]+(_0x192525(_0x1a5220[_0x29f6('0x5a')][_0x2f757b]['condition'])?'\x20'+_0x1a5220[_0x29f6('0x5a')][_0x2f757b][_0x29f6('0x5e')]:'');}return _0x40b4d7+')';};var _0x58bdf4={'where':{'id':_0x29f210[_0x29f6('0x3f')]['id']}},_0x44b3ee,_0x2ba44c,_0x94de9c,_0x2f54eb,_0xf3c5f1;_0x58bdf4=_[_0x29f6('0x36')]({},_0x58bdf4,_0x29f210['options']);return db[_0x29f6('0x27')]['find'](_0x58bdf4)[_0x29f6('0x1d')](function(_0x4f35ad){if(_0x4f35ad){_0x44b3ee=_0x4f35ad;return _0x4f35ad['getFields']();}return null;})[_0x29f6('0x1d')](function(_0x68b47f){if(_0x68b47f){if(!_0x68b47f[_0x29f6('0x30')]){throw new db['Sequelize'][(_0x29f6('0x5f'))](_0x29f6('0x60'),0x193);}_0x2ba44c=_0x68b47f;return db[_0x29f6('0x61')]['findAll']({'raw':!![]});}return null;})[_0x29f6('0x1d')](function(_0x35623a){if(_0x35623a){_0x94de9c=_[_0x29f6('0x62')](_0x35623a,'id');var _0xc50331;var _0x1f9a9d=squel[_0x29f6('0x63')]();_0x1f9a9d[_0x29f6('0x64')](_0x44b3ee[_0x29f6('0x65')]);for(var _0x56f3cb=0x0;_0x56f3cb<_0x2ba44c[_0x29f6('0x30')];_0x56f3cb+=0x1){_0xc50331=_0x2ba44c[_0x56f3cb][_0x29f6('0x66')]?_0x94de9c[_0x2ba44c[_0x56f3cb][_0x29f6('0x66')]][_0x29f6('0x67')]:_0x2ba44c[_0x56f3cb][_0x29f6('0x68')];_0xc50331=_0x2ba44c[_0x56f3cb][_0x29f6('0x69')]?_[_0x29f6('0x6a')](_0x234d30[_0x2ba44c[_0x56f3cb][_0x29f6('0x69')]],'%s',_0xc50331):_0xc50331;_0xc50331=_0x2ba44c[_0x56f3cb]['format']?_[_0x29f6('0x6a')](_0x41143a[_0x2ba44c[_0x56f3cb][_0x29f6('0x6b')]],'%s',_0xc50331):_0xc50331;if(_0x2ba44c[_0x56f3cb]['groupBy']){_0x1f9a9d[_0x29f6('0x5c')](_0xc50331);}_0x2ba44c[_0x56f3cb]['orderBy']&&_0x1f9a9d[_0x29f6('0x6c')](_0xc50331,_0x2ba44c[_0x56f3cb][_0x29f6('0x6d')]==='DESC'?![]:!![]);_0x1f9a9d[_0x29f6('0x68')](_0xc50331,_0x2ba44c[_0x56f3cb][_0x29f6('0x6e')]||_0xc50331);}if(_0x44b3ee['joins']){_0x44b3ee['joins']=JSON['parse'](_0x44b3ee[_0x29f6('0x6f')]);for(var _0x1da0ea=0x0;_0x1da0ea<_0x44b3ee[_0x29f6('0x6f')][_0x29f6('0x30')];_0x1da0ea+=0x1){if(_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea][_0x29f6('0x37')]&&_[_0x29f6('0x57')](_0x5ab84e,_0x44b3ee['joins'][_0x1da0ea][_0x29f6('0x37')])&&_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea][_0x29f6('0x70')]&&_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea]['foreignTable']&&_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea][_0x29f6('0x71')]){_0x1f9a9d[_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea][_0x29f6('0x37')]](_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea]['foreignTable'],null,util[_0x29f6('0x6b')](_0x29f6('0x72'),_0x44b3ee[_0x29f6('0x65')],_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea][_0x29f6('0x70')],_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea]['foreignTable'],_0x44b3ee[_0x29f6('0x6f')][_0x1da0ea]['foreignKey']));}}}if(_0x44b3ee['conditions']){_0x44b3ee['conditions']=JSON[_0x29f6('0x73')](_0x44b3ee['conditions']);_0x1f9a9d[_0x29f6('0x33')](_0x54cd1a(_0x44b3ee[_0x29f6('0x74')][_0x29f6('0x5c')]));}_0xf3c5f1=_0x1f9a9d[_0x29f6('0x75')]();_0x1f9a9d[_0x29f6('0x18')](_0x31c91e);_0x1f9a9d[_0x29f6('0x17')](0x0);logger[_0x29f6('0x76')]('Limited\x20Query:',_0x1f9a9d[_0x29f6('0x77')]());return db['sequelize'][_0x29f6('0x2a')](_0x1f9a9d[_0x29f6('0x77')](),{'type':db[_0x29f6('0x78')][_0x29f6('0x79')][_0x29f6('0x7a')]});}})[_0x29f6('0x1d')](respondWithResult(_0xf609d0,null))[_0x29f6('0x47')](handleError(_0xf609d0,null));};function runReport(_0x1735c3,_0x18a470,_0xe14459){var _0x276ca5=_0x18a470[_0x29f6('0x23')];var _0x565c20=0xa;var _0x4eb7c9=['join',_0x29f6('0x7b'),_0x29f6('0x7c'),'cross_join'];var _0xf18d73={'SUM':'SUM(%s)','COUNT':_0x29f6('0x7d'),'COUNT DISTINCT':_0x29f6('0x4c'),'MAX':_0x29f6('0x4d'),'MIN':_0x29f6('0x4e'),'AVG':_0x29f6('0x7e'),'GROUP_CONCAT':_0x29f6('0x4f'),'GROUP_CONCAT ASC':_0x29f6('0x50'),'GROUP_CONCAT DESC':_0x29f6('0x51')};var _0x43c051={'SEC_TO_TIME':_0x29f6('0x52'),'DATE':'DATE(%s)','HOUR':_0x29f6('0x54'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x29f6('0x56')};var _0x144d8c=function(_0x2f4b68){return!_[_0x29f6('0x57')]([_0x29f6('0x58'),_0x29f6('0x7f'),_0x29f6('0x80'),_0x29f6('0x59')],_0x2f4b68);};var _0x546e14=function(_0x21bcee){if(!_0x21bcee||!_0x21bcee[_0x29f6('0x5a')]['length']){return'';}for(var _0x4bb53f='(',_0x216f51=0x0;_0x216f51<_0x21bcee[_0x29f6('0x5a')][_0x29f6('0x30')];_0x216f51+=0x1){_0x216f51>0x0&&(_0x4bb53f+='\x20'+_0x21bcee[_0x29f6('0x5b')]+'\x20');_0x4bb53f+=_0x21bcee[_0x29f6('0x5a')][_0x216f51][_0x29f6('0x5c')]?_0x546e14(_0x21bcee[_0x29f6('0x5a')][_0x216f51][_0x29f6('0x5c')]):_0x21bcee[_0x29f6('0x5a')][_0x216f51][_0x29f6('0x68')]+'\x20'+_0x21bcee[_0x29f6('0x5a')][_0x216f51][_0x29f6('0x5d')]+(_0x144d8c(_0x21bcee['rules'][_0x216f51]['condition'])?'\x20'+_0x21bcee[_0x29f6('0x5a')][_0x216f51][_0x29f6('0x5e')]:'');}return _0x4bb53f+')';};var _0x5063b6={'where':{'id':_0x1735c3['id']}},_0x98db35,_0x128384,_0x41fd08,_0x7056e6,_0x3ec8ce;_0x5063b6=_[_0x29f6('0x36')]({},_0x5063b6,_0xe14459);return db[_0x29f6('0x27')]['find'](_0x5063b6)[_0x29f6('0x1d')](function(_0x1b44e2){if(_0x1b44e2){_0x98db35=_0x1b44e2;return _0x1b44e2[_0x29f6('0x81')]();}return null;})['then'](function(_0x131fa9){if(_0x131fa9){if(!_0x131fa9[_0x29f6('0x30')]){throw new db['Sequelize'][(_0x29f6('0x5f'))](_0x29f6('0x60'),0x193);}_0x128384=_0x131fa9;return db['AnalyticMetric'][_0x29f6('0x3d')]({'raw':!![]});}return null;})['then'](function(_0x405124){if(_0x405124){_0x41fd08=_[_0x29f6('0x62')](_0x405124,'id');var _0x286fdd;var _0x3a7064=squel[_0x29f6('0x63')]();_0x3a7064[_0x29f6('0x64')](_0x98db35['table']);for(var _0x4e0bd5=0x0;_0x4e0bd5<_0x128384[_0x29f6('0x30')];_0x4e0bd5+=0x1){_0x286fdd=_0x128384[_0x4e0bd5][_0x29f6('0x66')]?_0x41fd08[_0x128384[_0x4e0bd5]['MetricId']][_0x29f6('0x67')]:_0x128384[_0x4e0bd5]['field'];_0x286fdd=_0x128384[_0x4e0bd5][_0x29f6('0x69')]?_[_0x29f6('0x6a')](_0xf18d73[_0x128384[_0x4e0bd5][_0x29f6('0x69')]],'%s',_0x286fdd):_0x286fdd;_0x286fdd=_0x128384[_0x4e0bd5][_0x29f6('0x6b')]?_[_0x29f6('0x6a')](_0x43c051[_0x128384[_0x4e0bd5][_0x29f6('0x6b')]],'%s',_0x286fdd):_0x286fdd;if(_0x128384[_0x4e0bd5][_0x29f6('0x82')]){_0x3a7064['group'](_0x286fdd);}_0x128384[_0x4e0bd5][_0x29f6('0x6d')]&&_0x3a7064[_0x29f6('0x6c')](_0x286fdd,_0x128384[_0x4e0bd5][_0x29f6('0x6d')]==='DESC'?![]:!![]);_0x3a7064['field'](_0x286fdd,_0x128384[_0x4e0bd5]['alias']||_0x286fdd);}if(_0x98db35['joins']){_0x98db35[_0x29f6('0x6f')]=JSON['parse'](_0x98db35['joins']);for(var _0x4ef1d4=0x0;_0x4ef1d4<_0x98db35[_0x29f6('0x6f')][_0x29f6('0x30')];_0x4ef1d4+=0x1){if(_0x98db35[_0x29f6('0x6f')][_0x4ef1d4][_0x29f6('0x37')]&&_[_0x29f6('0x57')](_0x4eb7c9,_0x98db35['joins'][_0x4ef1d4][_0x29f6('0x37')])&&_0x98db35['joins'][_0x4ef1d4][_0x29f6('0x70')]&&_0x98db35[_0x29f6('0x6f')][_0x4ef1d4][_0x29f6('0x83')]&&_0x98db35[_0x29f6('0x6f')][_0x4ef1d4]['foreignKey']){_0x3a7064[_0x98db35['joins'][_0x4ef1d4][_0x29f6('0x37')]](_0x98db35[_0x29f6('0x6f')][_0x4ef1d4][_0x29f6('0x83')],null,util['format'](_0x29f6('0x72'),_0x98db35[_0x29f6('0x65')],_0x98db35['joins'][_0x4ef1d4][_0x29f6('0x70')],_0x98db35[_0x29f6('0x6f')][_0x4ef1d4][_0x29f6('0x83')],_0x98db35[_0x29f6('0x6f')][_0x4ef1d4][_0x29f6('0x71')]));}}}if(_0x98db35[_0x29f6('0x74')]){_0x98db35[_0x29f6('0x74')]=JSON[_0x29f6('0x73')](_0x98db35[_0x29f6('0x74')]);_0x3a7064[_0x29f6('0x33')](_0x546e14(_0x98db35['conditions'][_0x29f6('0x5c')]));}_0x3ec8ce=_0x3a7064['clone']();_0x3a7064['limit'](_0x565c20);_0x3a7064['offset'](0x0);logger[_0x29f6('0x76')](_0x29f6('0x84'),_0x3a7064['toString']());return db['sequelize'][_0x29f6('0x2a')](_0x3a7064[_0x29f6('0x77')](),{'type':db['sequelize']['QueryTypes']['SELECT']});}})['then'](function(_0x22da5b){if(!_0x22da5b['length']){throw new db[(_0x29f6('0x85'))][(_0x29f6('0x5f'))]('No\x20available\x20data',0xcc);}if(_0x18a470[_0x29f6('0x86')]===_0x29f6('0x87')){return null;}var _0x50f7f2=_[_0x29f6('0x36')](_0x18a470,{'name':_0x18a470[_0x29f6('0x88')]||_0x18a470[_0x29f6('0x23')]||_0x98db35[_0x29f6('0x23')],'basename':_0x276ca5,'savename':util[_0x29f6('0x6b')](_0x29f6('0x89'),_0x18a470[_0x29f6('0x23')]||_0x98db35[_0x29f6('0x23')],require(_0x29f6('0x8a'))[_0x29f6('0x8b')](0x4),_0x18a470[_0x29f6('0x86')]||_0x29f6('0x8c')),'reportId':_0x98db35['id'],'reportType':_0x29f6('0x8d')});return db[_0x29f6('0x8e')]['create'](_0x50f7f2,{'raw':!![]});})[_0x29f6('0x1d')](function(_0x252bab){if(_0x98db35[_0x29f6('0x65')]===_0x29f6('0x8f')){_0x3ec8ce[_0x29f6('0x33')](_0x98db35[_0x29f6('0x65')]+_0x29f6('0x90'),_0x18a470['startDate'],_0x18a470[_0x29f6('0x91')]);}else{_0x3ec8ce['where'](_0x98db35[_0x29f6('0x65')]+_0x29f6('0x92'),_0x18a470[_0x29f6('0x93')],_0x18a470[_0x29f6('0x91')]);}if(_0x252bab){logger[_0x29f6('0x94')](_0x29f6('0x95'),_0x3ec8ce[_0x29f6('0x77')]());require(_0x29f6('0x96'))[_0x29f6('0x97')](path['join'](__dirname,_0x29f6('0x98'),_0x252bab[_0x29f6('0x86')]),[_0x252bab['id'],_0x3ec8ce['toString'](),path['join'](__dirname,_0x29f6('0x99'),_0x252bab[_0x29f6('0x9a')]),_0x276ca5]);return _0x252bab;}else{var _0x217580=squel[_0x29f6('0x63')]();_0x217580['from']('('+_0x3ec8ce[_0x29f6('0x77')]()+')',_0x29f6('0x9b'));_0x217580['field'](_0x29f6('0x9c'),_0x29f6('0x3a'));_0x3ec8ce[_0x29f6('0x18')](_0x18a470[_0x29f6('0x18')]||_0x565c20);_0x3ec8ce[_0x29f6('0x17')](_0x18a470[_0x29f6('0x17')]||0x0);return dbH[_0x29f6('0x78')][_0x29f6('0x2a')](_0x217580[_0x29f6('0x77')](),{'type':dbH[_0x29f6('0x78')][_0x29f6('0x79')][_0x29f6('0x7a')]})[_0x29f6('0x1d')](function(_0x5bda8d){if(!_0x5bda8d[_0x29f6('0x30')]){_0x7056e6=0x0;}else{_0x7056e6=_0x5bda8d[0x0][_0x29f6('0x3a')]||0x0;}return dbH[_0x29f6('0x78')][_0x29f6('0x2a')](_0x3ec8ce['toString'](),{'type':dbH[_0x29f6('0x78')][_0x29f6('0x79')][_0x29f6('0x7a')]});})['then'](function(_0x1b955e){return{'rows':_0x1b955e||[],'count':_0x7056e6};});}});}exports[_0x29f6('0x9d')]=function(_0x4d02ae,_0x377c7e){return runReport(_0x4d02ae[_0x29f6('0x3f')],_0x4d02ae[_0x29f6('0x2a')],_0x4d02ae[_0x29f6('0x39')])[_0x29f6('0x1d')](respondWithResult(_0x377c7e,null))[_0x29f6('0x47')](handleError(_0x377c7e,null));};exports[_0x29f6('0x9e')]=runReport;exports[_0x29f6('0x2a')]=function(_0xcf8b37,_0x303732){var _0x1dfd8a=0xa;var _0x5bc6df=['join',_0x29f6('0x7b'),_0x29f6('0x7c'),_0x29f6('0x4b')];var _0x1f0e72={'SUM':_0x29f6('0x9f'),'COUNT':_0x29f6('0x7d'),'COUNT DISTINCT':_0x29f6('0x4c'),'MAX':_0x29f6('0x4d'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x29f6('0x50'),'GROUP_CONCAT DESC':_0x29f6('0x51')};var _0x30ac42={'SEC_TO_TIME':_0x29f6('0x52'),'DATE':'DATE(%s)','HOUR':_0x29f6('0x54'),'ROUND':_0x29f6('0x55'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x1ef540=function(_0x5a51c0){return!_[_0x29f6('0x57')]([_0x29f6('0x58'),_0x29f6('0x7f'),_0x29f6('0x80'),'IS\x20NOT\x20EMPTY'],_0x5a51c0);};var _0x15312a=function(_0x47bb32){if(!_0x47bb32||!_0x47bb32[_0x29f6('0x5a')][_0x29f6('0x30')]){return'';}for(var _0x22f2d7='(',_0x82ce51=0x0;_0x82ce51<_0x47bb32[_0x29f6('0x5a')][_0x29f6('0x30')];_0x82ce51+=0x1){_0x82ce51>0x0&&(_0x22f2d7+='\x20'+_0x47bb32['operator']+'\x20');_0x22f2d7+=_0x47bb32['rules'][_0x82ce51][_0x29f6('0x5c')]?_0x15312a(_0x47bb32['rules'][_0x82ce51]['group']):_0x47bb32[_0x29f6('0x5a')][_0x82ce51]['field']+'\x20'+_0x47bb32[_0x29f6('0x5a')][_0x82ce51][_0x29f6('0x5d')]+(_0x1ef540(_0x47bb32[_0x29f6('0x5a')][_0x82ce51][_0x29f6('0x5d')])?'\x20'+_0x47bb32[_0x29f6('0x5a')][_0x82ce51][_0x29f6('0x5e')]:'');}return _0x22f2d7+')';};var _0x4b3a84={'where':{'id':_0xcf8b37[_0x29f6('0x3f')]['id']}},_0x4290af,_0xcf0cdd,_0x3698a9,_0x3b2594,_0xa941e6;_0x4b3a84=_[_0x29f6('0x36')]({},_0x4b3a84,_0xcf8b37[_0x29f6('0x39')]);return db[_0x29f6('0x27')][_0x29f6('0x45')](_0x4b3a84)[_0x29f6('0x1d')](function(_0x578519){if(_0x578519){_0x4290af=_0x578519;return _0x578519[_0x29f6('0x81')]();}return null;})[_0x29f6('0x1d')](function(_0x585d51){if(_0x585d51){if(!_0x585d51[_0x29f6('0x30')]){throw new db[(_0x29f6('0x85'))][(_0x29f6('0x5f'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0xcf0cdd=_0x585d51;return db['AnalyticMetric'][_0x29f6('0x3d')]({'raw':!![]});}return null;})[_0x29f6('0x1d')](function(_0x289095){if(_0x289095){_0x3698a9=_[_0x29f6('0x62')](_0x289095,'id');var _0x2b6357;var _0x1b0e6d=squel['select']();_0x1b0e6d[_0x29f6('0x64')](_0x4290af[_0x29f6('0x65')]);for(var _0x5e3e19=0x0;_0x5e3e19<_0xcf0cdd['length'];_0x5e3e19+=0x1){_0x2b6357=_0xcf0cdd[_0x5e3e19]['MetricId']?_0x3698a9[_0xcf0cdd[_0x5e3e19][_0x29f6('0x66')]]['metric']:_0xcf0cdd[_0x5e3e19][_0x29f6('0x68')];_0x2b6357=_0xcf0cdd[_0x5e3e19]['function']?_[_0x29f6('0x6a')](_0x1f0e72[_0xcf0cdd[_0x5e3e19][_0x29f6('0x69')]],'%s',_0x2b6357):_0x2b6357;_0x2b6357=_0xcf0cdd[_0x5e3e19][_0x29f6('0x6b')]?_[_0x29f6('0x6a')](_0x30ac42[_0xcf0cdd[_0x5e3e19][_0x29f6('0x6b')]],'%s',_0x2b6357):_0x2b6357;if(_0xcf0cdd[_0x5e3e19]['groupBy']){_0x1b0e6d[_0x29f6('0x5c')](_0x2b6357);}_0xcf0cdd[_0x5e3e19]['orderBy']&&_0x1b0e6d[_0x29f6('0x6c')](_0x2b6357,_0xcf0cdd[_0x5e3e19][_0x29f6('0x6d')]===_0x29f6('0xa0')?![]:!![]);_0x1b0e6d[_0x29f6('0x68')](_0x2b6357,_0xcf0cdd[_0x5e3e19][_0x29f6('0x6e')]||_0x2b6357);}if(_0x4290af[_0x29f6('0x6f')]){_0x4290af[_0x29f6('0x6f')]=JSON[_0x29f6('0x73')](_0x4290af['joins']);for(var _0x116b9c=0x0;_0x116b9c<_0x4290af['joins'][_0x29f6('0x30')];_0x116b9c+=0x1){if(_0x4290af[_0x29f6('0x6f')][_0x116b9c]['type']&&_[_0x29f6('0x57')](_0x5bc6df,_0x4290af['joins'][_0x116b9c][_0x29f6('0x37')])&&_0x4290af[_0x29f6('0x6f')][_0x116b9c]['parentKey']&&_0x4290af[_0x29f6('0x6f')][_0x116b9c][_0x29f6('0x83')]&&_0x4290af['joins'][_0x116b9c][_0x29f6('0x71')]){_0x1b0e6d[_0x4290af[_0x29f6('0x6f')][_0x116b9c][_0x29f6('0x37')]](_0x4290af[_0x29f6('0x6f')][_0x116b9c][_0x29f6('0x83')],null,util[_0x29f6('0x6b')](_0x29f6('0x72'),_0x4290af[_0x29f6('0x65')],_0x4290af['joins'][_0x116b9c][_0x29f6('0x70')],_0x4290af[_0x29f6('0x6f')][_0x116b9c][_0x29f6('0x83')],_0x4290af[_0x29f6('0x6f')][_0x116b9c]['foreignKey']));}}}if(_0x4290af[_0x29f6('0x74')]){_0x4290af[_0x29f6('0x74')]=JSON[_0x29f6('0x73')](_0x4290af[_0x29f6('0x74')]);_0x1b0e6d[_0x29f6('0x33')](_0x15312a(_0x4290af['conditions']['group']));}_0xa941e6=_0x1b0e6d[_0x29f6('0x75')]();_0x1b0e6d[_0x29f6('0x18')](_0x1dfd8a);_0x1b0e6d['offset'](0x0);logger[_0x29f6('0x76')]('Limited\x20Query:',_0x1b0e6d['toString']());return db[_0x29f6('0x78')]['query'](_0x1b0e6d[_0x29f6('0x77')](),{'type':db[_0x29f6('0x78')][_0x29f6('0x79')][_0x29f6('0x7a')]});}})['then'](function(){return{'sql':_0xa941e6[_0x29f6('0x77')]()};})[_0x29f6('0x1d')](respondWithResult(_0x303732,null))[_0x29f6('0x47')](handleError(_0x303732,null));};