6f82d08bf5273b53fc43e247eb7c56b8894544c6
[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 _0x36aa=['util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','error','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','AnalyticExtractedReport','include','rows','catch','show','keys','includeAll','options','create','body','role','user','ExtractedReports','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','download','basename','savename','output','existsSync','join','root','server/files/reports','Sequelize','format','%s.%s','html-pdf','zip-dir','fast-json-patch','request-promise','moment','mustache'];(function(_0x23ae70,_0x5acd65){var _0x58a2e8=function(_0x396473){while(--_0x396473){_0x23ae70['push'](_0x23ae70['shift']());}};_0x58a2e8(++_0x5acd65);}(_0x36aa,0x114));var _0xa36a=function(_0x5c3480,_0x3a45a8){_0x5c3480=_0x5c3480-0x0;var _0x20ceb8=_0x36aa[_0x5c3480];return _0x20ceb8;};'use strict';var pdf=require(_0xa36a('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xa36a('0x1'));var jsonpatch=require(_0xa36a('0x2'));var rp=require(_0xa36a('0x3'));var moment=require(_0xa36a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa36a('0x5'));var util=require(_0xa36a('0x6'));var path=require(_0xa36a('0x7'));var sox=require(_0xa36a('0x8'));var csv=require(_0xa36a('0x9'));var ejs=require(_0xa36a('0xa'));var fs=require('fs');var _=require(_0xa36a('0xb'));var squel=require(_0xa36a('0xc'));var crypto=require(_0xa36a('0xd'));var jsforce=require(_0xa36a('0xe'));var deskjs=require(_0xa36a('0xf'));var toCsv=require(_0xa36a('0x9'));var querystring=require(_0xa36a('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa36a('0x11'));var as=require(_0xa36a('0x12'));var hardwareService=require(_0xa36a('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xa36a('0x14'));var config=require(_0xa36a('0x15'));var db=require(_0xa36a('0x16'))['db'];function respondWithStatusCode(_0xe12847,_0x29661d){_0x29661d=_0x29661d||0xcc;return function(_0x3e15df){if(_0x3e15df){return _0xe12847[_0xa36a('0x17')](_0x29661d);}return _0xe12847[_0xa36a('0x18')](_0x29661d)[_0xa36a('0x19')]();};}function respondWithResult(_0x25756f,_0x49da78){_0x49da78=_0x49da78||0xc8;return function(_0x153c4d){if(_0x153c4d){return _0x25756f[_0xa36a('0x18')](_0x49da78)[_0xa36a('0x1a')](_0x153c4d);}};}function respondWithFilteredResult(_0x27349f,_0x4f425b){return function(_0x1f0f44){if(_0x1f0f44){var _0x28cdd4=_0x1f0f44[_0xa36a('0x1b')],_0x59870b=_0x4f425b[_0xa36a('0x1c')],_0x8c066a=_0x4f425b[_0xa36a('0x1c')]+_0x4f425b[_0xa36a('0x1d')],_0x4cf01f;if(_0x8c066a>=_0x28cdd4){_0x8c066a=_0x28cdd4;_0x4cf01f=0xc8;}else{_0x4cf01f=0xce;}_0x27349f[_0xa36a('0x18')](_0x4cf01f);return _0x27349f[_0xa36a('0x1e')](_0xa36a('0x1f'),_0x59870b+'-'+_0x8c066a+'/'+_0x28cdd4)[_0xa36a('0x1a')](_0x1f0f44);}return null;};}function patchUpdates(_0x1a213e){return function(_0x250cc3){try{jsonpatch[_0xa36a('0x20')](_0x250cc3,_0x1a213e,!![]);}catch(_0x3dec25){return BPromise[_0xa36a('0x21')](_0x3dec25);}return _0x250cc3[_0xa36a('0x22')]();};}function saveUpdates(_0x311c10,_0x30f5e3){return function(_0x461a81){if(_0x461a81){return _0x461a81['update'](_0x311c10)[_0xa36a('0x23')](function(_0x34bd13){return _0x34bd13;});}return null;};}function removeEntity(_0x3bfaf4,_0x1a715b){return function(_0x2c66a5){if(_0x2c66a5){return _0x2c66a5[_0xa36a('0x24')]()[_0xa36a('0x23')](function(){var _0x4b620f=_0x2c66a5[_0xa36a('0x25')]({'plain':!![]});var _0x1be97e='ExtractedReports';return db[_0xa36a('0x26')][_0xa36a('0x24')]({'where':{'type':_0x1be97e,'resourceId':_0x4b620f['id']}})['then'](function(){return _0x2c66a5;});})[_0xa36a('0x23')](function(){_0x3bfaf4[_0xa36a('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c879c,_0x1e2cbb){return function(_0x57daad){if(!_0x57daad){_0x1c879c[_0xa36a('0x17')](0x194);}return _0x57daad;};}function handleError(_0x214e4,_0x58baba){_0x58baba=_0x58baba||0x1f4;return function(_0x3b0b7a){logger[_0xa36a('0x27')](_0x3b0b7a[_0xa36a('0x28')]);if(_0x3b0b7a[_0xa36a('0x29')]){delete _0x3b0b7a[_0xa36a('0x29')];}_0x214e4['status'](_0x58baba)['send'](_0x3b0b7a);};}exports[_0xa36a('0x2a')]=function(_0x26a103,_0x22f184){var _0x47a468={},_0x7ddb5c={},_0x5830d2={'count':0x0,'rows':[]};var _0x2bf9e1=_[_0xa36a('0x2b')](db['AnalyticExtractedReport'][_0xa36a('0x2c')],function(_0x27fd93){return{'name':_0x27fd93[_0xa36a('0x2d')],'type':_0x27fd93[_0xa36a('0x2e')][_0xa36a('0x2f')]};});_0x7ddb5c['model']=_[_0xa36a('0x2b')](_0x2bf9e1,'name');_0x7ddb5c[_0xa36a('0x30')]=_['keys'](_0x26a103[_0xa36a('0x30')]);_0x7ddb5c[_0xa36a('0x31')]=_[_0xa36a('0x32')](_0x7ddb5c[_0xa36a('0x33')],_0x7ddb5c[_0xa36a('0x30')]);_0x47a468[_0xa36a('0x34')]=_[_0xa36a('0x32')](_0x7ddb5c['model'],qs['fields'](_0x26a103[_0xa36a('0x30')][_0xa36a('0x35')]));_0x47a468[_0xa36a('0x34')]=_0x47a468['attributes'][_0xa36a('0x36')]?_0x47a468['attributes']:_0x7ddb5c[_0xa36a('0x33')];if(!_0x26a103[_0xa36a('0x30')][_0xa36a('0x37')](_0xa36a('0x38'))){_0x47a468[_0xa36a('0x1d')]=qs['limit'](_0x26a103['query'][_0xa36a('0x1d')]);_0x47a468[_0xa36a('0x1c')]=qs['offset'](_0x26a103[_0xa36a('0x30')][_0xa36a('0x1c')]);}_0x47a468[_0xa36a('0x39')]=qs['sort'](_0x26a103['query'][_0xa36a('0x3a')]);_0x47a468[_0xa36a('0x3b')]=qs[_0xa36a('0x31')](_[_0xa36a('0x3c')](_0x26a103['query'],_0x7ddb5c[_0xa36a('0x31')]));if(_0x26a103[_0xa36a('0x30')]['filter']){_0x47a468[_0xa36a('0x3b')]=_[_0xa36a('0x3d')](_0x47a468[_0xa36a('0x3b')],{'$or':_[_0xa36a('0x2b')](_0x2bf9e1,function(_0x3af569){if(_0x3af569['type']!=='VIRTUAL'){var _0x5b74b2={};_0x5b74b2[_0x3af569[_0xa36a('0x29')]]={'$like':'%'+_0x26a103['query'][_0xa36a('0x3e')]+'%'};return _0x5b74b2;}})});}_0x47a468=_[_0xa36a('0x3d')]({},_0x47a468,_0x26a103['options']);var _0x2594dd={'where':_0x47a468[_0xa36a('0x3b')]};return db[_0xa36a('0x3f')]['count'](_0x2594dd)[_0xa36a('0x23')](function(_0x272c53){_0x5830d2[_0xa36a('0x1b')]=_0x272c53;if(_0x26a103['query']['includeAll']){_0x47a468[_0xa36a('0x40')]=[{'all':!![]}];}return db[_0xa36a('0x3f')]['findAll'](_0x47a468);})[_0xa36a('0x23')](function(_0x471da7){_0x5830d2[_0xa36a('0x41')]=_0x471da7;return _0x5830d2;})['then'](respondWithFilteredResult(_0x22f184,_0x47a468))[_0xa36a('0x42')](handleError(_0x22f184,null));};exports[_0xa36a('0x43')]=function(_0x79524,_0x2d0bb9){var _0x134785={'raw':!![],'where':{'id':_0x79524['params']['id']}},_0x290bbf={};_0x290bbf[_0xa36a('0x33')]=_[_0xa36a('0x44')](db['AnalyticExtractedReport'][_0xa36a('0x2c')]);_0x290bbf['query']=_[_0xa36a('0x44')](_0x79524[_0xa36a('0x30')]);_0x290bbf[_0xa36a('0x31')]=_[_0xa36a('0x32')](_0x290bbf[_0xa36a('0x33')],_0x290bbf['query']);_0x134785['attributes']=_['intersection'](_0x290bbf[_0xa36a('0x33')],qs[_0xa36a('0x35')](_0x79524['query']['fields']));_0x134785[_0xa36a('0x34')]=_0x134785[_0xa36a('0x34')][_0xa36a('0x36')]?_0x134785[_0xa36a('0x34')]:_0x290bbf[_0xa36a('0x33')];if(_0x79524['query'][_0xa36a('0x45')]){_0x134785[_0xa36a('0x40')]=[{'all':!![]}];}_0x134785=_[_0xa36a('0x3d')]({},_0x134785,_0x79524[_0xa36a('0x46')]);return db['AnalyticExtractedReport']['find'](_0x134785)['then'](handleEntityNotFound(_0x2d0bb9,null))[_0xa36a('0x23')](respondWithResult(_0x2d0bb9,null))[_0xa36a('0x42')](handleError(_0x2d0bb9,null));};exports[_0xa36a('0x47')]=function(_0x3766e7,_0x83fb77){return db['AnalyticExtractedReport'][_0xa36a('0x47')](_0x3766e7[_0xa36a('0x48')],{})[_0xa36a('0x23')](function(_0x1ecd42){var _0x3b3211=_0x3766e7['user'][_0xa36a('0x25')]({'plain':!![]});if(!_0x3b3211)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3b3211[_0xa36a('0x49')]===_0xa36a('0x4a')){var _0x160bea=_0x1ecd42[_0xa36a('0x25')]({'plain':!![]});var _0x1c4e87=_0xa36a('0x4b');return db[_0xa36a('0x4c')][_0xa36a('0x4d')]({'where':{'name':_0x1c4e87,'userProfileId':_0x3b3211[_0xa36a('0x4e')]},'raw':!![]})['then'](function(_0x563544){if(_0x563544&&_0x563544[_0xa36a('0x4f')]===0x0){return db[_0xa36a('0x26')][_0xa36a('0x47')]({'name':_0x160bea['name'],'resourceId':_0x160bea['id'],'type':_0x563544[_0xa36a('0x29')],'sectionId':_0x563544['id']},{})[_0xa36a('0x23')](function(){return _0x1ecd42;});}else{return _0x1ecd42;}})[_0xa36a('0x42')](function(_0xdf62e9){logger['error'](_0xa36a('0x50'),_0xdf62e9);throw _0xdf62e9;});}return _0x1ecd42;})[_0xa36a('0x23')](respondWithResult(_0x83fb77,0xc9))[_0xa36a('0x42')](handleError(_0x83fb77,null));};exports[_0xa36a('0x51')]=function(_0xfd1dca,_0x4361d4){if(_0xfd1dca[_0xa36a('0x48')]['id']){delete _0xfd1dca[_0xa36a('0x48')]['id'];}return db[_0xa36a('0x3f')]['find']({'where':{'id':_0xfd1dca[_0xa36a('0x52')]['id']}})[_0xa36a('0x23')](handleEntityNotFound(_0x4361d4,null))[_0xa36a('0x23')](saveUpdates(_0xfd1dca[_0xa36a('0x48')],null))['then'](respondWithResult(_0x4361d4,null))[_0xa36a('0x42')](handleError(_0x4361d4,null));};exports[_0xa36a('0x24')]=function(_0x5d3ad9,_0x517305){return db[_0xa36a('0x3f')][_0xa36a('0x4d')]({'where':{'id':_0x5d3ad9[_0xa36a('0x52')]['id']}})['then'](handleEntityNotFound(_0x517305,null))[_0xa36a('0x23')](removeEntity(_0x517305,null))[_0xa36a('0x42')](handleError(_0x517305,null));};exports[_0xa36a('0x53')]=function(_0xf582c,_0x44f249,_0x5b89f4){return db[_0xa36a('0x3f')][_0xa36a('0x4d')]({'where':{'id':_0xf582c[_0xa36a('0x52')]['id']},'attributes':['name',_0xa36a('0x54'),_0xa36a('0x55'),_0xa36a('0x56')],'raw':!![]})[_0xa36a('0x23')](handleEntityNotFound(_0x44f249,null))[_0xa36a('0x23')](function(_0x17557e){if(_0x17557e){if(!fs[_0xa36a('0x57')](path[_0xa36a('0x58')](config[_0xa36a('0x59')],_0xa36a('0x5a'),_0x17557e[_0xa36a('0x55')]))){throw new db[(_0xa36a('0x5b'))]['ValidationError']('Report\x20not\x20found\x20or\x20empty');}if(_0xf582c[_0xa36a('0x30')]['exists']){return _0x44f249[_0xa36a('0x17')](0xc8);}return _0x44f249[_0xa36a('0x53')](path['join'](config['root'],_0xa36a('0x5a'),_0x17557e[_0xa36a('0x55')]),util[_0xa36a('0x5c')](_0xa36a('0x5d'),_0x17557e[_0xa36a('0x54')]||_0x17557e['name'],_0x17557e[_0xa36a('0x56')]['toLowerCase']()));}})['catch'](handleError(_0x44f249,null));};