6078887e7058b3e6b4b262f2e60d4280d99cae7c
[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 _0x6e78=['count','offset','limit','set','save','update','destroy','get','ExtractedReports','UserProfileResource','then','end','error','stack','name','index','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','length','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','download','savename','output','existsSync','join','root','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','%s.%s','basename','toLowerCase','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','to-csv','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json'];(function(_0xf2628e,_0x521bf7){var _0x13863a=function(_0x2b04ab){while(--_0x2b04ab){_0xf2628e['push'](_0xf2628e['shift']());}};_0x13863a(++_0x521bf7);}(_0x6e78,0x1b0));var _0x86e7=function(_0x33ec75,_0x56dbb7){_0x33ec75=_0x33ec75-0x0;var _0x377c09=_0x6e78[_0x33ec75];return _0x377c09;};'use strict';var pdf=require(_0x86e7('0x0'));var emlformat=require(_0x86e7('0x1'));var rimraf=require(_0x86e7('0x2'));var zipdir=require(_0x86e7('0x3'));var jsonpatch=require(_0x86e7('0x4'));var rp=require(_0x86e7('0x5'));var moment=require('moment');var BPromise=require(_0x86e7('0x6'));var Mustache=require(_0x86e7('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x86e7('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x86e7('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x86e7('0xa'));var deskjs=require(_0x86e7('0xb'));var toCsv=require(_0x86e7('0x8'));var querystring=require(_0x86e7('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x86e7('0xd'));var qs=require(_0x86e7('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x86e7('0xf'));var logger=require(_0x86e7('0x10'))('api');var utils=require(_0x86e7('0x11'));var config=require(_0x86e7('0x12'));var db=require(_0x86e7('0x13'))['db'];function respondWithStatusCode(_0x2c9ee8,_0xff2459){_0xff2459=_0xff2459||0xcc;return function(_0x1ee8fe){if(_0x1ee8fe){return _0x2c9ee8[_0x86e7('0x14')](_0xff2459);}return _0x2c9ee8[_0x86e7('0x15')](_0xff2459)['end']();};}function respondWithResult(_0x17d48c,_0x518ce2){_0x518ce2=_0x518ce2||0xc8;return function(_0x1a0cb6){if(_0x1a0cb6){return _0x17d48c[_0x86e7('0x15')](_0x518ce2)[_0x86e7('0x16')](_0x1a0cb6);}};}function respondWithFilteredResult(_0x4a5fcd,_0x1d2d80){return function(_0x770713){if(_0x770713){var _0x4fd9c7=_0x770713[_0x86e7('0x17')],_0x4a2173=_0x1d2d80['offset'],_0x593ff7=_0x1d2d80[_0x86e7('0x18')]+_0x1d2d80[_0x86e7('0x19')],_0x43984b;if(_0x593ff7>=_0x4fd9c7){_0x593ff7=_0x4fd9c7;_0x43984b=0xc8;}else{_0x43984b=0xce;}_0x4a5fcd['status'](_0x43984b);return _0x4a5fcd[_0x86e7('0x1a')]('Content-Range',_0x4a2173+'-'+_0x593ff7+'/'+_0x4fd9c7)[_0x86e7('0x16')](_0x770713);}return null;};}function patchUpdates(_0x52a118){return function(_0x7faa60){try{jsonpatch['apply'](_0x7faa60,_0x52a118,!![]);}catch(_0x4baccf){return BPromise['reject'](_0x4baccf);}return _0x7faa60[_0x86e7('0x1b')]();};}function saveUpdates(_0x464a8d,_0x194a68){return function(_0x4522f9){if(_0x4522f9){return _0x4522f9[_0x86e7('0x1c')](_0x464a8d)['then'](function(_0x5bab15){return _0x5bab15;});}return null;};}function removeEntity(_0x10fff4,_0x575362){return function(_0x20d530){if(_0x20d530){return _0x20d530[_0x86e7('0x1d')]()['then'](function(){var _0x3ce353=_0x20d530[_0x86e7('0x1e')]({'plain':!![]});var _0x5f2468=_0x86e7('0x1f');return db[_0x86e7('0x20')][_0x86e7('0x1d')]({'where':{'type':_0x5f2468,'resourceId':_0x3ce353['id']}})[_0x86e7('0x21')](function(){return _0x20d530;});})[_0x86e7('0x21')](function(){_0x10fff4[_0x86e7('0x15')](0xcc)[_0x86e7('0x22')]();});}};}function handleEntityNotFound(_0x1e3301,_0x293527){return function(_0x15e779){if(!_0x15e779){_0x1e3301['sendStatus'](0x194);}return _0x15e779;};}function handleError(_0x10f6de,_0x41f289){_0x41f289=_0x41f289||0x1f4;return function(_0x4224ec){logger[_0x86e7('0x23')](_0x4224ec[_0x86e7('0x24')]);if(_0x4224ec['name']){delete _0x4224ec[_0x86e7('0x25')];}_0x10f6de[_0x86e7('0x15')](_0x41f289)['send'](_0x4224ec);};}exports[_0x86e7('0x26')]=function(_0x505e35,_0x1b4381){var _0x1f162a={},_0x5cfbb={},_0x516d38={'count':0x0,'rows':[]};var _0x3321ef=_[_0x86e7('0x27')](db[_0x86e7('0x28')][_0x86e7('0x29')],function(_0x2b9c30){return{'name':_0x2b9c30[_0x86e7('0x2a')],'type':_0x2b9c30[_0x86e7('0x2b')][_0x86e7('0x2c')]};});_0x5cfbb[_0x86e7('0x2d')]=_[_0x86e7('0x27')](_0x3321ef,_0x86e7('0x25'));_0x5cfbb[_0x86e7('0x2e')]=_['keys'](_0x505e35[_0x86e7('0x2e')]);_0x5cfbb[_0x86e7('0x2f')]=_['intersection'](_0x5cfbb[_0x86e7('0x2d')],_0x5cfbb['query']);_0x1f162a[_0x86e7('0x30')]=_[_0x86e7('0x31')](_0x5cfbb[_0x86e7('0x2d')],qs[_0x86e7('0x32')](_0x505e35[_0x86e7('0x2e')]['fields']));_0x1f162a[_0x86e7('0x30')]=_0x1f162a[_0x86e7('0x30')]['length']?_0x1f162a[_0x86e7('0x30')]:_0x5cfbb[_0x86e7('0x2d')];if(!_0x505e35[_0x86e7('0x2e')][_0x86e7('0x33')](_0x86e7('0x34'))){_0x1f162a[_0x86e7('0x19')]=qs[_0x86e7('0x19')](_0x505e35['query'][_0x86e7('0x19')]);_0x1f162a[_0x86e7('0x18')]=qs['offset'](_0x505e35[_0x86e7('0x2e')][_0x86e7('0x18')]);}_0x1f162a['order']=qs['sort'](_0x505e35[_0x86e7('0x2e')][_0x86e7('0x35')]);_0x1f162a[_0x86e7('0x36')]=qs[_0x86e7('0x2f')](_[_0x86e7('0x37')](_0x505e35[_0x86e7('0x2e')],_0x5cfbb[_0x86e7('0x2f')]),_0x3321ef);if(_0x505e35[_0x86e7('0x2e')][_0x86e7('0x38')]){_0x1f162a['where']=_[_0x86e7('0x39')](_0x1f162a['where'],{'$or':_[_0x86e7('0x27')](_0x3321ef,function(_0x21241f){if(_0x21241f[_0x86e7('0x2b')]!==_0x86e7('0x3a')){var _0x43cbda={};_0x43cbda[_0x21241f['name']]={'$like':'%'+_0x505e35['query'][_0x86e7('0x38')]+'%'};return _0x43cbda;}})});}_0x1f162a=_[_0x86e7('0x39')]({},_0x1f162a,_0x505e35[_0x86e7('0x3b')]);var _0x3e78e1={'where':_0x1f162a[_0x86e7('0x36')]};return db[_0x86e7('0x28')][_0x86e7('0x17')](_0x3e78e1)[_0x86e7('0x21')](function(_0x1f62f8){_0x516d38['count']=_0x1f62f8;if(_0x505e35['query'][_0x86e7('0x3c')]){_0x1f162a[_0x86e7('0x3d')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0x86e7('0x3e')](_0x1f162a);})[_0x86e7('0x21')](function(_0x580b53){_0x516d38[_0x86e7('0x3f')]=_0x580b53;return _0x516d38;})['then'](respondWithFilteredResult(_0x1b4381,_0x1f162a))[_0x86e7('0x40')](handleError(_0x1b4381,null));};exports[_0x86e7('0x41')]=function(_0xa93ab9,_0x14c8c5){var _0x3cf7bd={'raw':!![],'where':{'id':_0xa93ab9['params']['id']}},_0x375a1b={};_0x375a1b['model']=_['keys'](db[_0x86e7('0x28')]['rawAttributes']);_0x375a1b[_0x86e7('0x2e')]=_[_0x86e7('0x42')](_0xa93ab9['query']);_0x375a1b[_0x86e7('0x2f')]=_[_0x86e7('0x31')](_0x375a1b[_0x86e7('0x2d')],_0x375a1b[_0x86e7('0x2e')]);_0x3cf7bd[_0x86e7('0x30')]=_['intersection'](_0x375a1b['model'],qs['fields'](_0xa93ab9['query'][_0x86e7('0x32')]));_0x3cf7bd['attributes']=_0x3cf7bd[_0x86e7('0x30')][_0x86e7('0x43')]?_0x3cf7bd[_0x86e7('0x30')]:_0x375a1b[_0x86e7('0x2d')];if(_0xa93ab9['query'][_0x86e7('0x3c')]){_0x3cf7bd[_0x86e7('0x3d')]=[{'all':!![]}];}_0x3cf7bd=_['merge']({},_0x3cf7bd,_0xa93ab9[_0x86e7('0x3b')]);return db['AnalyticExtractedReport'][_0x86e7('0x44')](_0x3cf7bd)[_0x86e7('0x21')](handleEntityNotFound(_0x14c8c5,null))[_0x86e7('0x21')](respondWithResult(_0x14c8c5,null))[_0x86e7('0x40')](handleError(_0x14c8c5,null));};exports['create']=function(_0x9a2711,_0x573759){return db[_0x86e7('0x28')][_0x86e7('0x45')](_0x9a2711['body'],{})[_0x86e7('0x21')](function(_0x1db3e5){var _0x35b5c4=_0x9a2711[_0x86e7('0x46')]['get']({'plain':!![]});if(!_0x35b5c4)throw new Error(_0x86e7('0x47'));if(_0x35b5c4[_0x86e7('0x48')]==='user'){var _0x4665f6=_0x1db3e5['get']({'plain':!![]});var _0x28e3c4=_0x86e7('0x1f');return db['UserProfileSection'][_0x86e7('0x44')]({'where':{'name':_0x28e3c4,'userProfileId':_0x35b5c4['userProfileId']},'raw':!![]})[_0x86e7('0x21')](function(_0x47b356){if(_0x47b356&&_0x47b356[_0x86e7('0x49')]===0x0){return db[_0x86e7('0x20')][_0x86e7('0x45')]({'name':_0x4665f6[_0x86e7('0x25')],'resourceId':_0x4665f6['id'],'type':_0x47b356[_0x86e7('0x25')],'sectionId':_0x47b356['id']},{})[_0x86e7('0x21')](function(){return _0x1db3e5;});}else{return _0x1db3e5;}})['catch'](function(_0x1ff2fc){logger[_0x86e7('0x23')](_0x86e7('0x4a'),_0x1ff2fc);throw _0x1ff2fc;});}return _0x1db3e5;})['then'](respondWithResult(_0x573759,0xc9))[_0x86e7('0x40')](handleError(_0x573759,null));};exports[_0x86e7('0x1c')]=function(_0x8512ca,_0x51c2a3){if(_0x8512ca[_0x86e7('0x4b')]['id']){delete _0x8512ca[_0x86e7('0x4b')]['id'];}return db['AnalyticExtractedReport'][_0x86e7('0x44')]({'where':{'id':_0x8512ca['params']['id']}})[_0x86e7('0x21')](handleEntityNotFound(_0x51c2a3,null))[_0x86e7('0x21')](saveUpdates(_0x8512ca[_0x86e7('0x4b')],null))[_0x86e7('0x21')](respondWithResult(_0x51c2a3,null))['catch'](handleError(_0x51c2a3,null));};exports[_0x86e7('0x1d')]=function(_0x487d5b,_0xf6ee04){return db[_0x86e7('0x28')][_0x86e7('0x44')]({'where':{'id':_0x487d5b[_0x86e7('0x4c')]['id']}})[_0x86e7('0x21')](handleEntityNotFound(_0xf6ee04,null))['then'](removeEntity(_0xf6ee04,null))[_0x86e7('0x40')](handleError(_0xf6ee04,null));};exports[_0x86e7('0x4d')]=function(_0xd5f61b,_0x5d57d4,_0x13a91d){return db[_0x86e7('0x28')][_0x86e7('0x44')]({'where':{'id':_0xd5f61b['params']['id']},'attributes':[_0x86e7('0x25'),'basename',_0x86e7('0x4e'),_0x86e7('0x4f')],'raw':!![]})[_0x86e7('0x21')](handleEntityNotFound(_0x5d57d4,null))[_0x86e7('0x21')](function(_0x330a67){if(_0x330a67){if(!fs[_0x86e7('0x50')](path[_0x86e7('0x51')](config[_0x86e7('0x52')],_0x86e7('0x53'),_0x330a67[_0x86e7('0x4e')]))){throw new db[(_0x86e7('0x54'))][(_0x86e7('0x55'))](_0x86e7('0x56'));}if(_0xd5f61b[_0x86e7('0x2e')][_0x86e7('0x57')]){return _0x5d57d4[_0x86e7('0x14')](0xc8);}return _0x5d57d4['download'](path[_0x86e7('0x51')](config['root'],'server/files/reports',_0x330a67['savename']),util['format'](_0x86e7('0x58'),_0x330a67[_0x86e7('0x59')]||_0x330a67[_0x86e7('0x25')],_0x330a67[_0x86e7('0x4f')][_0x86e7('0x5a')]()));}})['catch'](handleError(_0x5d57d4,null));};