11fa969dc5eba611b606c97ecc95119577ba6f20
[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 _0xcfe3=['create','body','user','role','userProfileId','autoAssociation','UserProfileResource','download','basename','savename','output','existsSync','join','root','server/files/reports','Sequelize','Report\x20not\x20found\x20or\x20empty','format','%s.%s','toLowerCase','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','get','ExtractedReports','error','stack','name','send','index','map','AnalyticExtractedReport','fieldName','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','filters','include','find'];(function(_0x5b9cc5,_0x18e69b){var _0x2d679f=function(_0x3fdb98){while(--_0x3fdb98){_0x5b9cc5['push'](_0x5b9cc5['shift']());}};_0x2d679f(++_0x18e69b);}(_0xcfe3,0x1ef));var _0x3cfe=function(_0x424e32,_0xf238d5){_0x424e32=_0x424e32-0x0;var _0x565782=_0xcfe3[_0x424e32];return _0x565782;};'use strict';var pdf=require(_0x3cfe('0x0'));var emlformat=require(_0x3cfe('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x3cfe('0x2'));var jsonpatch=require(_0x3cfe('0x3'));var rp=require(_0x3cfe('0x4'));var moment=require(_0x3cfe('0x5'));var BPromise=require(_0x3cfe('0x6'));var Mustache=require(_0x3cfe('0x7'));var util=require('util');var path=require(_0x3cfe('0x8'));var sox=require('sox');var csv=require(_0x3cfe('0x9'));var ejs=require(_0x3cfe('0xa'));var fs=require('fs');var _=require(_0x3cfe('0xb'));var squel=require(_0x3cfe('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3cfe('0xd'));var toCsv=require(_0x3cfe('0x9'));var querystring=require(_0x3cfe('0xe'));var Papa=require(_0x3cfe('0xf'));var Redis=require(_0x3cfe('0x10'));var authService=require(_0x3cfe('0x11'));var qs=require(_0x3cfe('0x12'));var as=require(_0x3cfe('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3cfe('0x14'))(_0x3cfe('0x15'));var utils=require(_0x3cfe('0x16'));var config=require(_0x3cfe('0x17'));var db=require(_0x3cfe('0x18'))['db'];function respondWithStatusCode(_0x342d13,_0x4a58b5){_0x4a58b5=_0x4a58b5||0xcc;return function(_0x182881){if(_0x182881){return _0x342d13[_0x3cfe('0x19')](_0x4a58b5);}return _0x342d13['status'](_0x4a58b5)[_0x3cfe('0x1a')]();};}function respondWithResult(_0x522501,_0x4b298c){_0x4b298c=_0x4b298c||0xc8;return function(_0x792142){if(_0x792142){return _0x522501[_0x3cfe('0x1b')](_0x4b298c)[_0x3cfe('0x1c')](_0x792142);}};}function respondWithFilteredResult(_0x294bf5,_0x28b1a9){return function(_0x1d6136){if(_0x1d6136){var _0x1b0c1a=_0x1d6136[_0x3cfe('0x1d')],_0x560c95=_0x28b1a9[_0x3cfe('0x1e')],_0xa3c181=_0x28b1a9[_0x3cfe('0x1e')]+_0x28b1a9[_0x3cfe('0x1f')],_0x38cd35;if(_0xa3c181>=_0x1b0c1a){_0xa3c181=_0x1b0c1a;_0x38cd35=0xc8;}else{_0x38cd35=0xce;}_0x294bf5[_0x3cfe('0x1b')](_0x38cd35);return _0x294bf5[_0x3cfe('0x20')](_0x3cfe('0x21'),_0x560c95+'-'+_0xa3c181+'/'+_0x1b0c1a)[_0x3cfe('0x1c')](_0x1d6136);}return null;};}function patchUpdates(_0x2c7fb7){return function(_0x1eb606){try{jsonpatch[_0x3cfe('0x22')](_0x1eb606,_0x2c7fb7,!![]);}catch(_0x3fbc4c){return BPromise['reject'](_0x3fbc4c);}return _0x1eb606[_0x3cfe('0x23')]();};}function saveUpdates(_0x180867,_0x251365){return function(_0x539803){if(_0x539803){return _0x539803[_0x3cfe('0x24')](_0x180867)[_0x3cfe('0x25')](function(_0x44d92b){return _0x44d92b;});}return null;};}function removeEntity(_0x2651f5,_0x3ff70c){return function(_0x4c5aa4){if(_0x4c5aa4){return _0x4c5aa4[_0x3cfe('0x26')]()[_0x3cfe('0x25')](function(){var _0x5706c5=_0x4c5aa4[_0x3cfe('0x27')]({'plain':!![]});var _0x417605=_0x3cfe('0x28');return db['UserProfileResource'][_0x3cfe('0x26')]({'where':{'type':_0x417605,'resourceId':_0x5706c5['id']}})[_0x3cfe('0x25')](function(){return _0x4c5aa4;});})['then'](function(){_0x2651f5[_0x3cfe('0x1b')](0xcc)[_0x3cfe('0x1a')]();});}};}function handleEntityNotFound(_0xae06a2,_0x5c462e){return function(_0x414098){if(!_0x414098){_0xae06a2[_0x3cfe('0x19')](0x194);}return _0x414098;};}function handleError(_0x103cfa,_0x1c9813){_0x1c9813=_0x1c9813||0x1f4;return function(_0x4c4ce4){logger[_0x3cfe('0x29')](_0x4c4ce4[_0x3cfe('0x2a')]);if(_0x4c4ce4[_0x3cfe('0x2b')]){delete _0x4c4ce4[_0x3cfe('0x2b')];}_0x103cfa[_0x3cfe('0x1b')](_0x1c9813)[_0x3cfe('0x2c')](_0x4c4ce4);};}exports[_0x3cfe('0x2d')]=function(_0x3154b7,_0x484489){var _0x98a0a0={},_0xdefc0b={},_0x5df9b7={'count':0x0,'rows':[]};var _0x234989=_[_0x3cfe('0x2e')](db[_0x3cfe('0x2f')]['rawAttributes'],function(_0x57a0f6){return{'name':_0x57a0f6[_0x3cfe('0x30')],'type':_0x57a0f6[_0x3cfe('0x31')]['key']};});_0xdefc0b[_0x3cfe('0x32')]=_[_0x3cfe('0x2e')](_0x234989,_0x3cfe('0x2b'));_0xdefc0b[_0x3cfe('0x33')]=_[_0x3cfe('0x34')](_0x3154b7[_0x3cfe('0x33')]);_0xdefc0b['filters']=_['intersection'](_0xdefc0b['model'],_0xdefc0b[_0x3cfe('0x33')]);_0x98a0a0['attributes']=_[_0x3cfe('0x35')](_0xdefc0b[_0x3cfe('0x32')],qs[_0x3cfe('0x36')](_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x36')]));_0x98a0a0[_0x3cfe('0x37')]=_0x98a0a0[_0x3cfe('0x37')][_0x3cfe('0x38')]?_0x98a0a0['attributes']:_0xdefc0b[_0x3cfe('0x32')];if(!_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x39')]('nolimit')){_0x98a0a0[_0x3cfe('0x1f')]=qs['limit'](_0x3154b7[_0x3cfe('0x33')]['limit']);_0x98a0a0[_0x3cfe('0x1e')]=qs[_0x3cfe('0x1e')](_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x1e')]);}_0x98a0a0[_0x3cfe('0x3a')]=qs[_0x3cfe('0x3b')](_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x3b')]);_0x98a0a0[_0x3cfe('0x3c')]=qs['filters'](_[_0x3cfe('0x3d')](_0x3154b7[_0x3cfe('0x33')],_0xdefc0b['filters']));if(_0x3154b7[_0x3cfe('0x33')]['filter']){_0x98a0a0[_0x3cfe('0x3c')]=_[_0x3cfe('0x3e')](_0x98a0a0['where'],{'$or':_[_0x3cfe('0x2e')](_0x234989,function(_0x80e828){if(_0x80e828[_0x3cfe('0x31')]!==_0x3cfe('0x3f')){var _0xcf412d={};_0xcf412d[_0x80e828[_0x3cfe('0x2b')]]={'$like':'%'+_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x40')]+'%'};return _0xcf412d;}})});}_0x98a0a0=_[_0x3cfe('0x3e')]({},_0x98a0a0,_0x3154b7[_0x3cfe('0x41')]);var _0x1a7370={'where':_0x98a0a0[_0x3cfe('0x3c')]};return db[_0x3cfe('0x2f')]['count'](_0x1a7370)[_0x3cfe('0x25')](function(_0x2b732b){_0x5df9b7[_0x3cfe('0x1d')]=_0x2b732b;if(_0x3154b7[_0x3cfe('0x33')][_0x3cfe('0x42')]){_0x98a0a0['include']=[{'all':!![]}];}return db[_0x3cfe('0x2f')][_0x3cfe('0x43')](_0x98a0a0);})[_0x3cfe('0x25')](function(_0x2a908c){_0x5df9b7[_0x3cfe('0x44')]=_0x2a908c;return _0x5df9b7;})[_0x3cfe('0x25')](respondWithFilteredResult(_0x484489,_0x98a0a0))[_0x3cfe('0x45')](handleError(_0x484489,null));};exports[_0x3cfe('0x46')]=function(_0x1dbe5d,_0x29a30f){var _0x4613d3={'raw':!![],'where':{'id':_0x1dbe5d[_0x3cfe('0x47')]['id']}},_0x40f97d={};_0x40f97d[_0x3cfe('0x32')]=_[_0x3cfe('0x34')](db[_0x3cfe('0x2f')]['rawAttributes']);_0x40f97d['query']=_[_0x3cfe('0x34')](_0x1dbe5d[_0x3cfe('0x33')]);_0x40f97d[_0x3cfe('0x48')]=_[_0x3cfe('0x35')](_0x40f97d[_0x3cfe('0x32')],_0x40f97d[_0x3cfe('0x33')]);_0x4613d3['attributes']=_['intersection'](_0x40f97d[_0x3cfe('0x32')],qs[_0x3cfe('0x36')](_0x1dbe5d[_0x3cfe('0x33')]['fields']));_0x4613d3['attributes']=_0x4613d3[_0x3cfe('0x37')][_0x3cfe('0x38')]?_0x4613d3['attributes']:_0x40f97d[_0x3cfe('0x32')];if(_0x1dbe5d[_0x3cfe('0x33')][_0x3cfe('0x42')]){_0x4613d3[_0x3cfe('0x49')]=[{'all':!![]}];}_0x4613d3=_['merge']({},_0x4613d3,_0x1dbe5d[_0x3cfe('0x41')]);return db[_0x3cfe('0x2f')][_0x3cfe('0x4a')](_0x4613d3)[_0x3cfe('0x25')](handleEntityNotFound(_0x29a30f,null))['then'](respondWithResult(_0x29a30f,null))['catch'](handleError(_0x29a30f,null));};exports['create']=function(_0x12bbb6,_0x28f450){return db[_0x3cfe('0x2f')][_0x3cfe('0x4b')](_0x12bbb6[_0x3cfe('0x4c')],{})[_0x3cfe('0x25')](function(_0x29266f){var _0x43b622=_0x12bbb6[_0x3cfe('0x4d')][_0x3cfe('0x27')]({'plain':!![]});if(!_0x43b622)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x43b622[_0x3cfe('0x4e')]===_0x3cfe('0x4d')){var _0x44a0dc=_0x29266f[_0x3cfe('0x27')]({'plain':!![]});var _0x43c403=_0x3cfe('0x28');return db['UserProfileSection']['find']({'where':{'name':_0x43c403,'userProfileId':_0x43b622[_0x3cfe('0x4f')]},'raw':!![]})[_0x3cfe('0x25')](function(_0x2a74b3){if(_0x2a74b3&&_0x2a74b3[_0x3cfe('0x50')]===0x0){return db[_0x3cfe('0x51')]['create']({'name':_0x44a0dc[_0x3cfe('0x2b')],'resourceId':_0x44a0dc['id'],'type':_0x2a74b3[_0x3cfe('0x2b')],'sectionId':_0x2a74b3['id']},{})[_0x3cfe('0x25')](function(){return _0x29266f;});}else{return _0x29266f;}})['catch'](function(_0x1c4762){logger[_0x3cfe('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c4762);throw _0x1c4762;});}return _0x29266f;})[_0x3cfe('0x25')](respondWithResult(_0x28f450,0xc9))['catch'](handleError(_0x28f450,null));};exports['update']=function(_0x4d38ce,_0x5bb4dc){if(_0x4d38ce['body']['id']){delete _0x4d38ce[_0x3cfe('0x4c')]['id'];}return db[_0x3cfe('0x2f')][_0x3cfe('0x4a')]({'where':{'id':_0x4d38ce[_0x3cfe('0x47')]['id']}})[_0x3cfe('0x25')](handleEntityNotFound(_0x5bb4dc,null))[_0x3cfe('0x25')](saveUpdates(_0x4d38ce['body'],null))[_0x3cfe('0x25')](respondWithResult(_0x5bb4dc,null))['catch'](handleError(_0x5bb4dc,null));};exports[_0x3cfe('0x26')]=function(_0x33f8ae,_0x1094ef){return db['AnalyticExtractedReport'][_0x3cfe('0x4a')]({'where':{'id':_0x33f8ae[_0x3cfe('0x47')]['id']}})['then'](handleEntityNotFound(_0x1094ef,null))[_0x3cfe('0x25')](removeEntity(_0x1094ef,null))[_0x3cfe('0x45')](handleError(_0x1094ef,null));};exports[_0x3cfe('0x52')]=function(_0x41dc43,_0x5b2e4c,_0x29241d){return db[_0x3cfe('0x2f')][_0x3cfe('0x4a')]({'where':{'id':_0x41dc43[_0x3cfe('0x47')]['id']},'attributes':['name',_0x3cfe('0x53'),_0x3cfe('0x54'),_0x3cfe('0x55')],'raw':!![]})[_0x3cfe('0x25')](handleEntityNotFound(_0x5b2e4c,null))[_0x3cfe('0x25')](function(_0x2473cc){if(_0x2473cc){if(!fs[_0x3cfe('0x56')](path[_0x3cfe('0x57')](config[_0x3cfe('0x58')],_0x3cfe('0x59'),_0x2473cc[_0x3cfe('0x54')]))){throw new db[(_0x3cfe('0x5a'))]['ValidationError'](_0x3cfe('0x5b'));}if(_0x41dc43[_0x3cfe('0x33')]['exists']){return _0x5b2e4c[_0x3cfe('0x19')](0xc8);}return _0x5b2e4c[_0x3cfe('0x52')](path['join'](config[_0x3cfe('0x58')],'server/files/reports',_0x2473cc['savename']),util[_0x3cfe('0x5c')](_0x3cfe('0x5d'),_0x2473cc[_0x3cfe('0x53')]||_0x2473cc[_0x3cfe('0x2b')],_0x2473cc[_0x3cfe('0x55')][_0x3cfe('0x5e')]()));}})[_0x3cfe('0x45')](handleError(_0x5b2e4c,null));};