9c41c5436e6dcc62cfa1de825624a49cf884448b
[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 _0xa586=['hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','then','includeAll','include','rows','catch','show','params','options','find','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','SessionId','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','squel','crypto','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','JscriptySessionReport','rawAttributes','type','key','keys','intersection','model','query','fields','attributes','length'];(function(_0x403c20,_0x4a7b99){var _0x2b271a=function(_0x106ecb){while(--_0x106ecb){_0x403c20['push'](_0x403c20['shift']());}};_0x2b271a(++_0x4a7b99);}(_0xa586,0xb6));var _0x6a58=function(_0x424501,_0x42096d){_0x424501=_0x424501-0x0;var _0xb719af=_0xa586[_0x424501];return _0xb719af;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6a58('0x0'));var zipdir=require(_0x6a58('0x1'));var jsonpatch=require(_0x6a58('0x2'));var rp=require(_0x6a58('0x3'));var moment=require(_0x6a58('0x4'));var BPromise=require(_0x6a58('0x5'));var Mustache=require('mustache');var util=require(_0x6a58('0x6'));var path=require('path');var sox=require(_0x6a58('0x7'));var csv=require(_0x6a58('0x8'));var ejs=require(_0x6a58('0x9'));var fs=require('fs');var fs_extra=require(_0x6a58('0xa'));var _=require('lodash');var squel=require(_0x6a58('0xb'));var crypto=require(_0x6a58('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6a58('0x8'));var querystring=require(_0x6a58('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6a58('0xe'));var qs=require(_0x6a58('0xf'));var as=require(_0x6a58('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6a58('0x11'))('api');var utils=require(_0x6a58('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x6a58('0x13'))['db'];function respondWithStatusCode(_0x48e3b0,_0xeee2b8){_0xeee2b8=_0xeee2b8||0xcc;return function(_0x427ec9){if(_0x427ec9){return _0x48e3b0[_0x6a58('0x14')](_0xeee2b8);}return _0x48e3b0[_0x6a58('0x15')](_0xeee2b8)[_0x6a58('0x16')]();};}function respondWithResult(_0x1ea634,_0x44dec0){_0x44dec0=_0x44dec0||0xc8;return function(_0x515a16){if(_0x515a16){return _0x1ea634[_0x6a58('0x15')](_0x44dec0)[_0x6a58('0x17')](_0x515a16);}};}function respondWithFilteredResult(_0x3809df,_0x401e6d){return function(_0x37310f){if(_0x37310f){var _0x458c37=typeof _0x401e6d[_0x6a58('0x18')]===_0x6a58('0x19')&&typeof _0x401e6d[_0x6a58('0x1a')]===_0x6a58('0x19');var _0x2dad69=_0x37310f[_0x6a58('0x1b')];var _0x315f42=_0x458c37?0x0:_0x401e6d[_0x6a58('0x18')];var _0x4a09ea=_0x458c37?_0x37310f['count']:_0x401e6d[_0x6a58('0x18')]+_0x401e6d[_0x6a58('0x1a')];var _0x548216;if(_0x4a09ea>=_0x2dad69){_0x4a09ea=_0x2dad69;_0x548216=0xc8;}else{_0x548216=0xce;}_0x3809df[_0x6a58('0x15')](_0x548216);return _0x3809df[_0x6a58('0x1c')](_0x6a58('0x1d'),_0x315f42+'-'+_0x4a09ea+'/'+_0x2dad69)[_0x6a58('0x17')](_0x37310f);}return null;};}function patchUpdates(_0xf29eb1){return function(_0x103ff9){try{jsonpatch[_0x6a58('0x1e')](_0x103ff9,_0xf29eb1,!![]);}catch(_0x52dfe4){return BPromise[_0x6a58('0x1f')](_0x52dfe4);}return _0x103ff9[_0x6a58('0x20')]();};}function saveUpdates(_0x16d03d,_0x42a93a){return function(_0x12cda3){if(_0x12cda3){return _0x12cda3[_0x6a58('0x21')](_0x16d03d)['then'](function(_0x4e9335){return _0x4e9335;});}return null;};}function removeEntity(_0x38aab6,_0x1c51ab){return function(_0x3aa374){if(_0x3aa374){return _0x3aa374[_0x6a58('0x22')]()['then'](function(){_0x38aab6['status'](0xcc)[_0x6a58('0x16')]();});}};}function handleEntityNotFound(_0x53452c,_0xe9beb1){return function(_0x36fa92){if(!_0x36fa92){_0x53452c[_0x6a58('0x14')](0x194);}return _0x36fa92;};}function handleError(_0xc19ea6,_0x5547ca){_0x5547ca=_0x5547ca||0x1f4;return function(_0x584b51){logger[_0x6a58('0x23')](_0x584b51[_0x6a58('0x24')]);if(_0x584b51[_0x6a58('0x25')]){delete _0x584b51['name'];}_0xc19ea6['status'](_0x5547ca)[_0x6a58('0x26')](_0x584b51);};}exports[_0x6a58('0x27')]=function(_0x3a4d8e,_0x38ba38){var _0x49ba02={},_0x2e2959={},_0x325050={'count':0x0,'rows':[]};var _0x290003=_[_0x6a58('0x28')](db[_0x6a58('0x29')][_0x6a58('0x2a')],function(_0x2904aa){return{'name':_0x2904aa['fieldName'],'type':_0x2904aa[_0x6a58('0x2b')][_0x6a58('0x2c')]};});_0x2e2959['model']=_['map'](_0x290003,_0x6a58('0x25'));_0x2e2959['query']=_[_0x6a58('0x2d')](_0x3a4d8e['query']);_0x2e2959['filters']=_[_0x6a58('0x2e')](_0x2e2959['model'],_0x2e2959['query']);_0x49ba02['attributes']=_['intersection'](_0x2e2959[_0x6a58('0x2f')],qs['fields'](_0x3a4d8e[_0x6a58('0x30')][_0x6a58('0x31')]));_0x49ba02[_0x6a58('0x32')]=_0x49ba02['attributes'][_0x6a58('0x33')]?_0x49ba02[_0x6a58('0x32')]:_0x2e2959['model'];if(!_0x3a4d8e['query'][_0x6a58('0x34')](_0x6a58('0x35'))){_0x49ba02['limit']=qs[_0x6a58('0x1a')](_0x3a4d8e[_0x6a58('0x30')][_0x6a58('0x1a')]);_0x49ba02[_0x6a58('0x18')]=qs[_0x6a58('0x18')](_0x3a4d8e[_0x6a58('0x30')][_0x6a58('0x18')]);}_0x49ba02[_0x6a58('0x36')]=qs['sort'](_0x3a4d8e[_0x6a58('0x30')][_0x6a58('0x37')]);_0x49ba02[_0x6a58('0x38')]=qs['filters'](_[_0x6a58('0x39')](_0x3a4d8e[_0x6a58('0x30')],_0x2e2959[_0x6a58('0x3a')]),_0x290003);if(_0x3a4d8e['query'][_0x6a58('0x3b')]){_0x49ba02[_0x6a58('0x38')]=_[_0x6a58('0x3c')](_0x49ba02[_0x6a58('0x38')],{'$or':_[_0x6a58('0x28')](_0x290003,function(_0x3431db){if(_0x3431db[_0x6a58('0x2b')]!==_0x6a58('0x3d')){var _0x2bf787={};_0x2bf787[_0x3431db[_0x6a58('0x25')]]={'$like':'%'+_0x3a4d8e['query'][_0x6a58('0x3b')]+'%'};return _0x2bf787;}})});}_0x49ba02=_[_0x6a58('0x3c')]({},_0x49ba02,_0x3a4d8e['options']);var _0x19bec3={'where':_0x49ba02[_0x6a58('0x38')]};return db[_0x6a58('0x29')][_0x6a58('0x1b')](_0x19bec3)[_0x6a58('0x3e')](function(_0x1b20a9){_0x325050[_0x6a58('0x1b')]=_0x1b20a9;if(_0x3a4d8e[_0x6a58('0x30')][_0x6a58('0x3f')]){_0x49ba02[_0x6a58('0x40')]=[{'all':!![]}];}return db[_0x6a58('0x29')]['findAll'](_0x49ba02);})['then'](function(_0x244264){_0x325050[_0x6a58('0x41')]=_0x244264;return _0x325050;})[_0x6a58('0x3e')](respondWithFilteredResult(_0x38ba38,_0x49ba02))[_0x6a58('0x42')](handleError(_0x38ba38,null));};exports[_0x6a58('0x43')]=function(_0x29191c,_0x55d049){var _0xb3af4b={'raw':!![],'where':{'id':_0x29191c[_0x6a58('0x44')]['id']}},_0x317210={};_0x317210[_0x6a58('0x2f')]=_[_0x6a58('0x2d')](db[_0x6a58('0x29')][_0x6a58('0x2a')]);_0x317210[_0x6a58('0x30')]=_[_0x6a58('0x2d')](_0x29191c['query']);_0x317210[_0x6a58('0x3a')]=_['intersection'](_0x317210[_0x6a58('0x2f')],_0x317210[_0x6a58('0x30')]);_0xb3af4b[_0x6a58('0x32')]=_[_0x6a58('0x2e')](_0x317210[_0x6a58('0x2f')],qs[_0x6a58('0x31')](_0x29191c[_0x6a58('0x30')]['fields']));_0xb3af4b[_0x6a58('0x32')]=_0xb3af4b[_0x6a58('0x32')][_0x6a58('0x33')]?_0xb3af4b['attributes']:_0x317210[_0x6a58('0x2f')];if(_0x29191c[_0x6a58('0x30')][_0x6a58('0x3f')]){_0xb3af4b[_0x6a58('0x40')]=[{'all':!![]}];}_0xb3af4b=_['merge']({},_0xb3af4b,_0x29191c[_0x6a58('0x45')]);return db['JscriptySessionReport'][_0x6a58('0x46')](_0xb3af4b)[_0x6a58('0x3e')](handleEntityNotFound(_0x55d049,null))['then'](respondWithResult(_0x55d049,null))['catch'](handleError(_0x55d049,null));};exports[_0x6a58('0x47')]=function(_0x20fe89,_0x347fae){return db[_0x6a58('0x29')][_0x6a58('0x47')](_0x20fe89[_0x6a58('0x48')],{})['then'](respondWithResult(_0x347fae,0xc9))['catch'](handleError(_0x347fae,null));};exports[_0x6a58('0x21')]=function(_0x823435,_0x3c210b){if(_0x823435['body']['id']){delete _0x823435[_0x6a58('0x48')]['id'];}return db['JscriptySessionReport'][_0x6a58('0x46')]({'where':{'id':_0x823435[_0x6a58('0x44')]['id']}})[_0x6a58('0x3e')](handleEntityNotFound(_0x3c210b,null))[_0x6a58('0x3e')](saveUpdates(_0x823435[_0x6a58('0x48')],null))[_0x6a58('0x3e')](respondWithResult(_0x3c210b,null))['catch'](handleError(_0x3c210b,null));};exports[_0x6a58('0x22')]=function(_0xf75d31,_0x101863){return db[_0x6a58('0x29')][_0x6a58('0x46')]({'where':{'id':_0xf75d31[_0x6a58('0x44')]['id']}})[_0x6a58('0x3e')](handleEntityNotFound(_0x101863,null))['then'](removeEntity(_0x101863,null))[_0x6a58('0x42')](handleError(_0x101863,null));};exports['describe']=function(_0x2fcb84,_0x1ac1c3){return db['JscriptySessionReport'][_0x6a58('0x49')]()[_0x6a58('0x3e')](respondWithResult(_0x1ac1c3,null))['catch'](handleError(_0x1ac1c3,null));};exports[_0x6a58('0x4a')]=function(_0x1280ed,_0x114b4c,_0xf74536){var _0x35f317={'raw':!![],'where':{}};var _0x7335a5={};var _0xefdef9={'count':0x0,'rows':[]};return db[_0x6a58('0x29')][_0x6a58('0x4b')]({'where':{'id':_0x1280ed[_0x6a58('0x44')]['id']}})[_0x6a58('0x3e')](handleEntityNotFound(_0x114b4c,null))[_0x6a58('0x3e')](function(_0x21f01f){if(_0x21f01f){_0x7335a5[_0x6a58('0x2f')]=_[_0x6a58('0x2d')](db[_0x6a58('0x4c')][_0x6a58('0x2a')]);_0x7335a5[_0x6a58('0x30')]=_[_0x6a58('0x2d')](_0x1280ed[_0x6a58('0x30')]);_0x7335a5[_0x6a58('0x3a')]=_['intersection'](_0x7335a5['model'],_0x7335a5[_0x6a58('0x30')]);_0x35f317['attributes']=_['intersection'](_0x7335a5[_0x6a58('0x2f')],qs[_0x6a58('0x31')](_0x1280ed[_0x6a58('0x30')]['fields']));_0x35f317['attributes']=_0x35f317[_0x6a58('0x32')][_0x6a58('0x33')]?_0x35f317[_0x6a58('0x32')]:_0x7335a5[_0x6a58('0x2f')];if(!_0x1280ed['query'][_0x6a58('0x34')](_0x6a58('0x35'))){_0x35f317['limit']=qs[_0x6a58('0x1a')](_0x1280ed[_0x6a58('0x30')]['limit']);_0x35f317[_0x6a58('0x18')]=qs[_0x6a58('0x18')](_0x1280ed['query']['offset']);}_0x35f317[_0x6a58('0x36')]=qs['sort'](_0x1280ed[_0x6a58('0x30')]['sort']);_0x35f317['where']=qs[_0x6a58('0x3a')](_[_0x6a58('0x39')](_0x1280ed[_0x6a58('0x30')],_0x7335a5['filters']));_0x35f317[_0x6a58('0x38')][_0x6a58('0x4d')]=_0x21f01f['id'];if(_0x1280ed[_0x6a58('0x30')][_0x6a58('0x3b')]){_0x35f317['where']=_[_0x6a58('0x3c')](_0x35f317[_0x6a58('0x38')],{'$or':_[_0x6a58('0x28')](_0x35f317[_0x6a58('0x32')],function(_0x476e90){var _0x57ad85={};_0x57ad85[_0x476e90]={'$like':'%'+_0x1280ed[_0x6a58('0x30')][_0x6a58('0x3b')]+'%'};return _0x57ad85;})});}_0x35f317=_[_0x6a58('0x3c')]({},_0x35f317,_0x1280ed[_0x6a58('0x45')]);return db[_0x6a58('0x4c')][_0x6a58('0x1b')]({'where':_0x35f317['where']})[_0x6a58('0x3e')](function(_0x5248f9){_0xefdef9['count']=_0x5248f9;if(_0x1280ed[_0x6a58('0x30')]['includeAll']){_0x35f317[_0x6a58('0x40')]=[{'all':!![]}];}return db[_0x6a58('0x4c')]['findAll'](_0x35f317);})[_0x6a58('0x3e')](function(_0x2b4082){_0xefdef9['rows']=_0x2b4082;return _0xefdef9;});}})[_0x6a58('0x3e')](respondWithFilteredResult(_0x114b4c,_0x35f317))['catch'](handleError(_0x114b4c,null));};