1d0b813dfeb9367bc364adb5ebd0b0ec56dd963c
[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 _0x69c2=['crypto','jsforce','desk.js','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','limit','set','json','reject','save','update','destroy','get','ExtractedReports','then','end','error','stack','name','send','map','AnalyticExtractedReport','rawAttributes','fieldName','type','key','model','query','intersection','fields','attributes','hasOwnProperty','nolimit','order','filters','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download','basename','output','server/files/reports','savename','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','join','root','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','squel'];(function(_0x4063a4,_0x19d730){var _0x17908d=function(_0x3ce714){while(--_0x3ce714){_0x4063a4['push'](_0x4063a4['shift']());}};_0x17908d(++_0x19d730);}(_0x69c2,0x106));var _0x269c=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x69c2[_0x397e5f];return _0x5302b8;};'use strict';var emlformat=require(_0x269c('0x0'));var rimraf=require(_0x269c('0x1'));var zipdir=require(_0x269c('0x2'));var jsonpatch=require(_0x269c('0x3'));var rp=require(_0x269c('0x4'));var moment=require(_0x269c('0x5'));var BPromise=require(_0x269c('0x6'));var Mustache=require(_0x269c('0x7'));var util=require(_0x269c('0x8'));var path=require(_0x269c('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x269c('0xa'));var crypto=require(_0x269c('0xb'));var jsforce=require(_0x269c('0xc'));var deskjs=require(_0x269c('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x269c('0xe'));var Redis=require(_0x269c('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x269c('0x10'));var logger=require(_0x269c('0x11'))('api');var utils=require(_0x269c('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x269c('0x13'));var db=require(_0x269c('0x14'))['db'];function respondWithStatusCode(_0x310fa9,_0x45a3f5){_0x45a3f5=_0x45a3f5||0xcc;return function(_0x95ed56){if(_0x95ed56){return _0x310fa9[_0x269c('0x15')](_0x45a3f5);}return _0x310fa9[_0x269c('0x16')](_0x45a3f5)['end']();};}function respondWithResult(_0x29bb58,_0x1f423c){_0x1f423c=_0x1f423c||0xc8;return function(_0x3ec206){if(_0x3ec206){return _0x29bb58[_0x269c('0x16')](_0x1f423c)['json'](_0x3ec206);}};}function respondWithFilteredResult(_0x2623eb,_0x406494){return function(_0x51065d){if(_0x51065d){var _0x638f29=typeof _0x406494[_0x269c('0x17')]===_0x269c('0x18')&&typeof _0x406494['limit']===_0x269c('0x18');var _0x2c74f5=_0x51065d[_0x269c('0x19')];var _0x2fdc67=_0x638f29?0x0:_0x406494[_0x269c('0x17')];var _0x2fb8a8=_0x638f29?_0x51065d[_0x269c('0x19')]:_0x406494[_0x269c('0x17')]+_0x406494[_0x269c('0x1a')];var _0x1c8e67;if(_0x2fb8a8>=_0x2c74f5){_0x2fb8a8=_0x2c74f5;_0x1c8e67=0xc8;}else{_0x1c8e67=0xce;}_0x2623eb[_0x269c('0x16')](_0x1c8e67);return _0x2623eb[_0x269c('0x1b')]('Content-Range',_0x2fdc67+'-'+_0x2fb8a8+'/'+_0x2c74f5)[_0x269c('0x1c')](_0x51065d);}return null;};}function patchUpdates(_0x3cccef){return function(_0x49a06e){try{jsonpatch['apply'](_0x49a06e,_0x3cccef,!![]);}catch(_0x26ec83){return BPromise[_0x269c('0x1d')](_0x26ec83);}return _0x49a06e[_0x269c('0x1e')]();};}function saveUpdates(_0x2f5cfe,_0x5d9b20){return function(_0x27bf7e){if(_0x27bf7e){return _0x27bf7e[_0x269c('0x1f')](_0x2f5cfe)['then'](function(_0x40b3bd){return _0x40b3bd;});}return null;};}function removeEntity(_0x30f08c,_0xaf2aed){return function(_0x2290fd){if(_0x2290fd){return _0x2290fd[_0x269c('0x20')]()['then'](function(){var _0x3afda5=_0x2290fd[_0x269c('0x21')]({'plain':!![]});var _0x51f1b8=_0x269c('0x22');return db['UserProfileResource'][_0x269c('0x20')]({'where':{'type':_0x51f1b8,'resourceId':_0x3afda5['id']}})['then'](function(){return _0x2290fd;});})[_0x269c('0x23')](function(){_0x30f08c[_0x269c('0x16')](0xcc)[_0x269c('0x24')]();});}};}function handleEntityNotFound(_0x25f960,_0x4575a9){return function(_0x1d8c51){if(!_0x1d8c51){_0x25f960[_0x269c('0x15')](0x194);}return _0x1d8c51;};}function handleError(_0x54992d,_0x4c4d4c){_0x4c4d4c=_0x4c4d4c||0x1f4;return function(_0x5df6ba){logger[_0x269c('0x25')](_0x5df6ba[_0x269c('0x26')]);if(_0x5df6ba[_0x269c('0x27')]){delete _0x5df6ba[_0x269c('0x27')];}_0x54992d[_0x269c('0x16')](_0x4c4d4c)[_0x269c('0x28')](_0x5df6ba);};}exports['index']=function(_0x5c300f,_0x136a72){var _0x4649c5={},_0x2ffcee={},_0x579728={'count':0x0,'rows':[]};var _0x4c232a=_[_0x269c('0x29')](db[_0x269c('0x2a')][_0x269c('0x2b')],function(_0x1a64f0){return{'name':_0x1a64f0[_0x269c('0x2c')],'type':_0x1a64f0[_0x269c('0x2d')][_0x269c('0x2e')]};});_0x2ffcee[_0x269c('0x2f')]=_[_0x269c('0x29')](_0x4c232a,_0x269c('0x27'));_0x2ffcee[_0x269c('0x30')]=_['keys'](_0x5c300f['query']);_0x2ffcee['filters']=_[_0x269c('0x31')](_0x2ffcee[_0x269c('0x2f')],_0x2ffcee['query']);_0x4649c5['attributes']=_[_0x269c('0x31')](_0x2ffcee[_0x269c('0x2f')],qs[_0x269c('0x32')](_0x5c300f[_0x269c('0x30')][_0x269c('0x32')]));_0x4649c5[_0x269c('0x33')]=_0x4649c5['attributes']['length']?_0x4649c5[_0x269c('0x33')]:_0x2ffcee[_0x269c('0x2f')];if(!_0x5c300f['query'][_0x269c('0x34')](_0x269c('0x35'))){_0x4649c5['limit']=qs['limit'](_0x5c300f[_0x269c('0x30')]['limit']);_0x4649c5['offset']=qs['offset'](_0x5c300f[_0x269c('0x30')][_0x269c('0x17')]);}_0x4649c5[_0x269c('0x36')]=qs['sort'](_0x5c300f[_0x269c('0x30')]['sort']);_0x4649c5['where']=qs[_0x269c('0x37')](_[_0x269c('0x38')](_0x5c300f[_0x269c('0x30')],_0x2ffcee[_0x269c('0x37')]),_0x4c232a);if(_0x5c300f[_0x269c('0x30')][_0x269c('0x39')]){_0x4649c5[_0x269c('0x3a')]=_[_0x269c('0x3b')](_0x4649c5[_0x269c('0x3a')],{'$or':_[_0x269c('0x29')](_0x4c232a,function(_0x432341){if(_0x432341[_0x269c('0x2d')]!=='VIRTUAL'){var _0x2d4bad={};_0x2d4bad[_0x432341['name']]={'$like':'%'+_0x5c300f[_0x269c('0x30')]['filter']+'%'};return _0x2d4bad;}})});}_0x4649c5=_[_0x269c('0x3b')]({},_0x4649c5,_0x5c300f[_0x269c('0x3c')]);var _0x5c86d8={'where':_0x4649c5['where']};return db['AnalyticExtractedReport'][_0x269c('0x19')](_0x5c86d8)[_0x269c('0x23')](function(_0x30fd62){_0x579728[_0x269c('0x19')]=_0x30fd62;if(_0x5c300f[_0x269c('0x30')][_0x269c('0x3d')]){_0x4649c5[_0x269c('0x3e')]=[{'all':!![]}];}return db[_0x269c('0x2a')][_0x269c('0x3f')](_0x4649c5);})[_0x269c('0x23')](function(_0x1d4c4d){_0x579728[_0x269c('0x40')]=_0x1d4c4d;return _0x579728;})[_0x269c('0x23')](respondWithFilteredResult(_0x136a72,_0x4649c5))[_0x269c('0x41')](handleError(_0x136a72,null));};exports[_0x269c('0x42')]=function(_0x3e60f5,_0x1ca6fd){var _0x54c0b3={'raw':!![],'where':{'id':_0x3e60f5[_0x269c('0x43')]['id']}},_0x16681c={};_0x16681c[_0x269c('0x2f')]=_[_0x269c('0x44')](db[_0x269c('0x2a')][_0x269c('0x2b')]);_0x16681c[_0x269c('0x30')]=_[_0x269c('0x44')](_0x3e60f5['query']);_0x16681c[_0x269c('0x37')]=_[_0x269c('0x31')](_0x16681c[_0x269c('0x2f')],_0x16681c[_0x269c('0x30')]);_0x54c0b3[_0x269c('0x33')]=_[_0x269c('0x31')](_0x16681c['model'],qs[_0x269c('0x32')](_0x3e60f5['query'][_0x269c('0x32')]));_0x54c0b3[_0x269c('0x33')]=_0x54c0b3[_0x269c('0x33')]['length']?_0x54c0b3['attributes']:_0x16681c['model'];if(_0x3e60f5[_0x269c('0x30')][_0x269c('0x3d')]){_0x54c0b3[_0x269c('0x3e')]=[{'all':!![]}];}_0x54c0b3=_[_0x269c('0x3b')]({},_0x54c0b3,_0x3e60f5[_0x269c('0x3c')]);return db[_0x269c('0x2a')][_0x269c('0x45')](_0x54c0b3)['then'](handleEntityNotFound(_0x1ca6fd,null))[_0x269c('0x23')](respondWithResult(_0x1ca6fd,null))[_0x269c('0x41')](handleError(_0x1ca6fd,null));};exports[_0x269c('0x46')]=function(_0x11e551,_0x310501){return db[_0x269c('0x2a')][_0x269c('0x46')](_0x11e551[_0x269c('0x47')],{})['then'](function(_0x4e5165){var _0x8cd7c=_0x11e551['user'][_0x269c('0x21')]({'plain':!![]});if(!_0x8cd7c)throw new Error(_0x269c('0x48'));if(_0x8cd7c['role']===_0x269c('0x49')){var _0x375741=_0x4e5165[_0x269c('0x21')]({'plain':!![]});var _0x3d731f='ExtractedReports';return db[_0x269c('0x4a')][_0x269c('0x45')]({'where':{'name':_0x3d731f,'userProfileId':_0x8cd7c[_0x269c('0x4b')]},'raw':!![]})['then'](function(_0x58e9b1){if(_0x58e9b1&&_0x58e9b1['autoAssociation']===0x0){return db[_0x269c('0x4c')]['create']({'name':_0x375741[_0x269c('0x27')],'resourceId':_0x375741['id'],'type':_0x58e9b1['name'],'sectionId':_0x58e9b1['id']},{})[_0x269c('0x23')](function(){return _0x4e5165;});}else{return _0x4e5165;}})['catch'](function(_0x5507ae){logger[_0x269c('0x25')](_0x269c('0x4d'),_0x5507ae);throw _0x5507ae;});}return _0x4e5165;})[_0x269c('0x23')](respondWithResult(_0x310501,0xc9))['catch'](handleError(_0x310501,null));};exports[_0x269c('0x1f')]=function(_0xe13dad,_0x2f90f6){if(_0xe13dad[_0x269c('0x47')]['id']){delete _0xe13dad[_0x269c('0x47')]['id'];}return db[_0x269c('0x2a')]['find']({'where':{'id':_0xe13dad[_0x269c('0x43')]['id']}})[_0x269c('0x23')](handleEntityNotFound(_0x2f90f6,null))[_0x269c('0x23')](saveUpdates(_0xe13dad[_0x269c('0x47')],null))[_0x269c('0x23')](respondWithResult(_0x2f90f6,null))[_0x269c('0x41')](handleError(_0x2f90f6,null));};exports[_0x269c('0x20')]=function(_0x3fbe5f,_0x245dcc){return db[_0x269c('0x2a')][_0x269c('0x45')]({'where':{'id':_0x3fbe5f['params']['id']}})[_0x269c('0x23')](handleEntityNotFound(_0x245dcc,null))[_0x269c('0x23')](removeEntity(_0x245dcc,null))[_0x269c('0x41')](handleError(_0x245dcc,null));};exports[_0x269c('0x4e')]=function(_0x344692,_0x5fbf85,_0x4a2061){return db[_0x269c('0x2a')][_0x269c('0x45')]({'where':{'id':_0x344692['params']['id']},'attributes':[_0x269c('0x27'),_0x269c('0x4f'),'savename',_0x269c('0x50')],'raw':!![]})[_0x269c('0x23')](handleEntityNotFound(_0x5fbf85,null))[_0x269c('0x23')](function(_0x272d0e){if(_0x272d0e){if(!fs['existsSync'](path['join'](config['root'],_0x269c('0x51'),_0x272d0e[_0x269c('0x52')]))){throw new db['Sequelize'][(_0x269c('0x53'))](_0x269c('0x54'));}if(_0x344692[_0x269c('0x30')][_0x269c('0x55')]){return _0x5fbf85[_0x269c('0x15')](0xc8);}return _0x5fbf85[_0x269c('0x4e')](path[_0x269c('0x56')](config[_0x269c('0x57')],'server/files/reports',_0x272d0e[_0x269c('0x52')]),util[_0x269c('0x58')](_0x269c('0x59'),_0x272d0e[_0x269c('0x4f')]||_0x272d0e[_0x269c('0x27')],_0x272d0e[_0x269c('0x50')][_0x269c('0x5a')]()));}})[_0x269c('0x41')](handleError(_0x5fbf85,null));};