6474365097be09bc8c53c11bd61f8995514cbfc0
[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 _0xa633=['map','JscriptySessionReport','rawAttributes','fieldName','type','key','name','query','keys','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show','params','options','find','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','hasOwnProperty','pick','eml-format','rimraf','zip-dir','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','status','offset','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','end','sendStatus','stack','send','index'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xa633,0x10d));var _0x3a63=function(_0xa8dc05,_0x329d79){_0xa8dc05=_0xa8dc05-0x0;var _0x47de80=_0xa633[_0xa8dc05];return _0x47de80;};'use strict';var emlformat=require(_0x3a63('0x0'));var rimraf=require(_0x3a63('0x1'));var zipdir=require(_0x3a63('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3a63('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x3a63('0x4'));var sox=require(_0x3a63('0x5'));var csv=require(_0x3a63('0x6'));var ejs=require(_0x3a63('0x7'));var fs=require('fs');var fs_extra=require(_0x3a63('0x8'));var _=require(_0x3a63('0x9'));var squel=require(_0x3a63('0xa'));var crypto=require(_0x3a63('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x3a63('0xc'));var toCsv=require(_0x3a63('0x6'));var querystring=require(_0x3a63('0xd'));var Papa=require(_0x3a63('0xe'));var Redis=require(_0x3a63('0xf'));var authService=require(_0x3a63('0x10'));var qs=require(_0x3a63('0x11'));var as=require(_0x3a63('0x12'));var hardwareService=require(_0x3a63('0x13'));var logger=require(_0x3a63('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3a63('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x15c0a9,_0x4afa49){_0x4afa49=_0x4afa49||0xcc;return function(_0x4720c5){if(_0x4720c5){return _0x15c0a9['sendStatus'](_0x4afa49);}return _0x15c0a9[_0x3a63('0x16')](_0x4afa49)['end']();};}function respondWithResult(_0x44e7be,_0x2ad8f5){_0x2ad8f5=_0x2ad8f5||0xc8;return function(_0x3df74c){if(_0x3df74c){return _0x44e7be[_0x3a63('0x16')](_0x2ad8f5)['json'](_0x3df74c);}};}function respondWithFilteredResult(_0x5dac88,_0x22bbee){return function(_0x5c90e3){if(_0x5c90e3){var _0x3c6cbd=typeof _0x22bbee[_0x3a63('0x17')]==='undefined'&&typeof _0x22bbee[_0x3a63('0x18')]==='undefined';var _0x78cac4=_0x5c90e3[_0x3a63('0x19')];var _0x3eae6b=_0x3c6cbd?0x0:_0x22bbee[_0x3a63('0x17')];var _0x1dcacc=_0x3c6cbd?_0x5c90e3['count']:_0x22bbee['offset']+_0x22bbee['limit'];var _0x220a9e;if(_0x1dcacc>=_0x78cac4){_0x1dcacc=_0x78cac4;_0x220a9e=0xc8;}else{_0x220a9e=0xce;}_0x5dac88[_0x3a63('0x16')](_0x220a9e);return _0x5dac88['set'](_0x3a63('0x1a'),_0x3eae6b+'-'+_0x1dcacc+'/'+_0x78cac4)[_0x3a63('0x1b')](_0x5c90e3);}return null;};}function patchUpdates(_0x367c69){return function(_0x1d53c6){try{jsonpatch[_0x3a63('0x1c')](_0x1d53c6,_0x367c69,!![]);}catch(_0x16a4b7){return BPromise[_0x3a63('0x1d')](_0x16a4b7);}return _0x1d53c6[_0x3a63('0x1e')]();};}function saveUpdates(_0x10940c,_0x2bdaea){return function(_0x186669){if(_0x186669){return _0x186669[_0x3a63('0x1f')](_0x10940c)[_0x3a63('0x20')](function(_0x57d879){return _0x57d879;});}return null;};}function removeEntity(_0x57aa41,_0x5d7bc4){return function(_0x484060){if(_0x484060){return _0x484060[_0x3a63('0x21')]()[_0x3a63('0x20')](function(){_0x57aa41['status'](0xcc)[_0x3a63('0x22')]();});}};}function handleEntityNotFound(_0x5cd8d5,_0x57373a){return function(_0x332df4){if(!_0x332df4){_0x5cd8d5[_0x3a63('0x23')](0x194);}return _0x332df4;};}function handleError(_0x2cf89a,_0x2cdb1c){_0x2cdb1c=_0x2cdb1c||0x1f4;return function(_0x264cf1){logger['error'](_0x264cf1[_0x3a63('0x24')]);if(_0x264cf1['name']){delete _0x264cf1['name'];}_0x2cf89a['status'](_0x2cdb1c)[_0x3a63('0x25')](_0x264cf1);};}exports[_0x3a63('0x26')]=function(_0x165b24,_0x562d93){var _0x2b49d3={},_0x135cf1={},_0x539d7f={'count':0x0,'rows':[]};var _0x14a36b=_[_0x3a63('0x27')](db[_0x3a63('0x28')][_0x3a63('0x29')],function(_0x28e7a7){return{'name':_0x28e7a7[_0x3a63('0x2a')],'type':_0x28e7a7[_0x3a63('0x2b')][_0x3a63('0x2c')]};});_0x135cf1['model']=_[_0x3a63('0x27')](_0x14a36b,_0x3a63('0x2d'));_0x135cf1[_0x3a63('0x2e')]=_[_0x3a63('0x2f')](_0x165b24['query']);_0x135cf1[_0x3a63('0x30')]=_[_0x3a63('0x31')](_0x135cf1['model'],_0x135cf1['query']);_0x2b49d3[_0x3a63('0x32')]=_[_0x3a63('0x31')](_0x135cf1[_0x3a63('0x33')],qs[_0x3a63('0x34')](_0x165b24[_0x3a63('0x2e')][_0x3a63('0x34')]));_0x2b49d3[_0x3a63('0x32')]=_0x2b49d3[_0x3a63('0x32')][_0x3a63('0x35')]?_0x2b49d3['attributes']:_0x135cf1[_0x3a63('0x33')];if(!_0x165b24['query']['hasOwnProperty'](_0x3a63('0x36'))){_0x2b49d3[_0x3a63('0x18')]=qs[_0x3a63('0x18')](_0x165b24['query'][_0x3a63('0x18')]);_0x2b49d3[_0x3a63('0x17')]=qs[_0x3a63('0x17')](_0x165b24[_0x3a63('0x2e')][_0x3a63('0x17')]);}_0x2b49d3[_0x3a63('0x37')]=qs[_0x3a63('0x38')](_0x165b24[_0x3a63('0x2e')][_0x3a63('0x38')]);_0x2b49d3[_0x3a63('0x39')]=qs[_0x3a63('0x30')](_['pick'](_0x165b24[_0x3a63('0x2e')],_0x135cf1[_0x3a63('0x30')]),_0x14a36b);if(_0x165b24[_0x3a63('0x2e')][_0x3a63('0x3a')]){_0x2b49d3[_0x3a63('0x39')]=_[_0x3a63('0x3b')](_0x2b49d3[_0x3a63('0x39')],{'$or':_[_0x3a63('0x27')](_0x14a36b,function(_0xc4ebea){if(_0xc4ebea[_0x3a63('0x2b')]!==_0x3a63('0x3c')){var _0x195668={};_0x195668[_0xc4ebea[_0x3a63('0x2d')]]={'$like':'%'+_0x165b24[_0x3a63('0x2e')]['filter']+'%'};return _0x195668;}})});}_0x2b49d3=_['merge']({},_0x2b49d3,_0x165b24['options']);var _0x35c05f={'where':_0x2b49d3[_0x3a63('0x39')]};return db['JscriptySessionReport'][_0x3a63('0x19')](_0x35c05f)[_0x3a63('0x20')](function(_0x558276){_0x539d7f[_0x3a63('0x19')]=_0x558276;if(_0x165b24[_0x3a63('0x2e')][_0x3a63('0x3d')]){_0x2b49d3[_0x3a63('0x3e')]=[{'all':!![]}];}return db[_0x3a63('0x28')][_0x3a63('0x3f')](_0x2b49d3);})[_0x3a63('0x20')](function(_0x4a9044){_0x539d7f['rows']=_0x4a9044;return _0x539d7f;})[_0x3a63('0x20')](respondWithFilteredResult(_0x562d93,_0x2b49d3))[_0x3a63('0x40')](handleError(_0x562d93,null));};exports[_0x3a63('0x41')]=function(_0x2a5ffb,_0x1e7d7c){var _0x165919={'raw':!![],'where':{'id':_0x2a5ffb[_0x3a63('0x42')]['id']}},_0x574a43={};_0x574a43['model']=_[_0x3a63('0x2f')](db['JscriptySessionReport']['rawAttributes']);_0x574a43[_0x3a63('0x2e')]=_[_0x3a63('0x2f')](_0x2a5ffb[_0x3a63('0x2e')]);_0x574a43['filters']=_[_0x3a63('0x31')](_0x574a43[_0x3a63('0x33')],_0x574a43['query']);_0x165919[_0x3a63('0x32')]=_[_0x3a63('0x31')](_0x574a43[_0x3a63('0x33')],qs[_0x3a63('0x34')](_0x2a5ffb[_0x3a63('0x2e')]['fields']));_0x165919['attributes']=_0x165919[_0x3a63('0x32')][_0x3a63('0x35')]?_0x165919[_0x3a63('0x32')]:_0x574a43[_0x3a63('0x33')];if(_0x2a5ffb['query'][_0x3a63('0x3d')]){_0x165919[_0x3a63('0x3e')]=[{'all':!![]}];}_0x165919=_['merge']({},_0x165919,_0x2a5ffb[_0x3a63('0x43')]);return db[_0x3a63('0x28')][_0x3a63('0x44')](_0x165919)['then'](handleEntityNotFound(_0x1e7d7c,null))[_0x3a63('0x20')](respondWithResult(_0x1e7d7c,null))[_0x3a63('0x40')](handleError(_0x1e7d7c,null));};exports[_0x3a63('0x45')]=function(_0x4d7cc6,_0x4c9489){return db[_0x3a63('0x28')]['create'](_0x4d7cc6['body'],{})[_0x3a63('0x20')](respondWithResult(_0x4c9489,0xc9))[_0x3a63('0x40')](handleError(_0x4c9489,null));};exports[_0x3a63('0x1f')]=function(_0x9bdcc7,_0x221ed9){if(_0x9bdcc7[_0x3a63('0x46')]['id']){delete _0x9bdcc7[_0x3a63('0x46')]['id'];}return db[_0x3a63('0x28')][_0x3a63('0x44')]({'where':{'id':_0x9bdcc7['params']['id']}})[_0x3a63('0x20')](handleEntityNotFound(_0x221ed9,null))[_0x3a63('0x20')](saveUpdates(_0x9bdcc7[_0x3a63('0x46')],null))[_0x3a63('0x20')](respondWithResult(_0x221ed9,null))[_0x3a63('0x40')](handleError(_0x221ed9,null));};exports['destroy']=function(_0x543c2c,_0x2c02cd){return db[_0x3a63('0x28')][_0x3a63('0x44')]({'where':{'id':_0x543c2c[_0x3a63('0x42')]['id']}})['then'](handleEntityNotFound(_0x2c02cd,null))[_0x3a63('0x20')](removeEntity(_0x2c02cd,null))[_0x3a63('0x40')](handleError(_0x2c02cd,null));};exports[_0x3a63('0x47')]=function(_0x8be2a1,_0x288ab8){return db['JscriptySessionReport'][_0x3a63('0x47')]()[_0x3a63('0x20')](respondWithResult(_0x288ab8,null))[_0x3a63('0x40')](handleError(_0x288ab8,null));};exports[_0x3a63('0x48')]=function(_0x271405,_0x3df531,_0x1ac7eb){var _0x1f8c94={'raw':!![],'where':{}};var _0x154a86={};var _0x2ff8aa={'count':0x0,'rows':[]};return db[_0x3a63('0x28')][_0x3a63('0x49')]({'where':{'id':_0x271405[_0x3a63('0x42')]['id']}})[_0x3a63('0x20')](handleEntityNotFound(_0x3df531,null))[_0x3a63('0x20')](function(_0x34dba5){if(_0x34dba5){_0x154a86[_0x3a63('0x33')]=_['keys'](db[_0x3a63('0x4a')][_0x3a63('0x29')]);_0x154a86[_0x3a63('0x2e')]=_['keys'](_0x271405['query']);_0x154a86['filters']=_[_0x3a63('0x31')](_0x154a86[_0x3a63('0x33')],_0x154a86['query']);_0x1f8c94['attributes']=_[_0x3a63('0x31')](_0x154a86[_0x3a63('0x33')],qs[_0x3a63('0x34')](_0x271405[_0x3a63('0x2e')]['fields']));_0x1f8c94[_0x3a63('0x32')]=_0x1f8c94[_0x3a63('0x32')][_0x3a63('0x35')]?_0x1f8c94[_0x3a63('0x32')]:_0x154a86[_0x3a63('0x33')];if(!_0x271405[_0x3a63('0x2e')][_0x3a63('0x4b')](_0x3a63('0x36'))){_0x1f8c94['limit']=qs[_0x3a63('0x18')](_0x271405[_0x3a63('0x2e')]['limit']);_0x1f8c94[_0x3a63('0x17')]=qs[_0x3a63('0x17')](_0x271405['query'][_0x3a63('0x17')]);}_0x1f8c94[_0x3a63('0x37')]=qs[_0x3a63('0x38')](_0x271405[_0x3a63('0x2e')][_0x3a63('0x38')]);_0x1f8c94[_0x3a63('0x39')]=qs[_0x3a63('0x30')](_[_0x3a63('0x4c')](_0x271405[_0x3a63('0x2e')],_0x154a86[_0x3a63('0x30')]));_0x1f8c94[_0x3a63('0x39')]['SessionId']=_0x34dba5['id'];if(_0x271405['query'][_0x3a63('0x3a')]){_0x1f8c94['where']=_[_0x3a63('0x3b')](_0x1f8c94[_0x3a63('0x39')],{'$or':_['map'](_0x1f8c94[_0x3a63('0x32')],function(_0x55a8a1){var _0x51978a={};_0x51978a[_0x55a8a1]={'$like':'%'+_0x271405['query']['filter']+'%'};return _0x51978a;})});}_0x1f8c94=_[_0x3a63('0x3b')]({},_0x1f8c94,_0x271405[_0x3a63('0x43')]);return db['JscriptyQuestionReport']['count']({'where':_0x1f8c94[_0x3a63('0x39')]})[_0x3a63('0x20')](function(_0x5d2347){_0x2ff8aa['count']=_0x5d2347;if(_0x271405[_0x3a63('0x2e')][_0x3a63('0x3d')]){_0x1f8c94[_0x3a63('0x3e')]=[{'all':!![]}];}return db['JscriptyQuestionReport']['findAll'](_0x1f8c94);})['then'](function(_0x39428f){_0x2ff8aa['rows']=_0x39428f;return _0x2ff8aa;});}})[_0x3a63('0x20')](respondWithFilteredResult(_0x3df531,_0x1f8c94))[_0x3a63('0x40')](handleError(_0x3df531,null));};