Built motion from commit 9d7072cc.|2.5.39
[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 _0x2d3b=['set','Content-Range','apply','reject','save','update','then','stack','name','index','map','JscriptySessionReport','rawAttributes','fieldName','type','key','query','keys','attributes','model','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','findAll','catch','show','params','intersection','options','find','create','body','destroy','describe','getQuestions','findOne','nolimit','SessionId','include','JscriptyQuestionReport','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x2d3b,0xc8));var _0xb2d3=function(_0xaa0309,_0x1c8008){_0xaa0309=_0xaa0309-0x0;var _0x5de7ce=_0x2d3b[_0xaa0309];return _0x5de7ce;};'use strict';var emlformat=require(_0xb2d3('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb2d3('0x1'));var rp=require(_0xb2d3('0x2'));var moment=require(_0xb2d3('0x3'));var BPromise=require(_0xb2d3('0x4'));var Mustache=require(_0xb2d3('0x5'));var util=require(_0xb2d3('0x6'));var path=require(_0xb2d3('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb2d3('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb2d3('0x9'));var crypto=require('crypto');var jsforce=require(_0xb2d3('0xa'));var deskjs=require(_0xb2d3('0xb'));var toCsv=require('to-csv');var querystring=require(_0xb2d3('0xc'));var Papa=require(_0xb2d3('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb2d3('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb2d3('0xf'));var logger=require(_0xb2d3('0x10'))('api');var utils=require('../../config/utils');var config=require(_0xb2d3('0x11'));var licenseUtil=require(_0xb2d3('0x12'));var db=require(_0xb2d3('0x13'))['db'];function respondWithStatusCode(_0x1ccbb2,_0x340bd7){_0x340bd7=_0x340bd7||0xcc;return function(_0x348e12){if(_0x348e12){return _0x1ccbb2[_0xb2d3('0x14')](_0x340bd7);}return _0x1ccbb2[_0xb2d3('0x15')](_0x340bd7)[_0xb2d3('0x16')]();};}function respondWithResult(_0x596d2a,_0x544643){_0x544643=_0x544643||0xc8;return function(_0x4aeab5){if(_0x4aeab5){return _0x596d2a[_0xb2d3('0x15')](_0x544643)[_0xb2d3('0x17')](_0x4aeab5);}};}function respondWithFilteredResult(_0x3c46da,_0x4db6b3){return function(_0x4988d7){if(_0x4988d7){var _0x2edb46=typeof _0x4db6b3[_0xb2d3('0x18')]==='undefined'&&typeof _0x4db6b3[_0xb2d3('0x19')]===_0xb2d3('0x1a');var _0x58945d=_0x4988d7[_0xb2d3('0x1b')];var _0x27d85d=_0x2edb46?0x0:_0x4db6b3['offset'];var _0x9da03=_0x2edb46?_0x4988d7['count']:_0x4db6b3['offset']+_0x4db6b3[_0xb2d3('0x19')];var _0x34505e;if(_0x9da03>=_0x58945d){_0x9da03=_0x58945d;_0x34505e=0xc8;}else{_0x34505e=0xce;}_0x3c46da[_0xb2d3('0x15')](_0x34505e);return _0x3c46da[_0xb2d3('0x1c')](_0xb2d3('0x1d'),_0x27d85d+'-'+_0x9da03+'/'+_0x58945d)[_0xb2d3('0x17')](_0x4988d7);}return null;};}function patchUpdates(_0x5de13c){return function(_0x12c1de){try{jsonpatch[_0xb2d3('0x1e')](_0x12c1de,_0x5de13c,!![]);}catch(_0x18422b){return BPromise[_0xb2d3('0x1f')](_0x18422b);}return _0x12c1de[_0xb2d3('0x20')]();};}function saveUpdates(_0x53e740,_0x5a0fb0){return function(_0x508b12){if(_0x508b12){return _0x508b12[_0xb2d3('0x21')](_0x53e740)['then'](function(_0x5dd83d){return _0x5dd83d;});}return null;};}function removeEntity(_0x1909e9,_0x18b370){return function(_0x5457dd){if(_0x5457dd){return _0x5457dd['destroy']()[_0xb2d3('0x22')](function(){_0x1909e9[_0xb2d3('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x247aad,_0x51b546){return function(_0x8316a3){if(!_0x8316a3){_0x247aad[_0xb2d3('0x14')](0x194);}return _0x8316a3;};}function handleError(_0x321ef0,_0x51f8f7){_0x51f8f7=_0x51f8f7||0x1f4;return function(_0xdfc1){logger['error'](_0xdfc1[_0xb2d3('0x23')]);if(_0xdfc1[_0xb2d3('0x24')]){delete _0xdfc1['name'];}_0x321ef0[_0xb2d3('0x15')](_0x51f8f7)['send'](_0xdfc1);};}exports[_0xb2d3('0x25')]=function(_0x4e9ad1,_0x3318cd){var _0x2e09a1={},_0x1e59ac={},_0xdfd1f2={'count':0x0,'rows':[]};var _0x2cd874=_[_0xb2d3('0x26')](db[_0xb2d3('0x27')][_0xb2d3('0x28')],function(_0x21e3b5){return{'name':_0x21e3b5[_0xb2d3('0x29')],'type':_0x21e3b5[_0xb2d3('0x2a')][_0xb2d3('0x2b')]};});_0x1e59ac['model']=_['map'](_0x2cd874,'name');_0x1e59ac[_0xb2d3('0x2c')]=_[_0xb2d3('0x2d')](_0x4e9ad1['query']);_0x1e59ac['filters']=_['intersection'](_0x1e59ac['model'],_0x1e59ac[_0xb2d3('0x2c')]);_0x2e09a1[_0xb2d3('0x2e')]=_['intersection'](_0x1e59ac[_0xb2d3('0x2f')],qs['fields'](_0x4e9ad1[_0xb2d3('0x2c')][_0xb2d3('0x30')]));_0x2e09a1['attributes']=_0x2e09a1[_0xb2d3('0x2e')][_0xb2d3('0x31')]?_0x2e09a1[_0xb2d3('0x2e')]:_0x1e59ac['model'];if(!_0x4e9ad1[_0xb2d3('0x2c')][_0xb2d3('0x32')]('nolimit')){_0x2e09a1[_0xb2d3('0x19')]=qs[_0xb2d3('0x19')](_0x4e9ad1['query']['limit']);_0x2e09a1['offset']=qs[_0xb2d3('0x18')](_0x4e9ad1[_0xb2d3('0x2c')]['offset']);}_0x2e09a1['order']=qs[_0xb2d3('0x33')](_0x4e9ad1[_0xb2d3('0x2c')]['sort']);_0x2e09a1[_0xb2d3('0x34')]=qs[_0xb2d3('0x35')](_[_0xb2d3('0x36')](_0x4e9ad1[_0xb2d3('0x2c')],_0x1e59ac['filters']),_0x2cd874);if(_0x4e9ad1[_0xb2d3('0x2c')][_0xb2d3('0x37')]){_0x2e09a1[_0xb2d3('0x34')]=_[_0xb2d3('0x38')](_0x2e09a1['where'],{'$or':_[_0xb2d3('0x26')](_0x2cd874,function(_0x5af5b3){if(_0x5af5b3[_0xb2d3('0x2a')]!==_0xb2d3('0x39')){var _0x1d3af9={};_0x1d3af9[_0x5af5b3['name']]={'$like':'%'+_0x4e9ad1[_0xb2d3('0x2c')][_0xb2d3('0x37')]+'%'};return _0x1d3af9;}})});}_0x2e09a1=_[_0xb2d3('0x38')]({},_0x2e09a1,_0x4e9ad1['options']);var _0x5f55bf={'where':_0x2e09a1[_0xb2d3('0x34')]};return db[_0xb2d3('0x27')][_0xb2d3('0x1b')](_0x5f55bf)[_0xb2d3('0x22')](function(_0x5c8559){_0xdfd1f2[_0xb2d3('0x1b')]=_0x5c8559;if(_0x4e9ad1[_0xb2d3('0x2c')][_0xb2d3('0x3a')]){_0x2e09a1['include']=[{'all':!![]}];}return db[_0xb2d3('0x27')][_0xb2d3('0x3b')](_0x2e09a1);})[_0xb2d3('0x22')](function(_0x2b2c13){_0xdfd1f2['rows']=_0x2b2c13;return _0xdfd1f2;})[_0xb2d3('0x22')](respondWithFilteredResult(_0x3318cd,_0x2e09a1))[_0xb2d3('0x3c')](handleError(_0x3318cd,null));};exports[_0xb2d3('0x3d')]=function(_0x4a366c,_0x566477){var _0x37086b={'raw':!![],'where':{'id':_0x4a366c[_0xb2d3('0x3e')]['id']}},_0x48f1f2={};_0x48f1f2['model']=_[_0xb2d3('0x2d')](db[_0xb2d3('0x27')][_0xb2d3('0x28')]);_0x48f1f2[_0xb2d3('0x2c')]=_[_0xb2d3('0x2d')](_0x4a366c[_0xb2d3('0x2c')]);_0x48f1f2[_0xb2d3('0x35')]=_[_0xb2d3('0x3f')](_0x48f1f2[_0xb2d3('0x2f')],_0x48f1f2['query']);_0x37086b[_0xb2d3('0x2e')]=_[_0xb2d3('0x3f')](_0x48f1f2[_0xb2d3('0x2f')],qs[_0xb2d3('0x30')](_0x4a366c[_0xb2d3('0x2c')][_0xb2d3('0x30')]));_0x37086b[_0xb2d3('0x2e')]=_0x37086b[_0xb2d3('0x2e')][_0xb2d3('0x31')]?_0x37086b[_0xb2d3('0x2e')]:_0x48f1f2[_0xb2d3('0x2f')];if(_0x4a366c['query'][_0xb2d3('0x3a')]){_0x37086b['include']=[{'all':!![]}];}_0x37086b=_[_0xb2d3('0x38')]({},_0x37086b,_0x4a366c[_0xb2d3('0x40')]);return db['JscriptySessionReport'][_0xb2d3('0x41')](_0x37086b)[_0xb2d3('0x22')](handleEntityNotFound(_0x566477,null))[_0xb2d3('0x22')](respondWithResult(_0x566477,null))[_0xb2d3('0x3c')](handleError(_0x566477,null));};exports[_0xb2d3('0x42')]=function(_0x585283,_0x542bc3){return db[_0xb2d3('0x27')]['create'](_0x585283[_0xb2d3('0x43')],{})[_0xb2d3('0x22')](respondWithResult(_0x542bc3,0xc9))[_0xb2d3('0x3c')](handleError(_0x542bc3,null));};exports[_0xb2d3('0x21')]=function(_0x1e0b3b,_0x1dd0ca){if(_0x1e0b3b[_0xb2d3('0x43')]['id']){delete _0x1e0b3b[_0xb2d3('0x43')]['id'];}return db[_0xb2d3('0x27')][_0xb2d3('0x41')]({'where':{'id':_0x1e0b3b[_0xb2d3('0x3e')]['id']}})['then'](handleEntityNotFound(_0x1dd0ca,null))[_0xb2d3('0x22')](saveUpdates(_0x1e0b3b[_0xb2d3('0x43')],null))[_0xb2d3('0x22')](respondWithResult(_0x1dd0ca,null))['catch'](handleError(_0x1dd0ca,null));};exports[_0xb2d3('0x44')]=function(_0x4f1e0c,_0x333b76){return db[_0xb2d3('0x27')][_0xb2d3('0x41')]({'where':{'id':_0x4f1e0c[_0xb2d3('0x3e')]['id']}})[_0xb2d3('0x22')](handleEntityNotFound(_0x333b76,null))['then'](removeEntity(_0x333b76,null))[_0xb2d3('0x3c')](handleError(_0x333b76,null));};exports[_0xb2d3('0x45')]=function(_0x27b0a4,_0xf72597){return db[_0xb2d3('0x27')]['describe']()[_0xb2d3('0x22')](respondWithResult(_0xf72597,null))[_0xb2d3('0x3c')](handleError(_0xf72597,null));};exports[_0xb2d3('0x46')]=function(_0x3e45f1,_0x430baf,_0x10130a){var _0x25528c={'raw':!![],'where':{}};var _0x26767a={};var _0x1e94bb={'count':0x0,'rows':[]};return db[_0xb2d3('0x27')][_0xb2d3('0x47')]({'where':{'id':_0x3e45f1['params']['id']}})['then'](handleEntityNotFound(_0x430baf,null))[_0xb2d3('0x22')](function(_0xacd7ec){if(_0xacd7ec){_0x26767a[_0xb2d3('0x2f')]=_['keys'](db['JscriptyQuestionReport'][_0xb2d3('0x28')]);_0x26767a[_0xb2d3('0x2c')]=_[_0xb2d3('0x2d')](_0x3e45f1[_0xb2d3('0x2c')]);_0x26767a['filters']=_[_0xb2d3('0x3f')](_0x26767a[_0xb2d3('0x2f')],_0x26767a[_0xb2d3('0x2c')]);_0x25528c[_0xb2d3('0x2e')]=_[_0xb2d3('0x3f')](_0x26767a[_0xb2d3('0x2f')],qs[_0xb2d3('0x30')](_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x30')]));_0x25528c[_0xb2d3('0x2e')]=_0x25528c[_0xb2d3('0x2e')]['length']?_0x25528c['attributes']:_0x26767a[_0xb2d3('0x2f')];if(!_0x3e45f1[_0xb2d3('0x2c')]['hasOwnProperty'](_0xb2d3('0x48'))){_0x25528c[_0xb2d3('0x19')]=qs[_0xb2d3('0x19')](_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x19')]);_0x25528c[_0xb2d3('0x18')]=qs[_0xb2d3('0x18')](_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x18')]);}_0x25528c['order']=qs[_0xb2d3('0x33')](_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x33')]);_0x25528c[_0xb2d3('0x34')]=qs[_0xb2d3('0x35')](_['pick'](_0x3e45f1['query'],_0x26767a[_0xb2d3('0x35')]));_0x25528c[_0xb2d3('0x34')][_0xb2d3('0x49')]=_0xacd7ec['id'];if(_0x3e45f1['query']['filter']){_0x25528c[_0xb2d3('0x34')]=_[_0xb2d3('0x38')](_0x25528c[_0xb2d3('0x34')],{'$or':_[_0xb2d3('0x26')](_0x25528c['attributes'],function(_0x2a19c2){var _0xb562df={};_0xb562df[_0x2a19c2]={'$like':'%'+_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x37')]+'%'};return _0xb562df;})});}_0x25528c=_['merge']({},_0x25528c,_0x3e45f1['options']);return db['JscriptyQuestionReport'][_0xb2d3('0x1b')]({'where':_0x25528c[_0xb2d3('0x34')]})[_0xb2d3('0x22')](function(_0x12fd2f){_0x1e94bb[_0xb2d3('0x1b')]=_0x12fd2f;if(_0x3e45f1[_0xb2d3('0x2c')][_0xb2d3('0x3a')]){_0x25528c[_0xb2d3('0x4a')]=[{'all':!![]}];}return db[_0xb2d3('0x4b')][_0xb2d3('0x3b')](_0x25528c);})[_0xb2d3('0x22')](function(_0x3729eb){_0x1e94bb['rows']=_0x3729eb;return _0x1e94bb;});}})[_0xb2d3('0x22')](respondWithFilteredResult(_0x430baf,_0x25528c))[_0xb2d3('0x3c')](handleError(_0x430baf,null));};