Built motion from commit 9d1906d1.|2.5.40
[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 _0xca8b=['length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','options','AnalyticExtractedReport','includeAll','include','findAll','rows','show','params','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','update','download','output','existsSync','join','root','server/files/reports','savename','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','format','%s.%s','basename','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','count','limit','Content-Range','json','apply','reject','save','then','get','ExtractedReports','destroy','sendStatus','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields'];(function(_0x54d4a8,_0x585a59){var _0x3b321b=function(_0x245c6a){while(--_0x245c6a){_0x54d4a8['push'](_0x54d4a8['shift']());}};_0x3b321b(++_0x585a59);}(_0xca8b,0x147));var _0xbca8=function(_0x44c938,_0x50dfed){_0x44c938=_0x44c938-0x0;var _0x32a591=_0xca8b[_0x44c938];return _0x32a591;};'use strict';var emlformat=require(_0xbca8('0x0'));var rimraf=require(_0xbca8('0x1'));var zipdir=require(_0xbca8('0x2'));var jsonpatch=require(_0xbca8('0x3'));var rp=require('request-promise');var moment=require(_0xbca8('0x4'));var BPromise=require(_0xbca8('0x5'));var Mustache=require(_0xbca8('0x6'));var util=require('util');var path=require(_0xbca8('0x7'));var sox=require(_0xbca8('0x8'));var csv=require(_0xbca8('0x9'));var ejs=require(_0xbca8('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbca8('0xb'));var squel=require('squel');var crypto=require(_0xbca8('0xc'));var jsforce=require(_0xbca8('0xd'));var deskjs=require(_0xbca8('0xe'));var toCsv=require(_0xbca8('0x9'));var querystring=require(_0xbca8('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xbca8('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbca8('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xbca8('0x12'));var config=require(_0xbca8('0x13'));var licenseUtil=require(_0xbca8('0x14'));var db=require(_0xbca8('0x15'))['db'];function respondWithStatusCode(_0x5b7e02,_0x34ab3f){_0x34ab3f=_0x34ab3f||0xcc;return function(_0x21c08a){if(_0x21c08a){return _0x5b7e02['sendStatus'](_0x34ab3f);}return _0x5b7e02[_0xbca8('0x16')](_0x34ab3f)[_0xbca8('0x17')]();};}function respondWithResult(_0x436154,_0x215776){_0x215776=_0x215776||0xc8;return function(_0x583255){if(_0x583255){return _0x436154[_0xbca8('0x16')](_0x215776)['json'](_0x583255);}};}function respondWithFilteredResult(_0x2126c4,_0xac751e){return function(_0xe9b76b){if(_0xe9b76b){var _0x5a5647=typeof _0xac751e[_0xbca8('0x18')]==='undefined'&&typeof _0xac751e['limit']===_0xbca8('0x19');var _0x260973=_0xe9b76b[_0xbca8('0x1a')];var _0x3905bf=_0x5a5647?0x0:_0xac751e[_0xbca8('0x18')];var _0x1c6982=_0x5a5647?_0xe9b76b[_0xbca8('0x1a')]:_0xac751e[_0xbca8('0x18')]+_0xac751e[_0xbca8('0x1b')];var _0x5d3d9c;if(_0x1c6982>=_0x260973){_0x1c6982=_0x260973;_0x5d3d9c=0xc8;}else{_0x5d3d9c=0xce;}_0x2126c4[_0xbca8('0x16')](_0x5d3d9c);return _0x2126c4['set'](_0xbca8('0x1c'),_0x3905bf+'-'+_0x1c6982+'/'+_0x260973)[_0xbca8('0x1d')](_0xe9b76b);}return null;};}function patchUpdates(_0x3b0717){return function(_0x28b476){try{jsonpatch[_0xbca8('0x1e')](_0x28b476,_0x3b0717,!![]);}catch(_0xb41d36){return BPromise[_0xbca8('0x1f')](_0xb41d36);}return _0x28b476[_0xbca8('0x20')]();};}function saveUpdates(_0x1dfba7,_0x4c2193){return function(_0x212541){if(_0x212541){return _0x212541['update'](_0x1dfba7)[_0xbca8('0x21')](function(_0x35f546){return _0x35f546;});}return null;};}function removeEntity(_0x5339dd,_0x21290b){return function(_0xf982aa){if(_0xf982aa){return _0xf982aa['destroy']()[_0xbca8('0x21')](function(){var _0x154768=_0xf982aa[_0xbca8('0x22')]({'plain':!![]});var _0x18d93b=_0xbca8('0x23');return db['UserProfileResource'][_0xbca8('0x24')]({'where':{'type':_0x18d93b,'resourceId':_0x154768['id']}})['then'](function(){return _0xf982aa;});})[_0xbca8('0x21')](function(){_0x5339dd[_0xbca8('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4b8e77,_0x57a2b5){return function(_0x6bdee9){if(!_0x6bdee9){_0x4b8e77[_0xbca8('0x25')](0x194);}return _0x6bdee9;};}function handleError(_0x1300a8,_0x37d2ee){_0x37d2ee=_0x37d2ee||0x1f4;return function(_0x17bb07){logger[_0xbca8('0x26')](_0x17bb07[_0xbca8('0x27')]);if(_0x17bb07['name']){delete _0x17bb07[_0xbca8('0x28')];}_0x1300a8['status'](_0x37d2ee)[_0xbca8('0x29')](_0x17bb07);};}exports['index']=function(_0x39fd7f,_0x10b7d5){var _0x36d366={},_0x58f15c={},_0x37b88c={'count':0x0,'rows':[]};var _0x3d8f06=_[_0xbca8('0x2a')](db['AnalyticExtractedReport'][_0xbca8('0x2b')],function(_0x59d686){return{'name':_0x59d686[_0xbca8('0x2c')],'type':_0x59d686[_0xbca8('0x2d')][_0xbca8('0x2e')]};});_0x58f15c[_0xbca8('0x2f')]=_[_0xbca8('0x2a')](_0x3d8f06,'name');_0x58f15c['query']=_[_0xbca8('0x30')](_0x39fd7f[_0xbca8('0x31')]);_0x58f15c['filters']=_[_0xbca8('0x32')](_0x58f15c[_0xbca8('0x2f')],_0x58f15c[_0xbca8('0x31')]);_0x36d366[_0xbca8('0x33')]=_[_0xbca8('0x32')](_0x58f15c[_0xbca8('0x2f')],qs['fields'](_0x39fd7f['query'][_0xbca8('0x34')]));_0x36d366[_0xbca8('0x33')]=_0x36d366['attributes'][_0xbca8('0x35')]?_0x36d366['attributes']:_0x58f15c[_0xbca8('0x2f')];if(!_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x36')]('nolimit')){_0x36d366[_0xbca8('0x1b')]=qs[_0xbca8('0x1b')](_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x1b')]);_0x36d366[_0xbca8('0x18')]=qs[_0xbca8('0x18')](_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x18')]);}_0x36d366['order']=qs[_0xbca8('0x37')](_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x37')]);_0x36d366[_0xbca8('0x38')]=qs[_0xbca8('0x39')](_[_0xbca8('0x3a')](_0x39fd7f[_0xbca8('0x31')],_0x58f15c[_0xbca8('0x39')]),_0x3d8f06);if(_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x3b')]){_0x36d366[_0xbca8('0x38')]=_[_0xbca8('0x3c')](_0x36d366[_0xbca8('0x38')],{'$or':_[_0xbca8('0x2a')](_0x3d8f06,function(_0x5621de){if(_0x5621de[_0xbca8('0x2d')]!==_0xbca8('0x3d')){var _0x1ec3b6={};_0x1ec3b6[_0x5621de['name']]={'$like':'%'+_0x39fd7f[_0xbca8('0x31')]['filter']+'%'};return _0x1ec3b6;}})});}_0x36d366=_[_0xbca8('0x3c')]({},_0x36d366,_0x39fd7f[_0xbca8('0x3e')]);var _0x5431bd={'where':_0x36d366[_0xbca8('0x38')]};return db[_0xbca8('0x3f')][_0xbca8('0x1a')](_0x5431bd)[_0xbca8('0x21')](function(_0x5d5640){_0x37b88c['count']=_0x5d5640;if(_0x39fd7f[_0xbca8('0x31')][_0xbca8('0x40')]){_0x36d366[_0xbca8('0x41')]=[{'all':!![]}];}return db[_0xbca8('0x3f')][_0xbca8('0x42')](_0x36d366);})['then'](function(_0x525ca8){_0x37b88c[_0xbca8('0x43')]=_0x525ca8;return _0x37b88c;})['then'](respondWithFilteredResult(_0x10b7d5,_0x36d366))['catch'](handleError(_0x10b7d5,null));};exports[_0xbca8('0x44')]=function(_0x4173ce,_0xb31d87){var _0x4ed0c6={'raw':!![],'where':{'id':_0x4173ce[_0xbca8('0x45')]['id']}},_0x4624c1={};_0x4624c1[_0xbca8('0x2f')]=_[_0xbca8('0x30')](db['AnalyticExtractedReport']['rawAttributes']);_0x4624c1[_0xbca8('0x31')]=_['keys'](_0x4173ce[_0xbca8('0x31')]);_0x4624c1[_0xbca8('0x39')]=_['intersection'](_0x4624c1[_0xbca8('0x2f')],_0x4624c1['query']);_0x4ed0c6[_0xbca8('0x33')]=_[_0xbca8('0x32')](_0x4624c1[_0xbca8('0x2f')],qs[_0xbca8('0x34')](_0x4173ce['query']['fields']));_0x4ed0c6[_0xbca8('0x33')]=_0x4ed0c6[_0xbca8('0x33')]['length']?_0x4ed0c6[_0xbca8('0x33')]:_0x4624c1[_0xbca8('0x2f')];if(_0x4173ce[_0xbca8('0x31')]['includeAll']){_0x4ed0c6[_0xbca8('0x41')]=[{'all':!![]}];}_0x4ed0c6=_[_0xbca8('0x3c')]({},_0x4ed0c6,_0x4173ce['options']);return db['AnalyticExtractedReport']['find'](_0x4ed0c6)[_0xbca8('0x21')](handleEntityNotFound(_0xb31d87,null))['then'](respondWithResult(_0xb31d87,null))[_0xbca8('0x46')](handleError(_0xb31d87,null));};exports[_0xbca8('0x47')]=function(_0xbdefd1,_0x2dc46f){return db[_0xbca8('0x3f')]['create'](_0xbdefd1[_0xbca8('0x48')],{})['then'](function(_0x1cf0c2){var _0x14740f=_0xbdefd1[_0xbca8('0x49')][_0xbca8('0x22')]({'plain':!![]});if(!_0x14740f)throw new Error(_0xbca8('0x4a'));if(_0x14740f[_0xbca8('0x4b')]===_0xbca8('0x49')){var _0x1c63e6=_0x1cf0c2[_0xbca8('0x22')]({'plain':!![]});var _0x36cb34=_0xbca8('0x23');return db[_0xbca8('0x4c')][_0xbca8('0x4d')]({'where':{'name':_0x36cb34,'userProfileId':_0x14740f[_0xbca8('0x4e')]},'raw':!![]})[_0xbca8('0x21')](function(_0x5e11b3){if(_0x5e11b3&&_0x5e11b3[_0xbca8('0x4f')]===0x0){return db[_0xbca8('0x50')][_0xbca8('0x47')]({'name':_0x1c63e6[_0xbca8('0x28')],'resourceId':_0x1c63e6['id'],'type':_0x5e11b3[_0xbca8('0x28')],'sectionId':_0x5e11b3['id']},{})[_0xbca8('0x21')](function(){return _0x1cf0c2;});}else{return _0x1cf0c2;}})[_0xbca8('0x46')](function(_0x19f0dc){logger[_0xbca8('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x19f0dc);throw _0x19f0dc;});}return _0x1cf0c2;})[_0xbca8('0x21')](respondWithResult(_0x2dc46f,0xc9))[_0xbca8('0x46')](handleError(_0x2dc46f,null));};exports[_0xbca8('0x51')]=function(_0x3fe1b5,_0x49e1ac){if(_0x3fe1b5[_0xbca8('0x48')]['id']){delete _0x3fe1b5[_0xbca8('0x48')]['id'];}return db[_0xbca8('0x3f')][_0xbca8('0x4d')]({'where':{'id':_0x3fe1b5['params']['id']}})[_0xbca8('0x21')](handleEntityNotFound(_0x49e1ac,null))[_0xbca8('0x21')](saveUpdates(_0x3fe1b5[_0xbca8('0x48')],null))['then'](respondWithResult(_0x49e1ac,null))['catch'](handleError(_0x49e1ac,null));};exports[_0xbca8('0x24')]=function(_0x586fed,_0xcff7ba){return db[_0xbca8('0x3f')][_0xbca8('0x4d')]({'where':{'id':_0x586fed[_0xbca8('0x45')]['id']}})[_0xbca8('0x21')](handleEntityNotFound(_0xcff7ba,null))[_0xbca8('0x21')](removeEntity(_0xcff7ba,null))['catch'](handleError(_0xcff7ba,null));};exports[_0xbca8('0x52')]=function(_0x3ab5e0,_0x226111,_0x4d0767){return db[_0xbca8('0x3f')][_0xbca8('0x4d')]({'where':{'id':_0x3ab5e0[_0xbca8('0x45')]['id']},'attributes':[_0xbca8('0x28'),'basename','savename',_0xbca8('0x53')],'raw':!![]})[_0xbca8('0x21')](handleEntityNotFound(_0x226111,null))['then'](function(_0x13a1b9){if(_0x13a1b9){if(!fs[_0xbca8('0x54')](path[_0xbca8('0x55')](config[_0xbca8('0x56')],_0xbca8('0x57'),_0x13a1b9[_0xbca8('0x58')]))){throw new db[(_0xbca8('0x59'))][(_0xbca8('0x5a'))](_0xbca8('0x5b'));}if(_0x3ab5e0['query']['exists']){return _0x226111[_0xbca8('0x25')](0xc8);}return _0x226111[_0xbca8('0x52')](path[_0xbca8('0x55')](config[_0xbca8('0x56')],'server/files/reports',_0x13a1b9['savename']),util[_0xbca8('0x5c')](_0xbca8('0x5d'),_0x13a1b9[_0xbca8('0x5e')]||_0x13a1b9[_0xbca8('0x28')],_0x13a1b9[_0xbca8('0x53')]['toLowerCase']()));}})[_0xbca8('0x46')](handleError(_0x226111,null));};