d205ab7273ab47b5134eb349fb3def31a567e0b5
[motion2.git] / server / api / jscriptySessionReport / jscriptySessionReport.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 _0x4004=['body','update','params','destroy','find','describe','getQuestions','JscriptyQuestionReport','SessionId','findAll','zip-dir','request-promise','moment','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','offset','count','apply','save','then','stack','name','send','map','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','include','create'];(function(_0x4a27eb,_0x3bb58f){var _0x515047=function(_0x3c82f4){while(--_0x3c82f4){_0x4a27eb['push'](_0x4a27eb['shift']());}};_0x515047(++_0x3bb58f);}(_0x4004,0x1ba));var _0x4400=function(_0x43b1fb,_0x22e01e){_0x43b1fb=_0x43b1fb-0x0;var _0x2eb5bc=_0x4004[_0x43b1fb];return _0x2eb5bc;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4400('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4400('0x1'));var moment=require(_0x4400('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x4400('0x3'));var sox=require('sox');var csv=require(_0x4400('0x4'));var ejs=require(_0x4400('0x5'));var fs=require('fs');var fs_extra=require(_0x4400('0x6'));var _=require(_0x4400('0x7'));var squel=require(_0x4400('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x4400('0x9'));var toCsv=require('to-csv');var querystring=require(_0x4400('0xa'));var Papa=require(_0x4400('0xb'));var Redis=require(_0x4400('0xc'));var authService=require(_0x4400('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x4400('0xe'));var hardwareService=require(_0x4400('0xf'));var logger=require('../../config/logger')(_0x4400('0x10'));var utils=require(_0x4400('0x11'));var config=require(_0x4400('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x27900a,_0x475dac){_0x475dac=_0x475dac||0xcc;return function(_0xdcba46){if(_0xdcba46){return _0x27900a[_0x4400('0x13')](_0x475dac);}return _0x27900a[_0x4400('0x14')](_0x475dac)[_0x4400('0x15')]();};}function respondWithResult(_0xc77b4d,_0x2190fa){_0x2190fa=_0x2190fa||0xc8;return function(_0x4463a6){if(_0x4463a6){return _0xc77b4d[_0x4400('0x14')](_0x2190fa)[_0x4400('0x16')](_0x4463a6);}};}function respondWithFilteredResult(_0x46a150,_0x14ffee){return function(_0x5a622e){if(_0x5a622e){var _0x591254=typeof _0x14ffee['offset']===_0x4400('0x17')&&typeof _0x14ffee[_0x4400('0x18')]===_0x4400('0x17');var _0x9909b2=_0x5a622e['count'];var _0x3e9cf5=_0x591254?0x0:_0x14ffee[_0x4400('0x19')];var _0x4fbd62=_0x591254?_0x5a622e[_0x4400('0x1a')]:_0x14ffee[_0x4400('0x19')]+_0x14ffee[_0x4400('0x18')];var _0x527fda;if(_0x4fbd62>=_0x9909b2){_0x4fbd62=_0x9909b2;_0x527fda=0xc8;}else{_0x527fda=0xce;}_0x46a150[_0x4400('0x14')](_0x527fda);return _0x46a150['set']('Content-Range',_0x3e9cf5+'-'+_0x4fbd62+'/'+_0x9909b2)[_0x4400('0x16')](_0x5a622e);}return null;};}function patchUpdates(_0x2e9602){return function(_0x1c96b8){try{jsonpatch[_0x4400('0x1b')](_0x1c96b8,_0x2e9602,!![]);}catch(_0x458dd2){return BPromise['reject'](_0x458dd2);}return _0x1c96b8[_0x4400('0x1c')]();};}function saveUpdates(_0xb6c2e9,_0x1aec66){return function(_0x83fcb4){if(_0x83fcb4){return _0x83fcb4['update'](_0xb6c2e9)[_0x4400('0x1d')](function(_0x1a0c6f){return _0x1a0c6f;});}return null;};}function removeEntity(_0x53702b,_0x4ba599){return function(_0x140b1e){if(_0x140b1e){return _0x140b1e['destroy']()['then'](function(){_0x53702b['status'](0xcc)[_0x4400('0x15')]();});}};}function handleEntityNotFound(_0x250819,_0x460395){return function(_0x3b84b7){if(!_0x3b84b7){_0x250819[_0x4400('0x13')](0x194);}return _0x3b84b7;};}function handleError(_0xbf4f46,_0x59121b){_0x59121b=_0x59121b||0x1f4;return function(_0xe1075){logger['error'](_0xe1075[_0x4400('0x1e')]);if(_0xe1075[_0x4400('0x1f')]){delete _0xe1075['name'];}_0xbf4f46[_0x4400('0x14')](_0x59121b)[_0x4400('0x20')](_0xe1075);};}exports['index']=function(_0x2b6fff,_0x168aaf){var _0x15142c={},_0x25cf9a={},_0x9ddf84={'count':0x0,'rows':[]};var _0x34c4e9=_[_0x4400('0x21')](db[_0x4400('0x22')][_0x4400('0x23')],function(_0x4821a5){return{'name':_0x4821a5[_0x4400('0x24')],'type':_0x4821a5[_0x4400('0x25')][_0x4400('0x26')]};});_0x25cf9a[_0x4400('0x27')]=_[_0x4400('0x21')](_0x34c4e9,_0x4400('0x1f'));_0x25cf9a[_0x4400('0x28')]=_[_0x4400('0x29')](_0x2b6fff[_0x4400('0x28')]);_0x25cf9a[_0x4400('0x2a')]=_[_0x4400('0x2b')](_0x25cf9a[_0x4400('0x27')],_0x25cf9a[_0x4400('0x28')]);_0x15142c[_0x4400('0x2c')]=_['intersection'](_0x25cf9a[_0x4400('0x27')],qs[_0x4400('0x2d')](_0x2b6fff[_0x4400('0x28')][_0x4400('0x2d')]));_0x15142c[_0x4400('0x2c')]=_0x15142c[_0x4400('0x2c')][_0x4400('0x2e')]?_0x15142c[_0x4400('0x2c')]:_0x25cf9a[_0x4400('0x27')];if(!_0x2b6fff[_0x4400('0x28')][_0x4400('0x2f')](_0x4400('0x30'))){_0x15142c[_0x4400('0x18')]=qs[_0x4400('0x18')](_0x2b6fff[_0x4400('0x28')][_0x4400('0x18')]);_0x15142c[_0x4400('0x19')]=qs[_0x4400('0x19')](_0x2b6fff[_0x4400('0x28')]['offset']);}_0x15142c[_0x4400('0x31')]=qs['sort'](_0x2b6fff[_0x4400('0x28')][_0x4400('0x32')]);_0x15142c[_0x4400('0x33')]=qs[_0x4400('0x2a')](_[_0x4400('0x34')](_0x2b6fff['query'],_0x25cf9a[_0x4400('0x2a')]),_0x34c4e9);if(_0x2b6fff[_0x4400('0x28')][_0x4400('0x35')]){_0x15142c[_0x4400('0x33')]=_[_0x4400('0x36')](_0x15142c[_0x4400('0x33')],{'$or':_[_0x4400('0x21')](_0x34c4e9,function(_0x43fdf6){if(_0x43fdf6[_0x4400('0x25')]!==_0x4400('0x37')){var _0x2ff8ae={};_0x2ff8ae[_0x43fdf6[_0x4400('0x1f')]]={'$like':'%'+_0x2b6fff[_0x4400('0x28')][_0x4400('0x35')]+'%'};return _0x2ff8ae;}})});}_0x15142c=_[_0x4400('0x36')]({},_0x15142c,_0x2b6fff[_0x4400('0x38')]);var _0x375b50={'where':_0x15142c[_0x4400('0x33')]};return db[_0x4400('0x22')]['count'](_0x375b50)[_0x4400('0x1d')](function(_0x23a6b7){_0x9ddf84['count']=_0x23a6b7;if(_0x2b6fff[_0x4400('0x28')][_0x4400('0x39')]){_0x15142c['include']=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x15142c);})[_0x4400('0x1d')](function(_0x5b5e17){_0x9ddf84[_0x4400('0x3a')]=_0x5b5e17;return _0x9ddf84;})[_0x4400('0x1d')](respondWithFilteredResult(_0x168aaf,_0x15142c))[_0x4400('0x3b')](handleError(_0x168aaf,null));};exports['show']=function(_0x291f38,_0x327bc9){var _0x219837={'raw':!![],'where':{'id':_0x291f38['params']['id']}},_0x2e01b2={};_0x2e01b2[_0x4400('0x27')]=_['keys'](db[_0x4400('0x22')][_0x4400('0x23')]);_0x2e01b2[_0x4400('0x28')]=_['keys'](_0x291f38[_0x4400('0x28')]);_0x2e01b2['filters']=_[_0x4400('0x2b')](_0x2e01b2[_0x4400('0x27')],_0x2e01b2[_0x4400('0x28')]);_0x219837[_0x4400('0x2c')]=_['intersection'](_0x2e01b2[_0x4400('0x27')],qs[_0x4400('0x2d')](_0x291f38[_0x4400('0x28')][_0x4400('0x2d')]));_0x219837[_0x4400('0x2c')]=_0x219837[_0x4400('0x2c')][_0x4400('0x2e')]?_0x219837[_0x4400('0x2c')]:_0x2e01b2[_0x4400('0x27')];if(_0x291f38[_0x4400('0x28')][_0x4400('0x39')]){_0x219837[_0x4400('0x3c')]=[{'all':!![]}];}_0x219837=_['merge']({},_0x219837,_0x291f38[_0x4400('0x38')]);return db[_0x4400('0x22')]['find'](_0x219837)[_0x4400('0x1d')](handleEntityNotFound(_0x327bc9,null))['then'](respondWithResult(_0x327bc9,null))[_0x4400('0x3b')](handleError(_0x327bc9,null));};exports[_0x4400('0x3d')]=function(_0x31f17c,_0x5980b0){return db[_0x4400('0x22')][_0x4400('0x3d')](_0x31f17c[_0x4400('0x3e')],{})[_0x4400('0x1d')](respondWithResult(_0x5980b0,0xc9))[_0x4400('0x3b')](handleError(_0x5980b0,null));};exports[_0x4400('0x3f')]=function(_0x2324cd,_0x53d46a){if(_0x2324cd[_0x4400('0x3e')]['id']){delete _0x2324cd[_0x4400('0x3e')]['id'];}return db[_0x4400('0x22')]['find']({'where':{'id':_0x2324cd[_0x4400('0x40')]['id']}})[_0x4400('0x1d')](handleEntityNotFound(_0x53d46a,null))[_0x4400('0x1d')](saveUpdates(_0x2324cd['body'],null))[_0x4400('0x1d')](respondWithResult(_0x53d46a,null))[_0x4400('0x3b')](handleError(_0x53d46a,null));};exports[_0x4400('0x41')]=function(_0x2c9fcc,_0x376ad8){return db[_0x4400('0x22')][_0x4400('0x42')]({'where':{'id':_0x2c9fcc['params']['id']}})['then'](handleEntityNotFound(_0x376ad8,null))['then'](removeEntity(_0x376ad8,null))['catch'](handleError(_0x376ad8,null));};exports[_0x4400('0x43')]=function(_0x577fec,_0xaf0b35){return db[_0x4400('0x22')][_0x4400('0x43')]()[_0x4400('0x1d')](respondWithResult(_0xaf0b35,null))[_0x4400('0x3b')](handleError(_0xaf0b35,null));};exports[_0x4400('0x44')]=function(_0x2143e7,_0x41f10b,_0x4836cd){var _0xa13b8={'raw':!![],'where':{}};var _0xe196={};var _0x56e57d={'count':0x0,'rows':[]};return db[_0x4400('0x22')]['findOne']({'where':{'id':_0x2143e7[_0x4400('0x40')]['id']}})[_0x4400('0x1d')](handleEntityNotFound(_0x41f10b,null))[_0x4400('0x1d')](function(_0x4618ef){if(_0x4618ef){_0xe196[_0x4400('0x27')]=_[_0x4400('0x29')](db[_0x4400('0x45')]['rawAttributes']);_0xe196[_0x4400('0x28')]=_[_0x4400('0x29')](_0x2143e7[_0x4400('0x28')]);_0xe196['filters']=_[_0x4400('0x2b')](_0xe196[_0x4400('0x27')],_0xe196['query']);_0xa13b8['attributes']=_[_0x4400('0x2b')](_0xe196[_0x4400('0x27')],qs[_0x4400('0x2d')](_0x2143e7['query'][_0x4400('0x2d')]));_0xa13b8[_0x4400('0x2c')]=_0xa13b8['attributes'][_0x4400('0x2e')]?_0xa13b8[_0x4400('0x2c')]:_0xe196[_0x4400('0x27')];if(!_0x2143e7[_0x4400('0x28')][_0x4400('0x2f')](_0x4400('0x30'))){_0xa13b8['limit']=qs[_0x4400('0x18')](_0x2143e7['query'][_0x4400('0x18')]);_0xa13b8[_0x4400('0x19')]=qs[_0x4400('0x19')](_0x2143e7[_0x4400('0x28')]['offset']);}_0xa13b8[_0x4400('0x31')]=qs[_0x4400('0x32')](_0x2143e7[_0x4400('0x28')][_0x4400('0x32')]);_0xa13b8['where']=qs['filters'](_[_0x4400('0x34')](_0x2143e7[_0x4400('0x28')],_0xe196['filters']));_0xa13b8[_0x4400('0x33')][_0x4400('0x46')]=_0x4618ef['id'];if(_0x2143e7[_0x4400('0x28')][_0x4400('0x35')]){_0xa13b8[_0x4400('0x33')]=_['merge'](_0xa13b8['where'],{'$or':_[_0x4400('0x21')](_0xa13b8[_0x4400('0x2c')],function(_0x72e175){var _0x531f6b={};_0x531f6b[_0x72e175]={'$like':'%'+_0x2143e7[_0x4400('0x28')][_0x4400('0x35')]+'%'};return _0x531f6b;})});}_0xa13b8=_[_0x4400('0x36')]({},_0xa13b8,_0x2143e7['options']);return db[_0x4400('0x45')][_0x4400('0x1a')]({'where':_0xa13b8[_0x4400('0x33')]})[_0x4400('0x1d')](function(_0x218184){_0x56e57d[_0x4400('0x1a')]=_0x218184;if(_0x2143e7[_0x4400('0x28')]['includeAll']){_0xa13b8[_0x4400('0x3c')]=[{'all':!![]}];}return db[_0x4400('0x45')][_0x4400('0x47')](_0xa13b8);})['then'](function(_0x147250){_0x56e57d[_0x4400('0x3a')]=_0x147250;return _0x56e57d;});}})[_0x4400('0x1d')](respondWithFilteredResult(_0x41f10b,_0xa13b8))[_0x4400('0x3b')](handleError(_0x41f10b,null));};