Built motion from commit 67e5df37.|2.0.68
[motion2.git] / server / api / analyticExtractedReport / analyticExtractedReport.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 _0x7403=['keys','AnalyticExtractedReport','rawAttributes','dateStart','query','dateEnd','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','add','day','merge','filter','options','count','includeAll','include','findAll','rows','catch','show','params','find','create','body','download','basename','savename','existsSync','join','server/files/reports','Sequelize','ValidationError','exists','root','format','%s.%s','output','toLowerCase','fast-json-patch','request-promise','moment','mustache','util','path','sox','crypto','desk.js','to-csv','querystring','papaparse','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','limit','apply','reject','save','update','then','destroy','status','error','stack','name','send','index','model'];(function(_0x599f41,_0x4db732){var _0x2e4d58=function(_0x14c882){while(--_0x14c882){_0x599f41['push'](_0x599f41['shift']());}};_0x2e4d58(++_0x4db732);}(_0x7403,0x1c3));var _0x3740=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7403[_0x3dd15e];return _0x231fd0;};'use strict';var jsonpatch=require(_0x3740('0x0'));var rp=require(_0x3740('0x1'));var moment=require(_0x3740('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x3740('0x3'));var util=require(_0x3740('0x4'));var path=require(_0x3740('0x5'));var sox=require(_0x3740('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x3740('0x7'));var jsforce=require('jsforce');var deskjs=require(_0x3740('0x8'));var toCsv=require(_0x3740('0x9'));var querystring=require(_0x3740('0xa'));var Papa=require(_0x3740('0xb'));var qs=require('../../components/parsers/qs');var logger=require(_0x3740('0xc'))(_0x3740('0xd'));var utils=require(_0x3740('0xe'));var config=require(_0x3740('0xf'));var db=require(_0x3740('0x10'))['db'];function respondWithStatusCode(_0x1fedcf,_0x148f0a){_0x148f0a=_0x148f0a||0xcc;return function(_0x2d1c13){if(_0x2d1c13){return _0x1fedcf[_0x3740('0x11')](_0x148f0a);}return _0x1fedcf['status'](_0x148f0a)[_0x3740('0x12')]();};}function respondWithResult(_0x1614e1,_0x388b67){_0x388b67=_0x388b67||0xc8;return function(_0x138046){if(_0x138046){return _0x1614e1['status'](_0x388b67)[_0x3740('0x13')](_0x138046);}};}function respondWithFilteredResult(_0x3b4816,_0x177348){return function(_0x25626a){if(_0x25626a){var _0x4c8270=_0x25626a['count'],_0x39d39d=_0x177348['offset'],_0x3acdc9=_0x177348[_0x3740('0x14')]+_0x177348[_0x3740('0x15')],_0x4f6700;if(_0x3acdc9>=_0x4c8270){_0x3acdc9=_0x4c8270;_0x4f6700=0xc8;}else{_0x4f6700=0xce;}_0x3b4816['status'](_0x4f6700);return _0x3b4816['set']('Content-Range',_0x39d39d+'-'+_0x3acdc9+'/'+_0x4c8270)[_0x3740('0x13')](_0x25626a);}return null;};}function patchUpdates(_0x17f7ce){return function(_0xedbceb){try{jsonpatch[_0x3740('0x16')](_0xedbceb,_0x17f7ce,!![]);}catch(_0x48b9ac){return BPromise[_0x3740('0x17')](_0x48b9ac);}return _0xedbceb[_0x3740('0x18')]();};}function saveUpdates(_0x5ba96d,_0x361ac3){return function(_0x368d82){if(_0x368d82){return _0x368d82[_0x3740('0x19')](_0x5ba96d)[_0x3740('0x1a')](function(_0x54ce16){return _0x54ce16;});}return null;};}function removeEntity(_0x37d890,_0x419030){return function(_0x4a47e1){if(_0x4a47e1){return _0x4a47e1[_0x3740('0x1b')]()['then'](function(){_0x37d890[_0x3740('0x1c')](0xcc)[_0x3740('0x12')]();});}};}function handleEntityNotFound(_0x222427,_0x111f55){return function(_0x477047){if(!_0x477047){_0x222427['sendStatus'](0x194);}return _0x477047;};}function handleError(_0x35582d,_0x3f5c03){_0x3f5c03=_0x3f5c03||0x1f4;return function(_0x32b209){logger[_0x3740('0x1d')](_0x32b209[_0x3740('0x1e')]);if(_0x32b209[_0x3740('0x1f')]){delete _0x32b209[_0x3740('0x1f')];}_0x35582d[_0x3740('0x1c')](_0x3f5c03)[_0x3740('0x20')](_0x32b209);};}exports[_0x3740('0x21')]=function(_0x8889d8,_0xda903d){var _0x424129={},_0x16ea91={},_0x4bdc62={'count':0x0,'rows':[]};_0x16ea91[_0x3740('0x22')]=_[_0x3740('0x23')](db[_0x3740('0x24')][_0x3740('0x25')]);var _0xe4f9e3={'dateStart':_0x8889d8['query'][_0x3740('0x26')],'dateEnd':_0x8889d8[_0x3740('0x27')][_0x3740('0x28')]};delete _0x8889d8[_0x3740('0x27')][_0x3740('0x26')];delete _0x8889d8['query']['dateEnd'];_0x16ea91[_0x3740('0x27')]=_[_0x3740('0x23')](_0x8889d8[_0x3740('0x27')]);_0x16ea91['filters']=_['intersection'](_0x16ea91['model'],_0x16ea91[_0x3740('0x27')]);_0x424129['attributes']=_[_0x3740('0x29')](_0x16ea91[_0x3740('0x22')],qs[_0x3740('0x2a')](_0x8889d8[_0x3740('0x27')]['fields']));_0x424129['attributes']=_0x424129[_0x3740('0x2b')][_0x3740('0x2c')]?_0x424129['attributes']:_0x16ea91['model'];if(!_0x8889d8[_0x3740('0x27')][_0x3740('0x2d')](_0x3740('0x2e'))){_0x424129['limit']=qs[_0x3740('0x15')](_0x8889d8[_0x3740('0x27')][_0x3740('0x15')]);_0x424129['offset']=qs[_0x3740('0x14')](_0x8889d8[_0x3740('0x27')][_0x3740('0x14')]);}_0x424129[_0x3740('0x2f')]=qs[_0x3740('0x30')](_0x8889d8[_0x3740('0x27')][_0x3740('0x30')]);_0x424129[_0x3740('0x31')]=qs[_0x3740('0x32')](_['pick'](_0x8889d8['query'],_0x16ea91[_0x3740('0x32')]));if(_0xe4f9e3[_0x3740('0x26')]){if(_0xe4f9e3[_0x3740('0x28')]){_0xe4f9e3[_0x3740('0x28')]=moment(_0xe4f9e3['dateEnd'])[_0x3740('0x33')](0x1,_0x3740('0x34'));}else{_0xe4f9e3['dateEnd']=moment(_0xe4f9e3[_0x3740('0x26')])['add'](0x1,'day');}_[_0x3740('0x35')](_0x424129[_0x3740('0x31')],{'createdAt':{'$gte':_0xe4f9e3['dateStart'],'$lte':_0xe4f9e3[_0x3740('0x28')]}});}if(_0x8889d8['query'][_0x3740('0x36')]){_0x424129['where']=_[_0x3740('0x35')](_0x424129[_0x3740('0x31')],{'$or':_['map'](_0x424129['attributes'],function(_0x40779f){var _0x3c04a6={};_0x3c04a6[_0x40779f]={'$like':'%'+_0x8889d8[_0x3740('0x27')][_0x3740('0x36')]+'%'};return _0x3c04a6;})});}_0x424129=_[_0x3740('0x35')]({},_0x424129,_0x8889d8[_0x3740('0x37')]);var _0x336206={'where':_0x424129[_0x3740('0x31')]};return db[_0x3740('0x24')][_0x3740('0x38')](_0x336206)[_0x3740('0x1a')](function(_0x5ba5b4){_0x4bdc62[_0x3740('0x38')]=_0x5ba5b4;if(_0x8889d8['query'][_0x3740('0x39')]){_0x424129[_0x3740('0x3a')]=[{'all':!![]}];}return db[_0x3740('0x24')][_0x3740('0x3b')](_0x424129);})[_0x3740('0x1a')](function(_0x34b61f){_0x4bdc62[_0x3740('0x3c')]=_0x34b61f;return _0x4bdc62;})[_0x3740('0x1a')](respondWithFilteredResult(_0xda903d,_0x424129))[_0x3740('0x3d')](handleError(_0xda903d,null));};exports[_0x3740('0x3e')]=function(_0x44ac8a,_0x5461ca){var _0x5920b0={'raw':!![],'where':{'id':_0x44ac8a[_0x3740('0x3f')]['id']}},_0x4fdd8c={};_0x4fdd8c[_0x3740('0x22')]=_[_0x3740('0x23')](db[_0x3740('0x24')]['rawAttributes']);_0x4fdd8c['query']=_[_0x3740('0x23')](_0x44ac8a[_0x3740('0x27')]);_0x4fdd8c['filters']=_['intersection'](_0x4fdd8c['model'],_0x4fdd8c[_0x3740('0x27')]);_0x5920b0[_0x3740('0x2b')]=_['intersection'](_0x4fdd8c[_0x3740('0x22')],qs[_0x3740('0x2a')](_0x44ac8a[_0x3740('0x27')][_0x3740('0x2a')]));_0x5920b0[_0x3740('0x2b')]=_0x5920b0[_0x3740('0x2b')]['length']?_0x5920b0['attributes']:_0x4fdd8c[_0x3740('0x22')];if(_0x44ac8a[_0x3740('0x27')][_0x3740('0x39')]){_0x5920b0[_0x3740('0x3a')]=[{'all':!![]}];}_0x5920b0=_[_0x3740('0x35')]({},_0x5920b0,_0x44ac8a[_0x3740('0x37')]);return db[_0x3740('0x24')][_0x3740('0x40')](_0x5920b0)[_0x3740('0x1a')](handleEntityNotFound(_0x5461ca,null))[_0x3740('0x1a')](respondWithResult(_0x5461ca,null))['catch'](handleError(_0x5461ca,null));};exports[_0x3740('0x41')]=function(_0x58597,_0x47e3e3){return db[_0x3740('0x24')]['create'](_0x58597[_0x3740('0x42')],{})[_0x3740('0x1a')](respondWithResult(_0x47e3e3,0xc9))[_0x3740('0x3d')](handleError(_0x47e3e3,null));};exports[_0x3740('0x19')]=function(_0x3c2f6b,_0x2550c2){if(_0x3c2f6b[_0x3740('0x42')]['id']){delete _0x3c2f6b[_0x3740('0x42')]['id'];}return db['AnalyticExtractedReport'][_0x3740('0x40')]({'where':{'id':_0x3c2f6b['params']['id']}})[_0x3740('0x1a')](handleEntityNotFound(_0x2550c2,null))[_0x3740('0x1a')](saveUpdates(_0x3c2f6b[_0x3740('0x42')],null))['then'](respondWithResult(_0x2550c2,null))[_0x3740('0x3d')](handleError(_0x2550c2,null));};exports[_0x3740('0x1b')]=function(_0x481822,_0x173b6b){return db[_0x3740('0x24')]['find']({'where':{'id':_0x481822[_0x3740('0x3f')]['id']}})['then'](handleEntityNotFound(_0x173b6b,null))[_0x3740('0x1a')](removeEntity(_0x173b6b,null))['catch'](handleError(_0x173b6b,null));};exports[_0x3740('0x43')]=function(_0x440f92,_0x4f5130,_0x1cc56f){return db[_0x3740('0x24')]['find']({'where':{'id':_0x440f92['params']['id']},'attributes':[_0x3740('0x1f'),_0x3740('0x44'),_0x3740('0x45'),'output'],'raw':!![]})[_0x3740('0x1a')](handleEntityNotFound(_0x4f5130,null))[_0x3740('0x1a')](function(_0xb323d2){if(_0xb323d2){if(!fs[_0x3740('0x46')](path[_0x3740('0x47')](config['root'],_0x3740('0x48'),_0xb323d2['savename']))){throw new db[(_0x3740('0x49'))][(_0x3740('0x4a'))]('Report\x20not\x20found\x20or\x20empty');}if(_0x440f92[_0x3740('0x27')][_0x3740('0x4b')]){return _0x4f5130[_0x3740('0x11')](0xc8);}return _0x4f5130[_0x3740('0x43')](path['join'](config[_0x3740('0x4c')],_0x3740('0x48'),_0xb323d2[_0x3740('0x45')]),util[_0x3740('0x4d')](_0x3740('0x4e'),_0xb323d2[_0x3740('0x44')]||_0xb323d2[_0x3740('0x1f')],_0xb323d2[_0x3740('0x4f')][_0x3740('0x50')]()));}})[_0x3740('0x3d')](handleError(_0x4f5130,null));};