Built motion from commit da617fac.|2.6.6
[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 _0x9f5a=['request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','Content-Range','apply','reject','save','update','then','destroy','get','ExtractedReports','UserProfileResource','error','stack','name','index','map','AnalyticExtractedReport','rawAttributes','fieldName','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','type','VIRTUAL','count','includeAll','include','findAll','rows','catch','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','basename','output','existsSync','join','root','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','server/files/reports','format','toLowerCase','rimraf','zip-dir'];(function(_0xdf152f,_0x1c6343){var _0x7f0dc1=function(_0x13dbd5){while(--_0x13dbd5){_0xdf152f['push'](_0xdf152f['shift']());}};_0x7f0dc1(++_0x1c6343);}(_0x9f5a,0x11b));var _0xa9f5=function(_0x493465,_0x52b487){_0x493465=_0x493465-0x0;var _0x52aefb=_0x9f5a[_0x493465];return _0x52aefb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa9f5('0x0'));var zipdir=require(_0xa9f5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa9f5('0x2'));var moment=require(_0xa9f5('0x3'));var BPromise=require(_0xa9f5('0x4'));var Mustache=require('mustache');var util=require(_0xa9f5('0x5'));var path=require('path');var sox=require(_0xa9f5('0x6'));var csv=require(_0xa9f5('0x7'));var ejs=require(_0xa9f5('0x8'));var fs=require('fs');var fs_extra=require(_0xa9f5('0x9'));var _=require(_0xa9f5('0xa'));var squel=require(_0xa9f5('0xb'));var crypto=require(_0xa9f5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xa9f5('0xd'));var toCsv=require('to-csv');var querystring=require(_0xa9f5('0xe'));var Papa=require(_0xa9f5('0xf'));var Redis=require(_0xa9f5('0x10'));var authService=require(_0xa9f5('0x11'));var qs=require(_0xa9f5('0x12'));var as=require(_0xa9f5('0x13'));var hardwareService=require(_0xa9f5('0x14'));var logger=require(_0xa9f5('0x15'))(_0xa9f5('0x16'));var utils=require('../../config/utils');var config=require(_0xa9f5('0x17'));var licenseUtil=require(_0xa9f5('0x18'));var db=require(_0xa9f5('0x19'))['db'];function respondWithStatusCode(_0x3451af,_0x51a461){_0x51a461=_0x51a461||0xcc;return function(_0x119fe4){if(_0x119fe4){return _0x3451af[_0xa9f5('0x1a')](_0x51a461);}return _0x3451af[_0xa9f5('0x1b')](_0x51a461)[_0xa9f5('0x1c')]();};}function respondWithResult(_0x27ad20,_0x438a29){_0x438a29=_0x438a29||0xc8;return function(_0x232452){if(_0x232452){return _0x27ad20[_0xa9f5('0x1b')](_0x438a29)[_0xa9f5('0x1d')](_0x232452);}};}function respondWithFilteredResult(_0x2a4b8d,_0x32b579){return function(_0x634f2c){if(_0x634f2c){var _0x36296c=typeof _0x32b579['offset']===_0xa9f5('0x1e')&&typeof _0x32b579[_0xa9f5('0x1f')]==='undefined';var _0x4d038e=_0x634f2c['count'];var _0x4eb272=_0x36296c?0x0:_0x32b579[_0xa9f5('0x20')];var _0x450458=_0x36296c?_0x634f2c['count']:_0x32b579['offset']+_0x32b579[_0xa9f5('0x1f')];var _0x180568;if(_0x450458>=_0x4d038e){_0x450458=_0x4d038e;_0x180568=0xc8;}else{_0x180568=0xce;}_0x2a4b8d[_0xa9f5('0x1b')](_0x180568);return _0x2a4b8d['set'](_0xa9f5('0x21'),_0x4eb272+'-'+_0x450458+'/'+_0x4d038e)[_0xa9f5('0x1d')](_0x634f2c);}return null;};}function patchUpdates(_0x15d5dd){return function(_0x2aecb8){try{jsonpatch[_0xa9f5('0x22')](_0x2aecb8,_0x15d5dd,!![]);}catch(_0x14e054){return BPromise[_0xa9f5('0x23')](_0x14e054);}return _0x2aecb8[_0xa9f5('0x24')]();};}function saveUpdates(_0x2f4b5d,_0x5b8ea7){return function(_0x2251f8){if(_0x2251f8){return _0x2251f8[_0xa9f5('0x25')](_0x2f4b5d)[_0xa9f5('0x26')](function(_0x356515){return _0x356515;});}return null;};}function removeEntity(_0xe8cbc9,_0xd53bb9){return function(_0x907bbe){if(_0x907bbe){return _0x907bbe[_0xa9f5('0x27')]()['then'](function(){var _0xacf515=_0x907bbe[_0xa9f5('0x28')]({'plain':!![]});var _0x4ba02e=_0xa9f5('0x29');return db[_0xa9f5('0x2a')]['destroy']({'where':{'type':_0x4ba02e,'resourceId':_0xacf515['id']}})[_0xa9f5('0x26')](function(){return _0x907bbe;});})[_0xa9f5('0x26')](function(){_0xe8cbc9['status'](0xcc)[_0xa9f5('0x1c')]();});}};}function handleEntityNotFound(_0x45ad07,_0x12bccf){return function(_0x783fe7){if(!_0x783fe7){_0x45ad07[_0xa9f5('0x1a')](0x194);}return _0x783fe7;};}function handleError(_0x5c8098,_0x37b9e1){_0x37b9e1=_0x37b9e1||0x1f4;return function(_0x4da190){logger[_0xa9f5('0x2b')](_0x4da190[_0xa9f5('0x2c')]);if(_0x4da190[_0xa9f5('0x2d')]){delete _0x4da190[_0xa9f5('0x2d')];}_0x5c8098[_0xa9f5('0x1b')](_0x37b9e1)['send'](_0x4da190);};}exports[_0xa9f5('0x2e')]=function(_0x4a8074,_0x49b743){var _0x458b6e={},_0x37375d={},_0x1b5839={'count':0x0,'rows':[]};var _0x4e720e=_[_0xa9f5('0x2f')](db[_0xa9f5('0x30')][_0xa9f5('0x31')],function(_0x2ea5a0){return{'name':_0x2ea5a0[_0xa9f5('0x32')],'type':_0x2ea5a0['type'][_0xa9f5('0x33')]};});_0x37375d[_0xa9f5('0x34')]=_[_0xa9f5('0x2f')](_0x4e720e,_0xa9f5('0x2d'));_0x37375d[_0xa9f5('0x35')]=_[_0xa9f5('0x36')](_0x4a8074[_0xa9f5('0x35')]);_0x37375d['filters']=_[_0xa9f5('0x37')](_0x37375d['model'],_0x37375d[_0xa9f5('0x35')]);_0x458b6e['attributes']=_[_0xa9f5('0x37')](_0x37375d[_0xa9f5('0x34')],qs[_0xa9f5('0x38')](_0x4a8074[_0xa9f5('0x35')]['fields']));_0x458b6e[_0xa9f5('0x39')]=_0x458b6e['attributes'][_0xa9f5('0x3a')]?_0x458b6e[_0xa9f5('0x39')]:_0x37375d[_0xa9f5('0x34')];if(!_0x4a8074['query'][_0xa9f5('0x3b')](_0xa9f5('0x3c'))){_0x458b6e[_0xa9f5('0x1f')]=qs['limit'](_0x4a8074[_0xa9f5('0x35')][_0xa9f5('0x1f')]);_0x458b6e['offset']=qs[_0xa9f5('0x20')](_0x4a8074[_0xa9f5('0x35')][_0xa9f5('0x20')]);}_0x458b6e['order']=qs[_0xa9f5('0x3d')](_0x4a8074['query'][_0xa9f5('0x3d')]);_0x458b6e[_0xa9f5('0x3e')]=qs[_0xa9f5('0x3f')](_[_0xa9f5('0x40')](_0x4a8074['query'],_0x37375d[_0xa9f5('0x3f')]),_0x4e720e);if(_0x4a8074[_0xa9f5('0x35')]['filter']){_0x458b6e[_0xa9f5('0x3e')]=_[_0xa9f5('0x41')](_0x458b6e[_0xa9f5('0x3e')],{'$or':_[_0xa9f5('0x2f')](_0x4e720e,function(_0x378205){if(_0x378205[_0xa9f5('0x42')]!==_0xa9f5('0x43')){var _0x200372={};_0x200372[_0x378205[_0xa9f5('0x2d')]]={'$like':'%'+_0x4a8074['query']['filter']+'%'};return _0x200372;}})});}_0x458b6e=_['merge']({},_0x458b6e,_0x4a8074['options']);var _0x69479f={'where':_0x458b6e[_0xa9f5('0x3e')]};return db[_0xa9f5('0x30')][_0xa9f5('0x44')](_0x69479f)[_0xa9f5('0x26')](function(_0x2dcd81){_0x1b5839['count']=_0x2dcd81;if(_0x4a8074['query'][_0xa9f5('0x45')]){_0x458b6e[_0xa9f5('0x46')]=[{'all':!![]}];}return db[_0xa9f5('0x30')][_0xa9f5('0x47')](_0x458b6e);})[_0xa9f5('0x26')](function(_0x31da34){_0x1b5839[_0xa9f5('0x48')]=_0x31da34;return _0x1b5839;})[_0xa9f5('0x26')](respondWithFilteredResult(_0x49b743,_0x458b6e))[_0xa9f5('0x49')](handleError(_0x49b743,null));};exports['show']=function(_0x15fd7c,_0x2dbf38){var _0x22b942={'raw':!![],'where':{'id':_0x15fd7c[_0xa9f5('0x4a')]['id']}},_0x36cffb={};_0x36cffb[_0xa9f5('0x34')]=_['keys'](db[_0xa9f5('0x30')][_0xa9f5('0x31')]);_0x36cffb[_0xa9f5('0x35')]=_[_0xa9f5('0x36')](_0x15fd7c['query']);_0x36cffb[_0xa9f5('0x3f')]=_[_0xa9f5('0x37')](_0x36cffb[_0xa9f5('0x34')],_0x36cffb[_0xa9f5('0x35')]);_0x22b942[_0xa9f5('0x39')]=_[_0xa9f5('0x37')](_0x36cffb[_0xa9f5('0x34')],qs[_0xa9f5('0x38')](_0x15fd7c[_0xa9f5('0x35')][_0xa9f5('0x38')]));_0x22b942[_0xa9f5('0x39')]=_0x22b942['attributes'][_0xa9f5('0x3a')]?_0x22b942[_0xa9f5('0x39')]:_0x36cffb[_0xa9f5('0x34')];if(_0x15fd7c[_0xa9f5('0x35')][_0xa9f5('0x45')]){_0x22b942['include']=[{'all':!![]}];}_0x22b942=_['merge']({},_0x22b942,_0x15fd7c['options']);return db[_0xa9f5('0x30')][_0xa9f5('0x4b')](_0x22b942)[_0xa9f5('0x26')](handleEntityNotFound(_0x2dbf38,null))['then'](respondWithResult(_0x2dbf38,null))[_0xa9f5('0x49')](handleError(_0x2dbf38,null));};exports[_0xa9f5('0x4c')]=function(_0x2adba1,_0x19b9f7){return db[_0xa9f5('0x30')][_0xa9f5('0x4c')](_0x2adba1[_0xa9f5('0x4d')],{})[_0xa9f5('0x26')](function(_0x584587){var _0x1551dc=_0x2adba1[_0xa9f5('0x4e')][_0xa9f5('0x28')]({'plain':!![]});if(!_0x1551dc)throw new Error(_0xa9f5('0x4f'));if(_0x1551dc['role']==='user'){var _0x2e6d49=_0x584587[_0xa9f5('0x28')]({'plain':!![]});var _0x4f76f6=_0xa9f5('0x29');return db['UserProfileSection'][_0xa9f5('0x4b')]({'where':{'name':_0x4f76f6,'userProfileId':_0x1551dc[_0xa9f5('0x50')]},'raw':!![]})[_0xa9f5('0x26')](function(_0x289a90){if(_0x289a90&&_0x289a90[_0xa9f5('0x51')]===0x0){return db[_0xa9f5('0x2a')][_0xa9f5('0x4c')]({'name':_0x2e6d49[_0xa9f5('0x2d')],'resourceId':_0x2e6d49['id'],'type':_0x289a90[_0xa9f5('0x2d')],'sectionId':_0x289a90['id']},{})['then'](function(){return _0x584587;});}else{return _0x584587;}})[_0xa9f5('0x49')](function(_0x5e1cb7){logger[_0xa9f5('0x2b')](_0xa9f5('0x52'),_0x5e1cb7);throw _0x5e1cb7;});}return _0x584587;})['then'](respondWithResult(_0x19b9f7,0xc9))['catch'](handleError(_0x19b9f7,null));};exports[_0xa9f5('0x25')]=function(_0x4c4a15,_0x56aebb){if(_0x4c4a15[_0xa9f5('0x4d')]['id']){delete _0x4c4a15[_0xa9f5('0x4d')]['id'];}return db[_0xa9f5('0x30')]['find']({'where':{'id':_0x4c4a15['params']['id']}})[_0xa9f5('0x26')](handleEntityNotFound(_0x56aebb,null))['then'](saveUpdates(_0x4c4a15[_0xa9f5('0x4d')],null))[_0xa9f5('0x26')](respondWithResult(_0x56aebb,null))[_0xa9f5('0x49')](handleError(_0x56aebb,null));};exports[_0xa9f5('0x27')]=function(_0x36d5ea,_0x3bf069){return db[_0xa9f5('0x30')]['find']({'where':{'id':_0x36d5ea[_0xa9f5('0x4a')]['id']}})[_0xa9f5('0x26')](handleEntityNotFound(_0x3bf069,null))[_0xa9f5('0x26')](removeEntity(_0x3bf069,null))[_0xa9f5('0x49')](handleError(_0x3bf069,null));};exports[_0xa9f5('0x53')]=function(_0x14c682,_0x589e24,_0x19b964){return db[_0xa9f5('0x30')][_0xa9f5('0x4b')]({'where':{'id':_0x14c682[_0xa9f5('0x4a')]['id']},'attributes':[_0xa9f5('0x2d'),_0xa9f5('0x54'),'savename',_0xa9f5('0x55')],'raw':!![]})['then'](handleEntityNotFound(_0x589e24,null))['then'](function(_0x1dd6b2){if(_0x1dd6b2){if(!fs[_0xa9f5('0x56')](path[_0xa9f5('0x57')](config[_0xa9f5('0x58')],'server/files/reports',_0x1dd6b2['savename']))){throw new db['Sequelize'][(_0xa9f5('0x59'))](_0xa9f5('0x5a'));}if(_0x14c682[_0xa9f5('0x35')][_0xa9f5('0x5b')]){return _0x589e24['sendStatus'](0xc8);}return _0x589e24[_0xa9f5('0x53')](path[_0xa9f5('0x57')](config[_0xa9f5('0x58')],_0xa9f5('0x5c'),_0x1dd6b2['savename']),util[_0xa9f5('0x5d')]('%s.%s',_0x1dd6b2[_0xa9f5('0x54')]||_0x1dd6b2[_0xa9f5('0x2d')],_0x1dd6b2[_0xa9f5('0x55')][_0xa9f5('0x5e')]()));}})[_0xa9f5('0x49')](handleError(_0x589e24,null));};