Built motion from commit 9d0783e6.|2.6.13
[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 _0x2bea=['mustache','sox','to-csv','ejs','fs-extra','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','map','AnalyticExtractedReport','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','keys','rawAttributes','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','ExtractedReports','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','download','savename','output','existsSync','join','server/files/reports','Sequelize','root','format','%s.%s','basename','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x438207,_0x525a5b){var _0x106e22=function(_0x24bd32){while(--_0x24bd32){_0x438207['push'](_0x438207['shift']());}};_0x106e22(++_0x525a5b);}(_0x2bea,0x10d));var _0xa2be=function(_0x3bd9ed,_0x4d40b6){_0x3bd9ed=_0x3bd9ed-0x0;var _0x18e6c5=_0x2bea[_0x3bd9ed];return _0x18e6c5;};'use strict';var emlformat=require(_0xa2be('0x0'));var rimraf=require(_0xa2be('0x1'));var zipdir=require(_0xa2be('0x2'));var jsonpatch=require(_0xa2be('0x3'));var rp=require(_0xa2be('0x4'));var moment=require(_0xa2be('0x5'));var BPromise=require(_0xa2be('0x6'));var Mustache=require(_0xa2be('0x7'));var util=require('util');var path=require('path');var sox=require(_0xa2be('0x8'));var csv=require(_0xa2be('0x9'));var ejs=require(_0xa2be('0xa'));var fs=require('fs');var fs_extra=require(_0xa2be('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa2be('0xc'));var toCsv=require(_0xa2be('0x9'));var querystring=require(_0xa2be('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa2be('0xe'));var as=require(_0xa2be('0xf'));var hardwareService=require(_0xa2be('0x10'));var logger=require(_0xa2be('0x11'))(_0xa2be('0x12'));var utils=require(_0xa2be('0x13'));var config=require(_0xa2be('0x14'));var licenseUtil=require(_0xa2be('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1976db,_0x10c072){_0x10c072=_0x10c072||0xcc;return function(_0x1b5086){if(_0x1b5086){return _0x1976db[_0xa2be('0x16')](_0x10c072);}return _0x1976db[_0xa2be('0x17')](_0x10c072)[_0xa2be('0x18')]();};}function respondWithResult(_0x5797a6,_0x4de4a3){_0x4de4a3=_0x4de4a3||0xc8;return function(_0xcd2fb8){if(_0xcd2fb8){return _0x5797a6[_0xa2be('0x17')](_0x4de4a3)[_0xa2be('0x19')](_0xcd2fb8);}};}function respondWithFilteredResult(_0x46fa89,_0x500e0d){return function(_0x4cec0c){if(_0x4cec0c){var _0x57c3ac=typeof _0x500e0d['offset']===_0xa2be('0x1a')&&typeof _0x500e0d[_0xa2be('0x1b')]===_0xa2be('0x1a');var _0x360098=_0x4cec0c['count'];var _0x88d53=_0x57c3ac?0x0:_0x500e0d['offset'];var _0x3497e2=_0x57c3ac?_0x4cec0c[_0xa2be('0x1c')]:_0x500e0d[_0xa2be('0x1d')]+_0x500e0d[_0xa2be('0x1b')];var _0x52b678;if(_0x3497e2>=_0x360098){_0x3497e2=_0x360098;_0x52b678=0xc8;}else{_0x52b678=0xce;}_0x46fa89[_0xa2be('0x17')](_0x52b678);return _0x46fa89['set'](_0xa2be('0x1e'),_0x88d53+'-'+_0x3497e2+'/'+_0x360098)[_0xa2be('0x19')](_0x4cec0c);}return null;};}function patchUpdates(_0x3bc248){return function(_0x5456f9){try{jsonpatch[_0xa2be('0x1f')](_0x5456f9,_0x3bc248,!![]);}catch(_0x334c93){return BPromise[_0xa2be('0x20')](_0x334c93);}return _0x5456f9[_0xa2be('0x21')]();};}function saveUpdates(_0x58975b,_0x1c0ecb){return function(_0x3999ca){if(_0x3999ca){return _0x3999ca[_0xa2be('0x22')](_0x58975b)[_0xa2be('0x23')](function(_0x3ffdcb){return _0x3ffdcb;});}return null;};}function removeEntity(_0x1944ee,_0x56d8c9){return function(_0x32afc6){if(_0x32afc6){return _0x32afc6[_0xa2be('0x24')]()[_0xa2be('0x23')](function(){var _0x4e9486=_0x32afc6[_0xa2be('0x25')]({'plain':!![]});var _0x5c2109='ExtractedReports';return db[_0xa2be('0x26')][_0xa2be('0x24')]({'where':{'type':_0x5c2109,'resourceId':_0x4e9486['id']}})[_0xa2be('0x23')](function(){return _0x32afc6;});})[_0xa2be('0x23')](function(){_0x1944ee[_0xa2be('0x17')](0xcc)[_0xa2be('0x18')]();});}};}function handleEntityNotFound(_0x56e465,_0x3b40a4){return function(_0x2fadec){if(!_0x2fadec){_0x56e465[_0xa2be('0x16')](0x194);}return _0x2fadec;};}function handleError(_0x26dd6d,_0x79ce88){_0x79ce88=_0x79ce88||0x1f4;return function(_0x1abcfa){logger[_0xa2be('0x27')](_0x1abcfa[_0xa2be('0x28')]);if(_0x1abcfa[_0xa2be('0x29')]){delete _0x1abcfa['name'];}_0x26dd6d['status'](_0x79ce88)[_0xa2be('0x2a')](_0x1abcfa);};}exports['index']=function(_0x4648fd,_0x5250d2){var _0x218ef0={},_0x423e29={},_0x2b3100={'count':0x0,'rows':[]};var _0x488bf8=_[_0xa2be('0x2b')](db[_0xa2be('0x2c')]['rawAttributes'],function(_0x2a25e2){return{'name':_0x2a25e2[_0xa2be('0x2d')],'type':_0x2a25e2[_0xa2be('0x2e')][_0xa2be('0x2f')]};});_0x423e29[_0xa2be('0x30')]=_[_0xa2be('0x2b')](_0x488bf8,'name');_0x423e29[_0xa2be('0x31')]=_['keys'](_0x4648fd[_0xa2be('0x31')]);_0x423e29[_0xa2be('0x32')]=_[_0xa2be('0x33')](_0x423e29[_0xa2be('0x30')],_0x423e29[_0xa2be('0x31')]);_0x218ef0[_0xa2be('0x34')]=_['intersection'](_0x423e29[_0xa2be('0x30')],qs['fields'](_0x4648fd[_0xa2be('0x31')][_0xa2be('0x35')]));_0x218ef0[_0xa2be('0x34')]=_0x218ef0[_0xa2be('0x34')][_0xa2be('0x36')]?_0x218ef0['attributes']:_0x423e29['model'];if(!_0x4648fd[_0xa2be('0x31')]['hasOwnProperty'](_0xa2be('0x37'))){_0x218ef0[_0xa2be('0x1b')]=qs[_0xa2be('0x1b')](_0x4648fd[_0xa2be('0x31')][_0xa2be('0x1b')]);_0x218ef0[_0xa2be('0x1d')]=qs[_0xa2be('0x1d')](_0x4648fd[_0xa2be('0x31')][_0xa2be('0x1d')]);}_0x218ef0[_0xa2be('0x38')]=qs[_0xa2be('0x39')](_0x4648fd['query'][_0xa2be('0x39')]);_0x218ef0['where']=qs[_0xa2be('0x32')](_[_0xa2be('0x3a')](_0x4648fd[_0xa2be('0x31')],_0x423e29[_0xa2be('0x32')]),_0x488bf8);if(_0x4648fd[_0xa2be('0x31')][_0xa2be('0x3b')]){_0x218ef0[_0xa2be('0x3c')]=_[_0xa2be('0x3d')](_0x218ef0[_0xa2be('0x3c')],{'$or':_['map'](_0x488bf8,function(_0x34578d){if(_0x34578d['type']!==_0xa2be('0x3e')){var _0x5bb0a6={};_0x5bb0a6[_0x34578d['name']]={'$like':'%'+_0x4648fd['query'][_0xa2be('0x3b')]+'%'};return _0x5bb0a6;}})});}_0x218ef0=_[_0xa2be('0x3d')]({},_0x218ef0,_0x4648fd[_0xa2be('0x3f')]);var _0x24dc88={'where':_0x218ef0[_0xa2be('0x3c')]};return db[_0xa2be('0x2c')][_0xa2be('0x1c')](_0x24dc88)[_0xa2be('0x23')](function(_0x263473){_0x2b3100[_0xa2be('0x1c')]=_0x263473;if(_0x4648fd[_0xa2be('0x31')]['includeAll']){_0x218ef0[_0xa2be('0x40')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xa2be('0x41')](_0x218ef0);})[_0xa2be('0x23')](function(_0x434133){_0x2b3100[_0xa2be('0x42')]=_0x434133;return _0x2b3100;})['then'](respondWithFilteredResult(_0x5250d2,_0x218ef0))[_0xa2be('0x43')](handleError(_0x5250d2,null));};exports[_0xa2be('0x44')]=function(_0x2cf4d7,_0x4eefd4){var _0x43614a={'raw':!![],'where':{'id':_0x2cf4d7['params']['id']}},_0x4c081b={};_0x4c081b['model']=_[_0xa2be('0x45')](db[_0xa2be('0x2c')][_0xa2be('0x46')]);_0x4c081b[_0xa2be('0x31')]=_[_0xa2be('0x45')](_0x2cf4d7[_0xa2be('0x31')]);_0x4c081b[_0xa2be('0x32')]=_[_0xa2be('0x33')](_0x4c081b['model'],_0x4c081b[_0xa2be('0x31')]);_0x43614a['attributes']=_['intersection'](_0x4c081b[_0xa2be('0x30')],qs['fields'](_0x2cf4d7[_0xa2be('0x31')][_0xa2be('0x35')]));_0x43614a['attributes']=_0x43614a['attributes']['length']?_0x43614a[_0xa2be('0x34')]:_0x4c081b[_0xa2be('0x30')];if(_0x2cf4d7[_0xa2be('0x31')]['includeAll']){_0x43614a[_0xa2be('0x40')]=[{'all':!![]}];}_0x43614a=_[_0xa2be('0x3d')]({},_0x43614a,_0x2cf4d7['options']);return db['AnalyticExtractedReport'][_0xa2be('0x47')](_0x43614a)[_0xa2be('0x23')](handleEntityNotFound(_0x4eefd4,null))['then'](respondWithResult(_0x4eefd4,null))[_0xa2be('0x43')](handleError(_0x4eefd4,null));};exports[_0xa2be('0x48')]=function(_0x174669,_0x31bb10){return db[_0xa2be('0x2c')]['create'](_0x174669[_0xa2be('0x49')],{})['then'](function(_0x5ed893){var _0xc75b70=_0x174669['user'][_0xa2be('0x25')]({'plain':!![]});if(!_0xc75b70)throw new Error(_0xa2be('0x4a'));if(_0xc75b70[_0xa2be('0x4b')]===_0xa2be('0x4c')){var _0x5a1202=_0x5ed893['get']({'plain':!![]});var _0x3f7686=_0xa2be('0x4d');return db[_0xa2be('0x4e')]['find']({'where':{'name':_0x3f7686,'userProfileId':_0xc75b70['userProfileId']},'raw':!![]})[_0xa2be('0x23')](function(_0x41e2ce){if(_0x41e2ce&&_0x41e2ce['autoAssociation']===0x0){return db['UserProfileResource'][_0xa2be('0x48')]({'name':_0x5a1202[_0xa2be('0x29')],'resourceId':_0x5a1202['id'],'type':_0x41e2ce['name'],'sectionId':_0x41e2ce['id']},{})['then'](function(){return _0x5ed893;});}else{return _0x5ed893;}})['catch'](function(_0x5edca7){logger[_0xa2be('0x27')](_0xa2be('0x4f'),_0x5edca7);throw _0x5edca7;});}return _0x5ed893;})[_0xa2be('0x23')](respondWithResult(_0x31bb10,0xc9))[_0xa2be('0x43')](handleError(_0x31bb10,null));};exports[_0xa2be('0x22')]=function(_0xe37b11,_0x46f635){if(_0xe37b11['body']['id']){delete _0xe37b11[_0xa2be('0x49')]['id'];}return db[_0xa2be('0x2c')][_0xa2be('0x47')]({'where':{'id':_0xe37b11[_0xa2be('0x50')]['id']}})[_0xa2be('0x23')](handleEntityNotFound(_0x46f635,null))[_0xa2be('0x23')](saveUpdates(_0xe37b11[_0xa2be('0x49')],null))[_0xa2be('0x23')](respondWithResult(_0x46f635,null))[_0xa2be('0x43')](handleError(_0x46f635,null));};exports[_0xa2be('0x24')]=function(_0x2fa181,_0x18c7db){return db['AnalyticExtractedReport'][_0xa2be('0x47')]({'where':{'id':_0x2fa181[_0xa2be('0x50')]['id']}})['then'](handleEntityNotFound(_0x18c7db,null))['then'](removeEntity(_0x18c7db,null))['catch'](handleError(_0x18c7db,null));};exports[_0xa2be('0x51')]=function(_0x1712ed,_0x28ae8c,_0x709b74){return db['AnalyticExtractedReport'][_0xa2be('0x47')]({'where':{'id':_0x1712ed[_0xa2be('0x50')]['id']},'attributes':[_0xa2be('0x29'),'basename',_0xa2be('0x52'),_0xa2be('0x53')],'raw':!![]})[_0xa2be('0x23')](handleEntityNotFound(_0x28ae8c,null))[_0xa2be('0x23')](function(_0x11b64e){if(_0x11b64e){if(!fs[_0xa2be('0x54')](path[_0xa2be('0x55')](config['root'],_0xa2be('0x56'),_0x11b64e['savename']))){throw new db[(_0xa2be('0x57'))]['ValidationError']('Report\x20not\x20found\x20or\x20empty');}if(_0x1712ed[_0xa2be('0x31')]['exists']){return _0x28ae8c['sendStatus'](0xc8);}return _0x28ae8c[_0xa2be('0x51')](path[_0xa2be('0x55')](config[_0xa2be('0x58')],'server/files/reports',_0x11b64e[_0xa2be('0x52')]),util[_0xa2be('0x59')](_0xa2be('0x5a'),_0x11b64e[_0xa2be('0x5b')]||_0x11b64e[_0xa2be('0x29')],_0x11b64e['output']['toLowerCase']()));}})[_0xa2be('0x43')](handleError(_0x28ae8c,null));};