4ff9817e17bafd19e41e60542bb25da19569e51d
[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 _0xe620=['squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','type','key','query','filters','model','attributes','intersection','fields','hasOwnProperty','filter','where','merge','includeAll','findAll','rows','show','params','keys','include','options','catch','create','body','find','describe','findOne','JscriptyQuestionReport','length','order','sort','pick','SessionId','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash'];(function(_0x432c72,_0x2fef01){var _0x32c7f2=function(_0x309a08){while(--_0x309a08){_0x432c72['push'](_0x432c72['shift']());}};_0x32c7f2(++_0x2fef01);}(_0xe620,0x141));var _0x0e62=function(_0x634e3d,_0x1cab83){_0x634e3d=_0x634e3d-0x0;var _0x29fdfc=_0xe620[_0x634e3d];return _0x29fdfc;};'use strict';var emlformat=require(_0x0e62('0x0'));var rimraf=require(_0x0e62('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0e62('0x2'));var rp=require(_0x0e62('0x3'));var moment=require('moment');var BPromise=require(_0x0e62('0x4'));var Mustache=require(_0x0e62('0x5'));var util=require('util');var path=require(_0x0e62('0x6'));var sox=require('sox');var csv=require(_0x0e62('0x7'));var ejs=require(_0x0e62('0x8'));var fs=require('fs');var fs_extra=require(_0x0e62('0x9'));var _=require(_0x0e62('0xa'));var squel=require(_0x0e62('0xb'));var crypto=require(_0x0e62('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x0e62('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0e62('0xe'));var Redis=require(_0x0e62('0xf'));var authService=require(_0x0e62('0x10'));var qs=require(_0x0e62('0x11'));var as=require(_0x0e62('0x12'));var hardwareService=require(_0x0e62('0x13'));var logger=require(_0x0e62('0x14'))(_0x0e62('0x15'));var utils=require(_0x0e62('0x16'));var config=require(_0x0e62('0x17'));var licenseUtil=require(_0x0e62('0x18'));var db=require(_0x0e62('0x19'))['db'];function respondWithStatusCode(_0x2774c7,_0x4cd9a8){_0x4cd9a8=_0x4cd9a8||0xcc;return function(_0xccc1d0){if(_0xccc1d0){return _0x2774c7['sendStatus'](_0x4cd9a8);}return _0x2774c7['status'](_0x4cd9a8)[_0x0e62('0x1a')]();};}function respondWithResult(_0x49ce38,_0x2d9ea1){_0x2d9ea1=_0x2d9ea1||0xc8;return function(_0x3a99f2){if(_0x3a99f2){return _0x49ce38[_0x0e62('0x1b')](_0x2d9ea1)[_0x0e62('0x1c')](_0x3a99f2);}};}function respondWithFilteredResult(_0x34f25a,_0xf8fcf3){return function(_0x163449){if(_0x163449){var _0x45c857=typeof _0xf8fcf3['offset']===_0x0e62('0x1d')&&typeof _0xf8fcf3[_0x0e62('0x1e')]===_0x0e62('0x1d');var _0x3f70d9=_0x163449[_0x0e62('0x1f')];var _0x15fada=_0x45c857?0x0:_0xf8fcf3[_0x0e62('0x20')];var _0x25d77c=_0x45c857?_0x163449[_0x0e62('0x1f')]:_0xf8fcf3[_0x0e62('0x20')]+_0xf8fcf3[_0x0e62('0x1e')];var _0x37e738;if(_0x25d77c>=_0x3f70d9){_0x25d77c=_0x3f70d9;_0x37e738=0xc8;}else{_0x37e738=0xce;}_0x34f25a[_0x0e62('0x1b')](_0x37e738);return _0x34f25a[_0x0e62('0x21')](_0x0e62('0x22'),_0x15fada+'-'+_0x25d77c+'/'+_0x3f70d9)[_0x0e62('0x1c')](_0x163449);}return null;};}function patchUpdates(_0x586f67){return function(_0x353fa4){try{jsonpatch[_0x0e62('0x23')](_0x353fa4,_0x586f67,!![]);}catch(_0x3c427d){return BPromise[_0x0e62('0x24')](_0x3c427d);}return _0x353fa4[_0x0e62('0x25')]();};}function saveUpdates(_0x3d3b17,_0x2012e8){return function(_0x443b2e){if(_0x443b2e){return _0x443b2e[_0x0e62('0x26')](_0x3d3b17)['then'](function(_0x2ce87b){return _0x2ce87b;});}return null;};}function removeEntity(_0x1a453d,_0x4b7b8b){return function(_0x3c0637){if(_0x3c0637){return _0x3c0637[_0x0e62('0x27')]()[_0x0e62('0x28')](function(){_0x1a453d[_0x0e62('0x1b')](0xcc)[_0x0e62('0x1a')]();});}};}function handleEntityNotFound(_0x5a030c,_0x191068){return function(_0x1f23bb){if(!_0x1f23bb){_0x5a030c[_0x0e62('0x29')](0x194);}return _0x1f23bb;};}function handleError(_0x53726d,_0x11162d){_0x11162d=_0x11162d||0x1f4;return function(_0x5573d2){logger[_0x0e62('0x2a')](_0x5573d2[_0x0e62('0x2b')]);if(_0x5573d2[_0x0e62('0x2c')]){delete _0x5573d2[_0x0e62('0x2c')];}_0x53726d[_0x0e62('0x1b')](_0x11162d)[_0x0e62('0x2d')](_0x5573d2);};}exports[_0x0e62('0x2e')]=function(_0x5bb0a5,_0x1aea19){var _0x349d50={},_0x30f6db={},_0x3c16ed={'count':0x0,'rows':[]};var _0x2ffc0e=_[_0x0e62('0x2f')](db[_0x0e62('0x30')][_0x0e62('0x31')],function(_0x216b3b){return{'name':_0x216b3b[_0x0e62('0x32')],'type':_0x216b3b[_0x0e62('0x33')][_0x0e62('0x34')]};});_0x30f6db['model']=_[_0x0e62('0x2f')](_0x2ffc0e,_0x0e62('0x2c'));_0x30f6db[_0x0e62('0x35')]=_['keys'](_0x5bb0a5[_0x0e62('0x35')]);_0x30f6db[_0x0e62('0x36')]=_['intersection'](_0x30f6db[_0x0e62('0x37')],_0x30f6db['query']);_0x349d50[_0x0e62('0x38')]=_[_0x0e62('0x39')](_0x30f6db[_0x0e62('0x37')],qs[_0x0e62('0x3a')](_0x5bb0a5[_0x0e62('0x35')]['fields']));_0x349d50['attributes']=_0x349d50['attributes']['length']?_0x349d50[_0x0e62('0x38')]:_0x30f6db[_0x0e62('0x37')];if(!_0x5bb0a5[_0x0e62('0x35')][_0x0e62('0x3b')]('nolimit')){_0x349d50['limit']=qs[_0x0e62('0x1e')](_0x5bb0a5['query'][_0x0e62('0x1e')]);_0x349d50[_0x0e62('0x20')]=qs[_0x0e62('0x20')](_0x5bb0a5[_0x0e62('0x35')][_0x0e62('0x20')]);}_0x349d50['order']=qs['sort'](_0x5bb0a5['query']['sort']);_0x349d50['where']=qs[_0x0e62('0x36')](_['pick'](_0x5bb0a5['query'],_0x30f6db[_0x0e62('0x36')]),_0x2ffc0e);if(_0x5bb0a5['query'][_0x0e62('0x3c')]){_0x349d50[_0x0e62('0x3d')]=_[_0x0e62('0x3e')](_0x349d50[_0x0e62('0x3d')],{'$or':_[_0x0e62('0x2f')](_0x2ffc0e,function(_0x483298){if(_0x483298[_0x0e62('0x33')]!=='VIRTUAL'){var _0x544181={};_0x544181[_0x483298[_0x0e62('0x2c')]]={'$like':'%'+_0x5bb0a5[_0x0e62('0x35')][_0x0e62('0x3c')]+'%'};return _0x544181;}})});}_0x349d50=_[_0x0e62('0x3e')]({},_0x349d50,_0x5bb0a5['options']);var _0x125277={'where':_0x349d50[_0x0e62('0x3d')]};return db[_0x0e62('0x30')]['count'](_0x125277)[_0x0e62('0x28')](function(_0x48a882){_0x3c16ed['count']=_0x48a882;if(_0x5bb0a5['query'][_0x0e62('0x3f')]){_0x349d50['include']=[{'all':!![]}];}return db['JscriptySessionReport'][_0x0e62('0x40')](_0x349d50);})['then'](function(_0x5f0e71){_0x3c16ed[_0x0e62('0x41')]=_0x5f0e71;return _0x3c16ed;})[_0x0e62('0x28')](respondWithFilteredResult(_0x1aea19,_0x349d50))['catch'](handleError(_0x1aea19,null));};exports[_0x0e62('0x42')]=function(_0x18595b,_0x586b5c){var _0x614a7={'raw':!![],'where':{'id':_0x18595b[_0x0e62('0x43')]['id']}},_0x3a1cd6={};_0x3a1cd6[_0x0e62('0x37')]=_[_0x0e62('0x44')](db[_0x0e62('0x30')][_0x0e62('0x31')]);_0x3a1cd6['query']=_[_0x0e62('0x44')](_0x18595b[_0x0e62('0x35')]);_0x3a1cd6['filters']=_[_0x0e62('0x39')](_0x3a1cd6[_0x0e62('0x37')],_0x3a1cd6['query']);_0x614a7['attributes']=_[_0x0e62('0x39')](_0x3a1cd6['model'],qs['fields'](_0x18595b[_0x0e62('0x35')][_0x0e62('0x3a')]));_0x614a7[_0x0e62('0x38')]=_0x614a7[_0x0e62('0x38')]['length']?_0x614a7[_0x0e62('0x38')]:_0x3a1cd6[_0x0e62('0x37')];if(_0x18595b[_0x0e62('0x35')][_0x0e62('0x3f')]){_0x614a7[_0x0e62('0x45')]=[{'all':!![]}];}_0x614a7=_['merge']({},_0x614a7,_0x18595b[_0x0e62('0x46')]);return db[_0x0e62('0x30')]['find'](_0x614a7)[_0x0e62('0x28')](handleEntityNotFound(_0x586b5c,null))[_0x0e62('0x28')](respondWithResult(_0x586b5c,null))[_0x0e62('0x47')](handleError(_0x586b5c,null));};exports[_0x0e62('0x48')]=function(_0x550703,_0x3becc9){return db[_0x0e62('0x30')]['create'](_0x550703['body'],{})[_0x0e62('0x28')](respondWithResult(_0x3becc9,0xc9))[_0x0e62('0x47')](handleError(_0x3becc9,null));};exports[_0x0e62('0x26')]=function(_0x10b47c,_0x4f9b5d){if(_0x10b47c[_0x0e62('0x49')]['id']){delete _0x10b47c[_0x0e62('0x49')]['id'];}return db[_0x0e62('0x30')][_0x0e62('0x4a')]({'where':{'id':_0x10b47c['params']['id']}})[_0x0e62('0x28')](handleEntityNotFound(_0x4f9b5d,null))[_0x0e62('0x28')](saveUpdates(_0x10b47c[_0x0e62('0x49')],null))['then'](respondWithResult(_0x4f9b5d,null))[_0x0e62('0x47')](handleError(_0x4f9b5d,null));};exports[_0x0e62('0x27')]=function(_0x34e815,_0x1e42e3){return db[_0x0e62('0x30')][_0x0e62('0x4a')]({'where':{'id':_0x34e815[_0x0e62('0x43')]['id']}})['then'](handleEntityNotFound(_0x1e42e3,null))[_0x0e62('0x28')](removeEntity(_0x1e42e3,null))[_0x0e62('0x47')](handleError(_0x1e42e3,null));};exports[_0x0e62('0x4b')]=function(_0x2e8227,_0x2bda37){return db[_0x0e62('0x30')]['describe']()['then'](respondWithResult(_0x2bda37,null))[_0x0e62('0x47')](handleError(_0x2bda37,null));};exports['getQuestions']=function(_0x30bad0,_0x572074,_0x27d11d){var _0x1c6248={'raw':!![],'where':{}};var _0x152429={};var _0x503860={'count':0x0,'rows':[]};return db[_0x0e62('0x30')][_0x0e62('0x4c')]({'where':{'id':_0x30bad0[_0x0e62('0x43')]['id']}})[_0x0e62('0x28')](handleEntityNotFound(_0x572074,null))[_0x0e62('0x28')](function(_0x71eb7d){if(_0x71eb7d){_0x152429[_0x0e62('0x37')]=_[_0x0e62('0x44')](db[_0x0e62('0x4d')]['rawAttributes']);_0x152429[_0x0e62('0x35')]=_['keys'](_0x30bad0[_0x0e62('0x35')]);_0x152429[_0x0e62('0x36')]=_[_0x0e62('0x39')](_0x152429['model'],_0x152429[_0x0e62('0x35')]);_0x1c6248[_0x0e62('0x38')]=_[_0x0e62('0x39')](_0x152429[_0x0e62('0x37')],qs[_0x0e62('0x3a')](_0x30bad0[_0x0e62('0x35')][_0x0e62('0x3a')]));_0x1c6248['attributes']=_0x1c6248['attributes'][_0x0e62('0x4e')]?_0x1c6248[_0x0e62('0x38')]:_0x152429[_0x0e62('0x37')];if(!_0x30bad0['query'][_0x0e62('0x3b')]('nolimit')){_0x1c6248[_0x0e62('0x1e')]=qs[_0x0e62('0x1e')](_0x30bad0['query']['limit']);_0x1c6248[_0x0e62('0x20')]=qs[_0x0e62('0x20')](_0x30bad0[_0x0e62('0x35')]['offset']);}_0x1c6248[_0x0e62('0x4f')]=qs[_0x0e62('0x50')](_0x30bad0[_0x0e62('0x35')][_0x0e62('0x50')]);_0x1c6248[_0x0e62('0x3d')]=qs[_0x0e62('0x36')](_[_0x0e62('0x51')](_0x30bad0[_0x0e62('0x35')],_0x152429[_0x0e62('0x36')]));_0x1c6248[_0x0e62('0x3d')][_0x0e62('0x52')]=_0x71eb7d['id'];if(_0x30bad0['query'][_0x0e62('0x3c')]){_0x1c6248['where']=_[_0x0e62('0x3e')](_0x1c6248[_0x0e62('0x3d')],{'$or':_[_0x0e62('0x2f')](_0x1c6248[_0x0e62('0x38')],function(_0x2d79cc){var _0x185a59={};_0x185a59[_0x2d79cc]={'$like':'%'+_0x30bad0['query'][_0x0e62('0x3c')]+'%'};return _0x185a59;})});}_0x1c6248=_[_0x0e62('0x3e')]({},_0x1c6248,_0x30bad0[_0x0e62('0x46')]);return db['JscriptyQuestionReport'][_0x0e62('0x1f')]({'where':_0x1c6248['where']})[_0x0e62('0x28')](function(_0xf160d){_0x503860[_0x0e62('0x1f')]=_0xf160d;if(_0x30bad0[_0x0e62('0x35')][_0x0e62('0x3f')]){_0x1c6248[_0x0e62('0x45')]=[{'all':!![]}];}return db[_0x0e62('0x4d')][_0x0e62('0x40')](_0x1c6248);})[_0x0e62('0x28')](function(_0x22831e){_0x503860[_0x0e62('0x41')]=_0x22831e;return _0x503860;});}})[_0x0e62('0x28')](respondWithFilteredResult(_0x572074,_0x1c6248))[_0x0e62('0x47')](handleError(_0x572074,null));};