Built motion from commit c738b9ac.|2.6.25
[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 _0x7d93=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','json','offset','undefined','count','limit','set','apply','save','status','end','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','then','includeAll','findAll','rows','catch','show','params','include','create','update','body','find','destroy','describe','findOne','JscriptyQuestionReport','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis'];(function(_0x2915dd,_0xf36c26){var _0x549593=function(_0x3176ae){while(--_0x3176ae){_0x2915dd['push'](_0x2915dd['shift']());}};_0x549593(++_0xf36c26);}(_0x7d93,0x135));var _0x37d9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7d93[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x37d9('0x0'));var rimraf=require(_0x37d9('0x1'));var zipdir=require(_0x37d9('0x2'));var jsonpatch=require(_0x37d9('0x3'));var rp=require(_0x37d9('0x4'));var moment=require(_0x37d9('0x5'));var BPromise=require(_0x37d9('0x6'));var Mustache=require(_0x37d9('0x7'));var util=require(_0x37d9('0x8'));var path=require(_0x37d9('0x9'));var sox=require('sox');var csv=require(_0x37d9('0xa'));var ejs=require(_0x37d9('0xb'));var fs=require('fs');var fs_extra=require(_0x37d9('0xc'));var _=require(_0x37d9('0xd'));var squel=require(_0x37d9('0xe'));var crypto=require(_0x37d9('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x37d9('0x10'));var toCsv=require(_0x37d9('0xa'));var querystring=require(_0x37d9('0x11'));var Papa=require('papaparse');var Redis=require(_0x37d9('0x12'));var authService=require(_0x37d9('0x13'));var qs=require(_0x37d9('0x14'));var as=require(_0x37d9('0x15'));var hardwareService=require(_0x37d9('0x16'));var logger=require(_0x37d9('0x17'))(_0x37d9('0x18'));var utils=require(_0x37d9('0x19'));var config=require(_0x37d9('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x37d9('0x1b'))['db'];function respondWithStatusCode(_0x3dec64,_0x537573){_0x537573=_0x537573||0xcc;return function(_0x9e58ec){if(_0x9e58ec){return _0x3dec64[_0x37d9('0x1c')](_0x537573);}return _0x3dec64['status'](_0x537573)['end']();};}function respondWithResult(_0x30c082,_0x5037ba){_0x5037ba=_0x5037ba||0xc8;return function(_0x4a7081){if(_0x4a7081){return _0x30c082['status'](_0x5037ba)[_0x37d9('0x1d')](_0x4a7081);}};}function respondWithFilteredResult(_0x5b0faa,_0x821dc3){return function(_0x35bb33){if(_0x35bb33){var _0x5a5aee=typeof _0x821dc3[_0x37d9('0x1e')]==='undefined'&&typeof _0x821dc3['limit']===_0x37d9('0x1f');var _0x5679d0=_0x35bb33[_0x37d9('0x20')];var _0x32c952=_0x5a5aee?0x0:_0x821dc3[_0x37d9('0x1e')];var _0x12393b=_0x5a5aee?_0x35bb33[_0x37d9('0x20')]:_0x821dc3[_0x37d9('0x1e')]+_0x821dc3[_0x37d9('0x21')];var _0x1e8146;if(_0x12393b>=_0x5679d0){_0x12393b=_0x5679d0;_0x1e8146=0xc8;}else{_0x1e8146=0xce;}_0x5b0faa['status'](_0x1e8146);return _0x5b0faa[_0x37d9('0x22')]('Content-Range',_0x32c952+'-'+_0x12393b+'/'+_0x5679d0)[_0x37d9('0x1d')](_0x35bb33);}return null;};}function patchUpdates(_0x149bdb){return function(_0x1b78b7){try{jsonpatch[_0x37d9('0x23')](_0x1b78b7,_0x149bdb,!![]);}catch(_0x4916f7){return BPromise['reject'](_0x4916f7);}return _0x1b78b7[_0x37d9('0x24')]();};}function saveUpdates(_0x17aa74,_0x226757){return function(_0x45a8c3){if(_0x45a8c3){return _0x45a8c3['update'](_0x17aa74)['then'](function(_0x48ba94){return _0x48ba94;});}return null;};}function removeEntity(_0x3d5faf,_0x11c885){return function(_0x2cc254){if(_0x2cc254){return _0x2cc254['destroy']()['then'](function(){_0x3d5faf[_0x37d9('0x25')](0xcc)[_0x37d9('0x26')]();});}};}function handleEntityNotFound(_0x393fdb,_0x2b2b2b){return function(_0x1c25bf){if(!_0x1c25bf){_0x393fdb[_0x37d9('0x1c')](0x194);}return _0x1c25bf;};}function handleError(_0x493237,_0x28ae91){_0x28ae91=_0x28ae91||0x1f4;return function(_0x3b9ef7){logger['error'](_0x3b9ef7['stack']);if(_0x3b9ef7['name']){delete _0x3b9ef7[_0x37d9('0x27')];}_0x493237[_0x37d9('0x25')](_0x28ae91)[_0x37d9('0x28')](_0x3b9ef7);};}exports[_0x37d9('0x29')]=function(_0x348c51,_0x488b69){var _0x3b6105={},_0x2b7cd1={},_0x378b7e={'count':0x0,'rows':[]};var _0x1c79ba=_[_0x37d9('0x2a')](db[_0x37d9('0x2b')][_0x37d9('0x2c')],function(_0x36b8c6){return{'name':_0x36b8c6[_0x37d9('0x2d')],'type':_0x36b8c6[_0x37d9('0x2e')][_0x37d9('0x2f')]};});_0x2b7cd1[_0x37d9('0x30')]=_[_0x37d9('0x2a')](_0x1c79ba,'name');_0x2b7cd1[_0x37d9('0x31')]=_[_0x37d9('0x32')](_0x348c51[_0x37d9('0x31')]);_0x2b7cd1[_0x37d9('0x33')]=_[_0x37d9('0x34')](_0x2b7cd1[_0x37d9('0x30')],_0x2b7cd1['query']);_0x3b6105[_0x37d9('0x35')]=_['intersection'](_0x2b7cd1[_0x37d9('0x30')],qs[_0x37d9('0x36')](_0x348c51[_0x37d9('0x31')][_0x37d9('0x36')]));_0x3b6105[_0x37d9('0x35')]=_0x3b6105[_0x37d9('0x35')][_0x37d9('0x37')]?_0x3b6105[_0x37d9('0x35')]:_0x2b7cd1['model'];if(!_0x348c51[_0x37d9('0x31')]['hasOwnProperty'](_0x37d9('0x38'))){_0x3b6105[_0x37d9('0x21')]=qs[_0x37d9('0x21')](_0x348c51[_0x37d9('0x31')]['limit']);_0x3b6105['offset']=qs[_0x37d9('0x1e')](_0x348c51[_0x37d9('0x31')][_0x37d9('0x1e')]);}_0x3b6105[_0x37d9('0x39')]=qs[_0x37d9('0x3a')](_0x348c51[_0x37d9('0x31')]['sort']);_0x3b6105['where']=qs[_0x37d9('0x33')](_[_0x37d9('0x3b')](_0x348c51[_0x37d9('0x31')],_0x2b7cd1[_0x37d9('0x33')]),_0x1c79ba);if(_0x348c51[_0x37d9('0x31')][_0x37d9('0x3c')]){_0x3b6105[_0x37d9('0x3d')]=_[_0x37d9('0x3e')](_0x3b6105['where'],{'$or':_[_0x37d9('0x2a')](_0x1c79ba,function(_0x5f0ebe){if(_0x5f0ebe[_0x37d9('0x2e')]!==_0x37d9('0x3f')){var _0xe639fe={};_0xe639fe[_0x5f0ebe[_0x37d9('0x27')]]={'$like':'%'+_0x348c51['query'][_0x37d9('0x3c')]+'%'};return _0xe639fe;}})});}_0x3b6105=_[_0x37d9('0x3e')]({},_0x3b6105,_0x348c51[_0x37d9('0x40')]);var _0x1900d6={'where':_0x3b6105[_0x37d9('0x3d')]};return db[_0x37d9('0x2b')]['count'](_0x1900d6)[_0x37d9('0x41')](function(_0x29e48c){_0x378b7e[_0x37d9('0x20')]=_0x29e48c;if(_0x348c51['query'][_0x37d9('0x42')]){_0x3b6105['include']=[{'all':!![]}];}return db[_0x37d9('0x2b')][_0x37d9('0x43')](_0x3b6105);})[_0x37d9('0x41')](function(_0x26db88){_0x378b7e[_0x37d9('0x44')]=_0x26db88;return _0x378b7e;})[_0x37d9('0x41')](respondWithFilteredResult(_0x488b69,_0x3b6105))[_0x37d9('0x45')](handleError(_0x488b69,null));};exports[_0x37d9('0x46')]=function(_0x48ea42,_0x3c8c50){var _0x4bb050={'raw':!![],'where':{'id':_0x48ea42[_0x37d9('0x47')]['id']}},_0x6fa13={};_0x6fa13[_0x37d9('0x30')]=_[_0x37d9('0x32')](db[_0x37d9('0x2b')]['rawAttributes']);_0x6fa13[_0x37d9('0x31')]=_[_0x37d9('0x32')](_0x48ea42['query']);_0x6fa13[_0x37d9('0x33')]=_[_0x37d9('0x34')](_0x6fa13[_0x37d9('0x30')],_0x6fa13[_0x37d9('0x31')]);_0x4bb050[_0x37d9('0x35')]=_[_0x37d9('0x34')](_0x6fa13[_0x37d9('0x30')],qs[_0x37d9('0x36')](_0x48ea42[_0x37d9('0x31')][_0x37d9('0x36')]));_0x4bb050[_0x37d9('0x35')]=_0x4bb050[_0x37d9('0x35')][_0x37d9('0x37')]?_0x4bb050[_0x37d9('0x35')]:_0x6fa13[_0x37d9('0x30')];if(_0x48ea42[_0x37d9('0x31')][_0x37d9('0x42')]){_0x4bb050[_0x37d9('0x48')]=[{'all':!![]}];}_0x4bb050=_[_0x37d9('0x3e')]({},_0x4bb050,_0x48ea42[_0x37d9('0x40')]);return db[_0x37d9('0x2b')]['find'](_0x4bb050)['then'](handleEntityNotFound(_0x3c8c50,null))[_0x37d9('0x41')](respondWithResult(_0x3c8c50,null))[_0x37d9('0x45')](handleError(_0x3c8c50,null));};exports[_0x37d9('0x49')]=function(_0x3e2b52,_0x2772ae){return db[_0x37d9('0x2b')][_0x37d9('0x49')](_0x3e2b52['body'],{})[_0x37d9('0x41')](respondWithResult(_0x2772ae,0xc9))[_0x37d9('0x45')](handleError(_0x2772ae,null));};exports[_0x37d9('0x4a')]=function(_0x56a627,_0x542e75){if(_0x56a627[_0x37d9('0x4b')]['id']){delete _0x56a627['body']['id'];}return db['JscriptySessionReport'][_0x37d9('0x4c')]({'where':{'id':_0x56a627[_0x37d9('0x47')]['id']}})[_0x37d9('0x41')](handleEntityNotFound(_0x542e75,null))['then'](saveUpdates(_0x56a627[_0x37d9('0x4b')],null))['then'](respondWithResult(_0x542e75,null))[_0x37d9('0x45')](handleError(_0x542e75,null));};exports[_0x37d9('0x4d')]=function(_0x5e4813,_0x43374b){return db[_0x37d9('0x2b')][_0x37d9('0x4c')]({'where':{'id':_0x5e4813[_0x37d9('0x47')]['id']}})[_0x37d9('0x41')](handleEntityNotFound(_0x43374b,null))[_0x37d9('0x41')](removeEntity(_0x43374b,null))['catch'](handleError(_0x43374b,null));};exports['describe']=function(_0x2a95bc,_0x285ea8){return db['JscriptySessionReport'][_0x37d9('0x4e')]()[_0x37d9('0x41')](respondWithResult(_0x285ea8,null))['catch'](handleError(_0x285ea8,null));};exports['getQuestions']=function(_0x45aa77,_0x97867a,_0x5ae11f){var _0x5bfa01={'raw':!![],'where':{}};var _0x1a2f87={};var _0x2b7a72={'count':0x0,'rows':[]};return db[_0x37d9('0x2b')][_0x37d9('0x4f')]({'where':{'id':_0x45aa77[_0x37d9('0x47')]['id']}})['then'](handleEntityNotFound(_0x97867a,null))[_0x37d9('0x41')](function(_0x39a93c){if(_0x39a93c){_0x1a2f87[_0x37d9('0x30')]=_['keys'](db[_0x37d9('0x50')][_0x37d9('0x2c')]);_0x1a2f87[_0x37d9('0x31')]=_[_0x37d9('0x32')](_0x45aa77[_0x37d9('0x31')]);_0x1a2f87['filters']=_[_0x37d9('0x34')](_0x1a2f87['model'],_0x1a2f87[_0x37d9('0x31')]);_0x5bfa01[_0x37d9('0x35')]=_['intersection'](_0x1a2f87['model'],qs[_0x37d9('0x36')](_0x45aa77[_0x37d9('0x31')]['fields']));_0x5bfa01['attributes']=_0x5bfa01[_0x37d9('0x35')]['length']?_0x5bfa01[_0x37d9('0x35')]:_0x1a2f87[_0x37d9('0x30')];if(!_0x45aa77[_0x37d9('0x31')][_0x37d9('0x51')](_0x37d9('0x38'))){_0x5bfa01[_0x37d9('0x21')]=qs[_0x37d9('0x21')](_0x45aa77[_0x37d9('0x31')]['limit']);_0x5bfa01[_0x37d9('0x1e')]=qs[_0x37d9('0x1e')](_0x45aa77[_0x37d9('0x31')][_0x37d9('0x1e')]);}_0x5bfa01[_0x37d9('0x39')]=qs[_0x37d9('0x3a')](_0x45aa77['query'][_0x37d9('0x3a')]);_0x5bfa01[_0x37d9('0x3d')]=qs[_0x37d9('0x33')](_['pick'](_0x45aa77[_0x37d9('0x31')],_0x1a2f87['filters']));_0x5bfa01[_0x37d9('0x3d')]['SessionId']=_0x39a93c['id'];if(_0x45aa77[_0x37d9('0x31')][_0x37d9('0x3c')]){_0x5bfa01[_0x37d9('0x3d')]=_[_0x37d9('0x3e')](_0x5bfa01['where'],{'$or':_[_0x37d9('0x2a')](_0x5bfa01['attributes'],function(_0x5d65ee){var _0x100d71={};_0x100d71[_0x5d65ee]={'$like':'%'+_0x45aa77[_0x37d9('0x31')]['filter']+'%'};return _0x100d71;})});}_0x5bfa01=_[_0x37d9('0x3e')]({},_0x5bfa01,_0x45aa77['options']);return db[_0x37d9('0x50')]['count']({'where':_0x5bfa01[_0x37d9('0x3d')]})['then'](function(_0x59704c){_0x2b7a72[_0x37d9('0x20')]=_0x59704c;if(_0x45aa77[_0x37d9('0x31')][_0x37d9('0x42')]){_0x5bfa01[_0x37d9('0x48')]=[{'all':!![]}];}return db[_0x37d9('0x50')][_0x37d9('0x43')](_0x5bfa01);})[_0x37d9('0x41')](function(_0x2ed35b){_0x2b7a72['rows']=_0x2ed35b;return _0x2b7a72;});}})[_0x37d9('0x41')](respondWithFilteredResult(_0x97867a,_0x5bfa01))[_0x37d9('0x45')](handleError(_0x97867a,null));};