164ac7964fe8bb6e27713525f0cc82e849657a8a
[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 _0x0682=['VIRTUAL','JscriptySessionReport','includeAll','include','findAll','rows','catch','show','params','keys','options','find','create','body','destroy','describe','getQuestions','findOne','JscriptyQuestionReport','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','count','limit','set','Content-Range','apply','reject','save','then','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge'];(function(_0x3bde69,_0x3b9280){var _0x361ed3=function(_0x1f038b){while(--_0x1f038b){_0x3bde69['push'](_0x3bde69['shift']());}};_0x361ed3(++_0x3b9280);}(_0x0682,0x19f));var _0x2068=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0682[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2068('0x0'));var zipdir=require(_0x2068('0x1'));var jsonpatch=require(_0x2068('0x2'));var rp=require(_0x2068('0x3'));var moment=require(_0x2068('0x4'));var BPromise=require(_0x2068('0x5'));var Mustache=require('mustache');var util=require(_0x2068('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x2068('0x7'));var ejs=require(_0x2068('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2068('0x9'));var squel=require('squel');var crypto=require(_0x2068('0xa'));var jsforce=require(_0x2068('0xb'));var deskjs=require(_0x2068('0xc'));var toCsv=require(_0x2068('0x7'));var querystring=require('querystring');var Papa=require(_0x2068('0xd'));var Redis=require(_0x2068('0xe'));var authService=require(_0x2068('0xf'));var qs=require(_0x2068('0x10'));var as=require(_0x2068('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2068('0x12'))(_0x2068('0x13'));var utils=require(_0x2068('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x2068('0x15'));var db=require(_0x2068('0x16'))['db'];function respondWithStatusCode(_0x1fa571,_0x4977be){_0x4977be=_0x4977be||0xcc;return function(_0x99f5a4){if(_0x99f5a4){return _0x1fa571[_0x2068('0x17')](_0x4977be);}return _0x1fa571[_0x2068('0x18')](_0x4977be)[_0x2068('0x19')]();};}function respondWithResult(_0x1aa8c1,_0x4a10c4){_0x4a10c4=_0x4a10c4||0xc8;return function(_0x3219d8){if(_0x3219d8){return _0x1aa8c1[_0x2068('0x18')](_0x4a10c4)[_0x2068('0x1a')](_0x3219d8);}};}function respondWithFilteredResult(_0x224222,_0x5c7ad6){return function(_0x3c2b45){if(_0x3c2b45){var _0x5dd03f=typeof _0x5c7ad6[_0x2068('0x1b')]==='undefined'&&typeof _0x5c7ad6['limit']==='undefined';var _0x53694c=_0x3c2b45['count'];var _0x542495=_0x5dd03f?0x0:_0x5c7ad6[_0x2068('0x1b')];var _0x3ca780=_0x5dd03f?_0x3c2b45[_0x2068('0x1c')]:_0x5c7ad6['offset']+_0x5c7ad6[_0x2068('0x1d')];var _0x89b1c4;if(_0x3ca780>=_0x53694c){_0x3ca780=_0x53694c;_0x89b1c4=0xc8;}else{_0x89b1c4=0xce;}_0x224222[_0x2068('0x18')](_0x89b1c4);return _0x224222[_0x2068('0x1e')](_0x2068('0x1f'),_0x542495+'-'+_0x3ca780+'/'+_0x53694c)[_0x2068('0x1a')](_0x3c2b45);}return null;};}function patchUpdates(_0x37377a){return function(_0xcf3b02){try{jsonpatch[_0x2068('0x20')](_0xcf3b02,_0x37377a,!![]);}catch(_0x2e3bf2){return BPromise[_0x2068('0x21')](_0x2e3bf2);}return _0xcf3b02[_0x2068('0x22')]();};}function saveUpdates(_0x40731b,_0x14caaa){return function(_0x2c8a2e){if(_0x2c8a2e){return _0x2c8a2e['update'](_0x40731b)['then'](function(_0x4bdc78){return _0x4bdc78;});}return null;};}function removeEntity(_0x53f938,_0x131ad2){return function(_0x224f20){if(_0x224f20){return _0x224f20['destroy']()[_0x2068('0x23')](function(){_0x53f938[_0x2068('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e9002,_0x5408fd){return function(_0x3b2917){if(!_0x3b2917){_0x5e9002['sendStatus'](0x194);}return _0x3b2917;};}function handleError(_0x45e97c,_0x92b349){_0x92b349=_0x92b349||0x1f4;return function(_0x4aa0a0){logger[_0x2068('0x24')](_0x4aa0a0[_0x2068('0x25')]);if(_0x4aa0a0[_0x2068('0x26')]){delete _0x4aa0a0[_0x2068('0x26')];}_0x45e97c[_0x2068('0x18')](_0x92b349)[_0x2068('0x27')](_0x4aa0a0);};}exports['index']=function(_0x432adb,_0x358407){var _0x298d1c={},_0xc629b7={},_0x460559={'count':0x0,'rows':[]};var _0x17c36e=_[_0x2068('0x28')](db['JscriptySessionReport'][_0x2068('0x29')],function(_0x13705c){return{'name':_0x13705c[_0x2068('0x2a')],'type':_0x13705c[_0x2068('0x2b')][_0x2068('0x2c')]};});_0xc629b7[_0x2068('0x2d')]=_[_0x2068('0x28')](_0x17c36e,'name');_0xc629b7['query']=_['keys'](_0x432adb['query']);_0xc629b7[_0x2068('0x2e')]=_[_0x2068('0x2f')](_0xc629b7['model'],_0xc629b7[_0x2068('0x30')]);_0x298d1c[_0x2068('0x31')]=_[_0x2068('0x2f')](_0xc629b7[_0x2068('0x2d')],qs['fields'](_0x432adb[_0x2068('0x30')][_0x2068('0x32')]));_0x298d1c[_0x2068('0x31')]=_0x298d1c[_0x2068('0x31')][_0x2068('0x33')]?_0x298d1c[_0x2068('0x31')]:_0xc629b7['model'];if(!_0x432adb['query'][_0x2068('0x34')]('nolimit')){_0x298d1c[_0x2068('0x1d')]=qs['limit'](_0x432adb[_0x2068('0x30')][_0x2068('0x1d')]);_0x298d1c['offset']=qs[_0x2068('0x1b')](_0x432adb[_0x2068('0x30')]['offset']);}_0x298d1c[_0x2068('0x35')]=qs[_0x2068('0x36')](_0x432adb[_0x2068('0x30')][_0x2068('0x36')]);_0x298d1c['where']=qs['filters'](_[_0x2068('0x37')](_0x432adb[_0x2068('0x30')],_0xc629b7['filters']),_0x17c36e);if(_0x432adb[_0x2068('0x30')][_0x2068('0x38')]){_0x298d1c[_0x2068('0x39')]=_[_0x2068('0x3a')](_0x298d1c['where'],{'$or':_[_0x2068('0x28')](_0x17c36e,function(_0x4b88d9){if(_0x4b88d9[_0x2068('0x2b')]!==_0x2068('0x3b')){var _0x85b90={};_0x85b90[_0x4b88d9[_0x2068('0x26')]]={'$like':'%'+_0x432adb[_0x2068('0x30')][_0x2068('0x38')]+'%'};return _0x85b90;}})});}_0x298d1c=_[_0x2068('0x3a')]({},_0x298d1c,_0x432adb['options']);var _0x349d88={'where':_0x298d1c[_0x2068('0x39')]};return db[_0x2068('0x3c')][_0x2068('0x1c')](_0x349d88)[_0x2068('0x23')](function(_0x11f51d){_0x460559['count']=_0x11f51d;if(_0x432adb[_0x2068('0x30')][_0x2068('0x3d')]){_0x298d1c[_0x2068('0x3e')]=[{'all':!![]}];}return db[_0x2068('0x3c')][_0x2068('0x3f')](_0x298d1c);})[_0x2068('0x23')](function(_0x7a9b0e){_0x460559[_0x2068('0x40')]=_0x7a9b0e;return _0x460559;})[_0x2068('0x23')](respondWithFilteredResult(_0x358407,_0x298d1c))[_0x2068('0x41')](handleError(_0x358407,null));};exports[_0x2068('0x42')]=function(_0x220eda,_0x850d55){var _0x45d877={'raw':!![],'where':{'id':_0x220eda[_0x2068('0x43')]['id']}},_0x114eb5={};_0x114eb5[_0x2068('0x2d')]=_[_0x2068('0x44')](db['JscriptySessionReport']['rawAttributes']);_0x114eb5[_0x2068('0x30')]=_['keys'](_0x220eda[_0x2068('0x30')]);_0x114eb5[_0x2068('0x2e')]=_[_0x2068('0x2f')](_0x114eb5['model'],_0x114eb5[_0x2068('0x30')]);_0x45d877['attributes']=_[_0x2068('0x2f')](_0x114eb5[_0x2068('0x2d')],qs[_0x2068('0x32')](_0x220eda['query'][_0x2068('0x32')]));_0x45d877[_0x2068('0x31')]=_0x45d877[_0x2068('0x31')][_0x2068('0x33')]?_0x45d877['attributes']:_0x114eb5[_0x2068('0x2d')];if(_0x220eda['query'][_0x2068('0x3d')]){_0x45d877[_0x2068('0x3e')]=[{'all':!![]}];}_0x45d877=_[_0x2068('0x3a')]({},_0x45d877,_0x220eda[_0x2068('0x45')]);return db[_0x2068('0x3c')][_0x2068('0x46')](_0x45d877)[_0x2068('0x23')](handleEntityNotFound(_0x850d55,null))['then'](respondWithResult(_0x850d55,null))['catch'](handleError(_0x850d55,null));};exports[_0x2068('0x47')]=function(_0x1c22d3,_0x130699){return db['JscriptySessionReport'][_0x2068('0x47')](_0x1c22d3['body'],{})['then'](respondWithResult(_0x130699,0xc9))['catch'](handleError(_0x130699,null));};exports['update']=function(_0x40b20c,_0x348894){if(_0x40b20c[_0x2068('0x48')]['id']){delete _0x40b20c['body']['id'];}return db[_0x2068('0x3c')][_0x2068('0x46')]({'where':{'id':_0x40b20c[_0x2068('0x43')]['id']}})[_0x2068('0x23')](handleEntityNotFound(_0x348894,null))[_0x2068('0x23')](saveUpdates(_0x40b20c['body'],null))['then'](respondWithResult(_0x348894,null))[_0x2068('0x41')](handleError(_0x348894,null));};exports[_0x2068('0x49')]=function(_0x4d30ed,_0x2da075){return db[_0x2068('0x3c')][_0x2068('0x46')]({'where':{'id':_0x4d30ed['params']['id']}})['then'](handleEntityNotFound(_0x2da075,null))[_0x2068('0x23')](removeEntity(_0x2da075,null))['catch'](handleError(_0x2da075,null));};exports[_0x2068('0x4a')]=function(_0x270867,_0x51de6f){return db[_0x2068('0x3c')]['describe']()[_0x2068('0x23')](respondWithResult(_0x51de6f,null))[_0x2068('0x41')](handleError(_0x51de6f,null));};exports[_0x2068('0x4b')]=function(_0x5d77ca,_0x334f13,_0x41cc63){var _0x1be9df={'raw':!![],'where':{}};var _0xfea9ba={};var _0x4827b4={'count':0x0,'rows':[]};return db[_0x2068('0x3c')][_0x2068('0x4c')]({'where':{'id':_0x5d77ca[_0x2068('0x43')]['id']}})[_0x2068('0x23')](handleEntityNotFound(_0x334f13,null))[_0x2068('0x23')](function(_0x4a14ac){if(_0x4a14ac){_0xfea9ba[_0x2068('0x2d')]=_[_0x2068('0x44')](db[_0x2068('0x4d')]['rawAttributes']);_0xfea9ba['query']=_[_0x2068('0x44')](_0x5d77ca['query']);_0xfea9ba[_0x2068('0x2e')]=_['intersection'](_0xfea9ba[_0x2068('0x2d')],_0xfea9ba[_0x2068('0x30')]);_0x1be9df[_0x2068('0x31')]=_[_0x2068('0x2f')](_0xfea9ba[_0x2068('0x2d')],qs[_0x2068('0x32')](_0x5d77ca[_0x2068('0x30')][_0x2068('0x32')]));_0x1be9df[_0x2068('0x31')]=_0x1be9df[_0x2068('0x31')][_0x2068('0x33')]?_0x1be9df['attributes']:_0xfea9ba['model'];if(!_0x5d77ca[_0x2068('0x30')]['hasOwnProperty'](_0x2068('0x4e'))){_0x1be9df[_0x2068('0x1d')]=qs[_0x2068('0x1d')](_0x5d77ca[_0x2068('0x30')]['limit']);_0x1be9df[_0x2068('0x1b')]=qs[_0x2068('0x1b')](_0x5d77ca['query'][_0x2068('0x1b')]);}_0x1be9df[_0x2068('0x35')]=qs['sort'](_0x5d77ca[_0x2068('0x30')][_0x2068('0x36')]);_0x1be9df[_0x2068('0x39')]=qs['filters'](_[_0x2068('0x37')](_0x5d77ca['query'],_0xfea9ba[_0x2068('0x2e')]));_0x1be9df[_0x2068('0x39')]['SessionId']=_0x4a14ac['id'];if(_0x5d77ca[_0x2068('0x30')][_0x2068('0x38')]){_0x1be9df['where']=_['merge'](_0x1be9df[_0x2068('0x39')],{'$or':_[_0x2068('0x28')](_0x1be9df[_0x2068('0x31')],function(_0x309e90){var _0x3ca546={};_0x3ca546[_0x309e90]={'$like':'%'+_0x5d77ca[_0x2068('0x30')]['filter']+'%'};return _0x3ca546;})});}_0x1be9df=_[_0x2068('0x3a')]({},_0x1be9df,_0x5d77ca[_0x2068('0x45')]);return db[_0x2068('0x4d')][_0x2068('0x1c')]({'where':_0x1be9df[_0x2068('0x39')]})[_0x2068('0x23')](function(_0x195038){_0x4827b4[_0x2068('0x1c')]=_0x195038;if(_0x5d77ca['query'][_0x2068('0x3d')]){_0x1be9df['include']=[{'all':!![]}];}return db[_0x2068('0x4d')][_0x2068('0x3f')](_0x1be9df);})['then'](function(_0x5bf9fb){_0x4827b4[_0x2068('0x40')]=_0x5bf9fb;return _0x4827b4;});}})['then'](respondWithFilteredResult(_0x334f13,_0x1be9df))[_0x2068('0x41')](handleError(_0x334f13,null));};