Built motion from commit c738b9ac.|2.6.25
[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 _0xc307=['includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','download','basename','savename','existsSync','server/files/reports','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','join','root','output','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','sendStatus','status','end','json','offset','undefined','limit','Content-Range','reject','save','then','destroy','get','ExtractedReports','UserProfileResource','stack','name','send','index','map','AnalyticExtractedReport','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count'];(function(_0x2bda70,_0x178c69){var _0x15940a=function(_0x1fcd67){while(--_0x1fcd67){_0x2bda70['push'](_0x2bda70['shift']());}};_0x15940a(++_0x178c69);}(_0xc307,0x1f4));var _0x7c30=function(_0x1e1058,_0x30a95c){_0x1e1058=_0x1e1058-0x0;var _0x1bd2e5=_0xc307[_0x1e1058];return _0x1bd2e5;};'use strict';var emlformat=require(_0x7c30('0x0'));var rimraf=require(_0x7c30('0x1'));var zipdir=require(_0x7c30('0x2'));var jsonpatch=require(_0x7c30('0x3'));var rp=require(_0x7c30('0x4'));var moment=require(_0x7c30('0x5'));var BPromise=require(_0x7c30('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x7c30('0x7'));var sox=require(_0x7c30('0x8'));var csv=require('to-csv');var ejs=require(_0x7c30('0x9'));var fs=require('fs');var fs_extra=require(_0x7c30('0xa'));var _=require(_0x7c30('0xb'));var squel=require(_0x7c30('0xc'));var crypto=require(_0x7c30('0xd'));var jsforce=require(_0x7c30('0xe'));var deskjs=require(_0x7c30('0xf'));var toCsv=require(_0x7c30('0x10'));var querystring=require(_0x7c30('0x11'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7c30('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x7c30('0x13'));var hardwareService=require(_0x7c30('0x14'));var logger=require('../../config/logger')(_0x7c30('0x15'));var utils=require(_0x7c30('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x91ae09,_0x369541){_0x369541=_0x369541||0xcc;return function(_0x15f15e){if(_0x15f15e){return _0x91ae09[_0x7c30('0x17')](_0x369541);}return _0x91ae09[_0x7c30('0x18')](_0x369541)[_0x7c30('0x19')]();};}function respondWithResult(_0x344882,_0x350603){_0x350603=_0x350603||0xc8;return function(_0x545a67){if(_0x545a67){return _0x344882['status'](_0x350603)[_0x7c30('0x1a')](_0x545a67);}};}function respondWithFilteredResult(_0x1a9155,_0x31fd62){return function(_0x25a421){if(_0x25a421){var _0x5684f5=typeof _0x31fd62[_0x7c30('0x1b')]===_0x7c30('0x1c')&&typeof _0x31fd62['limit']===_0x7c30('0x1c');var _0x57e6eb=_0x25a421['count'];var _0x5a0411=_0x5684f5?0x0:_0x31fd62[_0x7c30('0x1b')];var _0x5084f6=_0x5684f5?_0x25a421['count']:_0x31fd62['offset']+_0x31fd62[_0x7c30('0x1d')];var _0xdceeb3;if(_0x5084f6>=_0x57e6eb){_0x5084f6=_0x57e6eb;_0xdceeb3=0xc8;}else{_0xdceeb3=0xce;}_0x1a9155[_0x7c30('0x18')](_0xdceeb3);return _0x1a9155['set'](_0x7c30('0x1e'),_0x5a0411+'-'+_0x5084f6+'/'+_0x57e6eb)['json'](_0x25a421);}return null;};}function patchUpdates(_0x2dad03){return function(_0x572dd4){try{jsonpatch['apply'](_0x572dd4,_0x2dad03,!![]);}catch(_0x4fadca){return BPromise[_0x7c30('0x1f')](_0x4fadca);}return _0x572dd4[_0x7c30('0x20')]();};}function saveUpdates(_0x37503e,_0x69bb2){return function(_0x107ebe){if(_0x107ebe){return _0x107ebe['update'](_0x37503e)[_0x7c30('0x21')](function(_0x53d7f3){return _0x53d7f3;});}return null;};}function removeEntity(_0x379351,_0xb3f719){return function(_0x271f66){if(_0x271f66){return _0x271f66[_0x7c30('0x22')]()[_0x7c30('0x21')](function(){var _0x50c323=_0x271f66[_0x7c30('0x23')]({'plain':!![]});var _0x74bb09=_0x7c30('0x24');return db[_0x7c30('0x25')]['destroy']({'where':{'type':_0x74bb09,'resourceId':_0x50c323['id']}})[_0x7c30('0x21')](function(){return _0x271f66;});})['then'](function(){_0x379351[_0x7c30('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9a76d6,_0x14eecd){return function(_0x18a4d7){if(!_0x18a4d7){_0x9a76d6[_0x7c30('0x17')](0x194);}return _0x18a4d7;};}function handleError(_0x5dbcb8,_0x41f7ed){_0x41f7ed=_0x41f7ed||0x1f4;return function(_0x2783e9){logger['error'](_0x2783e9[_0x7c30('0x26')]);if(_0x2783e9[_0x7c30('0x27')]){delete _0x2783e9[_0x7c30('0x27')];}_0x5dbcb8['status'](_0x41f7ed)[_0x7c30('0x28')](_0x2783e9);};}exports[_0x7c30('0x29')]=function(_0x3a2982,_0x253b6b){var _0x1bceb6={},_0x19057d={},_0x42898e={'count':0x0,'rows':[]};var _0x117f11=_[_0x7c30('0x2a')](db[_0x7c30('0x2b')]['rawAttributes'],function(_0x4fe169){return{'name':_0x4fe169['fieldName'],'type':_0x4fe169[_0x7c30('0x2c')][_0x7c30('0x2d')]};});_0x19057d[_0x7c30('0x2e')]=_[_0x7c30('0x2a')](_0x117f11,'name');_0x19057d[_0x7c30('0x2f')]=_['keys'](_0x3a2982[_0x7c30('0x2f')]);_0x19057d[_0x7c30('0x30')]=_['intersection'](_0x19057d['model'],_0x19057d[_0x7c30('0x2f')]);_0x1bceb6[_0x7c30('0x31')]=_[_0x7c30('0x32')](_0x19057d[_0x7c30('0x2e')],qs['fields'](_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x33')]));_0x1bceb6['attributes']=_0x1bceb6[_0x7c30('0x31')][_0x7c30('0x34')]?_0x1bceb6[_0x7c30('0x31')]:_0x19057d[_0x7c30('0x2e')];if(!_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x35')](_0x7c30('0x36'))){_0x1bceb6[_0x7c30('0x1d')]=qs[_0x7c30('0x1d')](_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x1d')]);_0x1bceb6[_0x7c30('0x1b')]=qs[_0x7c30('0x1b')](_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x1b')]);}_0x1bceb6[_0x7c30('0x37')]=qs[_0x7c30('0x38')](_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x38')]);_0x1bceb6[_0x7c30('0x39')]=qs[_0x7c30('0x30')](_[_0x7c30('0x3a')](_0x3a2982[_0x7c30('0x2f')],_0x19057d[_0x7c30('0x30')]),_0x117f11);if(_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x3b')]){_0x1bceb6[_0x7c30('0x39')]=_[_0x7c30('0x3c')](_0x1bceb6[_0x7c30('0x39')],{'$or':_[_0x7c30('0x2a')](_0x117f11,function(_0x4f95fb){if(_0x4f95fb['type']!==_0x7c30('0x3d')){var _0x250a23={};_0x250a23[_0x4f95fb[_0x7c30('0x27')]]={'$like':'%'+_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x3b')]+'%'};return _0x250a23;}})});}_0x1bceb6=_[_0x7c30('0x3c')]({},_0x1bceb6,_0x3a2982[_0x7c30('0x3e')]);var _0x51b54a={'where':_0x1bceb6[_0x7c30('0x39')]};return db[_0x7c30('0x2b')]['count'](_0x51b54a)[_0x7c30('0x21')](function(_0x5639ae){_0x42898e[_0x7c30('0x3f')]=_0x5639ae;if(_0x3a2982[_0x7c30('0x2f')][_0x7c30('0x40')]){_0x1bceb6[_0x7c30('0x41')]=[{'all':!![]}];}return db[_0x7c30('0x2b')][_0x7c30('0x42')](_0x1bceb6);})['then'](function(_0x5abfe2){_0x42898e[_0x7c30('0x43')]=_0x5abfe2;return _0x42898e;})['then'](respondWithFilteredResult(_0x253b6b,_0x1bceb6))[_0x7c30('0x44')](handleError(_0x253b6b,null));};exports[_0x7c30('0x45')]=function(_0x44b72d,_0x351e0d){var _0x3453e3={'raw':!![],'where':{'id':_0x44b72d[_0x7c30('0x46')]['id']}},_0x207b9d={};_0x207b9d[_0x7c30('0x2e')]=_['keys'](db[_0x7c30('0x2b')][_0x7c30('0x47')]);_0x207b9d[_0x7c30('0x2f')]=_['keys'](_0x44b72d[_0x7c30('0x2f')]);_0x207b9d[_0x7c30('0x30')]=_[_0x7c30('0x32')](_0x207b9d[_0x7c30('0x2e')],_0x207b9d[_0x7c30('0x2f')]);_0x3453e3[_0x7c30('0x31')]=_[_0x7c30('0x32')](_0x207b9d['model'],qs[_0x7c30('0x33')](_0x44b72d[_0x7c30('0x2f')][_0x7c30('0x33')]));_0x3453e3[_0x7c30('0x31')]=_0x3453e3[_0x7c30('0x31')][_0x7c30('0x34')]?_0x3453e3['attributes']:_0x207b9d[_0x7c30('0x2e')];if(_0x44b72d[_0x7c30('0x2f')]['includeAll']){_0x3453e3['include']=[{'all':!![]}];}_0x3453e3=_['merge']({},_0x3453e3,_0x44b72d[_0x7c30('0x3e')]);return db['AnalyticExtractedReport'][_0x7c30('0x48')](_0x3453e3)['then'](handleEntityNotFound(_0x351e0d,null))[_0x7c30('0x21')](respondWithResult(_0x351e0d,null))[_0x7c30('0x44')](handleError(_0x351e0d,null));};exports['create']=function(_0x1c4682,_0x11f10e){return db[_0x7c30('0x2b')][_0x7c30('0x49')](_0x1c4682['body'],{})[_0x7c30('0x21')](function(_0x432d11){var _0x396930=_0x1c4682[_0x7c30('0x4a')][_0x7c30('0x23')]({'plain':!![]});if(!_0x396930)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x396930[_0x7c30('0x4b')]===_0x7c30('0x4a')){var _0x3b692a=_0x432d11[_0x7c30('0x23')]({'plain':!![]});var _0x242693=_0x7c30('0x24');return db[_0x7c30('0x4c')][_0x7c30('0x48')]({'where':{'name':_0x242693,'userProfileId':_0x396930[_0x7c30('0x4d')]},'raw':!![]})[_0x7c30('0x21')](function(_0x2a3324){if(_0x2a3324&&_0x2a3324[_0x7c30('0x4e')]===0x0){return db[_0x7c30('0x25')][_0x7c30('0x49')]({'name':_0x3b692a['name'],'resourceId':_0x3b692a['id'],'type':_0x2a3324[_0x7c30('0x27')],'sectionId':_0x2a3324['id']},{})[_0x7c30('0x21')](function(){return _0x432d11;});}else{return _0x432d11;}})[_0x7c30('0x44')](function(_0x432a4e){logger[_0x7c30('0x4f')](_0x7c30('0x50'),_0x432a4e);throw _0x432a4e;});}return _0x432d11;})[_0x7c30('0x21')](respondWithResult(_0x11f10e,0xc9))['catch'](handleError(_0x11f10e,null));};exports['update']=function(_0x3dbd14,_0x43f834){if(_0x3dbd14[_0x7c30('0x51')]['id']){delete _0x3dbd14[_0x7c30('0x51')]['id'];}return db['AnalyticExtractedReport'][_0x7c30('0x48')]({'where':{'id':_0x3dbd14['params']['id']}})[_0x7c30('0x21')](handleEntityNotFound(_0x43f834,null))[_0x7c30('0x21')](saveUpdates(_0x3dbd14[_0x7c30('0x51')],null))['then'](respondWithResult(_0x43f834,null))['catch'](handleError(_0x43f834,null));};exports['destroy']=function(_0x552c14,_0x454c3f){return db[_0x7c30('0x2b')][_0x7c30('0x48')]({'where':{'id':_0x552c14['params']['id']}})[_0x7c30('0x21')](handleEntityNotFound(_0x454c3f,null))[_0x7c30('0x21')](removeEntity(_0x454c3f,null))[_0x7c30('0x44')](handleError(_0x454c3f,null));};exports[_0x7c30('0x52')]=function(_0x2f70bd,_0x7ba598,_0x59eaba){return db['AnalyticExtractedReport']['find']({'where':{'id':_0x2f70bd[_0x7c30('0x46')]['id']},'attributes':[_0x7c30('0x27'),_0x7c30('0x53'),_0x7c30('0x54'),'output'],'raw':!![]})[_0x7c30('0x21')](handleEntityNotFound(_0x7ba598,null))['then'](function(_0x35d662){if(_0x35d662){if(!fs[_0x7c30('0x55')](path['join'](config['root'],_0x7c30('0x56'),_0x35d662['savename']))){throw new db[(_0x7c30('0x57'))][(_0x7c30('0x58'))](_0x7c30('0x59'));}if(_0x2f70bd[_0x7c30('0x2f')]['exists']){return _0x7ba598['sendStatus'](0xc8);}return _0x7ba598[_0x7c30('0x52')](path[_0x7c30('0x5a')](config[_0x7c30('0x5b')],_0x7c30('0x56'),_0x35d662[_0x7c30('0x54')]),util['format']('%s.%s',_0x35d662[_0x7c30('0x53')]||_0x35d662[_0x7c30('0x27')],_0x35d662[_0x7c30('0x5c')][_0x7c30('0x5d')]()));}})[_0x7c30('0x44')](handleError(_0x7ba598,null));};