fe7496154a4bcd8d9bc7056efb03fc78800fc7d3
[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 _0x208e=['fieldName','type','name','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','show','params','keys','find','catch','create','body','update','describe','getQuestions','findOne','order','SessionId','JscriptyQuestionReport','rows','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','status','end','offset','limit','undefined','count','set','json','apply','save','destroy','then','sendStatus','index','map','JscriptySessionReport','rawAttributes'];(function(_0x503cd5,_0x57774a){var _0x1fdf1e=function(_0x5222cc){while(--_0x5222cc){_0x503cd5['push'](_0x503cd5['shift']());}};_0x1fdf1e(++_0x57774a);}(_0x208e,0x112));var _0xe208=function(_0xee1ec9,_0x2f0599){_0xee1ec9=_0xee1ec9-0x0;var _0x102a53=_0x208e[_0xee1ec9];return _0x102a53;};'use strict';var emlformat=require(_0xe208('0x0'));var rimraf=require(_0xe208('0x1'));var zipdir=require(_0xe208('0x2'));var jsonpatch=require(_0xe208('0x3'));var rp=require(_0xe208('0x4'));var moment=require(_0xe208('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xe208('0x6'));var util=require(_0xe208('0x7'));var path=require(_0xe208('0x8'));var sox=require(_0xe208('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe208('0xa'));var squel=require(_0xe208('0xb'));var crypto=require(_0xe208('0xc'));var jsforce=require(_0xe208('0xd'));var deskjs=require(_0xe208('0xe'));var toCsv=require(_0xe208('0xf'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe208('0x10'));var authService=require(_0xe208('0x11'));var qs=require(_0xe208('0x12'));var as=require(_0xe208('0x13'));var hardwareService=require(_0xe208('0x14'));var logger=require(_0xe208('0x15'))('api');var utils=require(_0xe208('0x16'));var config=require(_0xe208('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xe208('0x18'))['db'];function respondWithStatusCode(_0x3b4100,_0x319abb){_0x319abb=_0x319abb||0xcc;return function(_0x28bcde){if(_0x28bcde){return _0x3b4100['sendStatus'](_0x319abb);}return _0x3b4100[_0xe208('0x19')](_0x319abb)[_0xe208('0x1a')]();};}function respondWithResult(_0x46edfb,_0x2effeb){_0x2effeb=_0x2effeb||0xc8;return function(_0x985345){if(_0x985345){return _0x46edfb[_0xe208('0x19')](_0x2effeb)['json'](_0x985345);}};}function respondWithFilteredResult(_0x1e962b,_0x5bc8cd){return function(_0xa064e4){if(_0xa064e4){var _0x56778e=typeof _0x5bc8cd[_0xe208('0x1b')]==='undefined'&&typeof _0x5bc8cd[_0xe208('0x1c')]===_0xe208('0x1d');var _0x5e46de=_0xa064e4[_0xe208('0x1e')];var _0x449470=_0x56778e?0x0:_0x5bc8cd[_0xe208('0x1b')];var _0x1ca03b=_0x56778e?_0xa064e4[_0xe208('0x1e')]:_0x5bc8cd[_0xe208('0x1b')]+_0x5bc8cd[_0xe208('0x1c')];var _0x29037f;if(_0x1ca03b>=_0x5e46de){_0x1ca03b=_0x5e46de;_0x29037f=0xc8;}else{_0x29037f=0xce;}_0x1e962b['status'](_0x29037f);return _0x1e962b[_0xe208('0x1f')]('Content-Range',_0x449470+'-'+_0x1ca03b+'/'+_0x5e46de)[_0xe208('0x20')](_0xa064e4);}return null;};}function patchUpdates(_0x1e8847){return function(_0x3cd54a){try{jsonpatch[_0xe208('0x21')](_0x3cd54a,_0x1e8847,!![]);}catch(_0x424b25){return BPromise['reject'](_0x424b25);}return _0x3cd54a[_0xe208('0x22')]();};}function saveUpdates(_0x272010,_0x2b10d5){return function(_0x56d092){if(_0x56d092){return _0x56d092['update'](_0x272010)['then'](function(_0x5a84fe){return _0x5a84fe;});}return null;};}function removeEntity(_0x528872,_0x3b30a2){return function(_0x379b54){if(_0x379b54){return _0x379b54[_0xe208('0x23')]()[_0xe208('0x24')](function(){_0x528872[_0xe208('0x19')](0xcc)[_0xe208('0x1a')]();});}};}function handleEntityNotFound(_0x38873a,_0x202e0f){return function(_0x4f4221){if(!_0x4f4221){_0x38873a[_0xe208('0x25')](0x194);}return _0x4f4221;};}function handleError(_0x4079e3,_0x7ce011){_0x7ce011=_0x7ce011||0x1f4;return function(_0xb955c7){logger['error'](_0xb955c7['stack']);if(_0xb955c7['name']){delete _0xb955c7['name'];}_0x4079e3[_0xe208('0x19')](_0x7ce011)['send'](_0xb955c7);};}exports[_0xe208('0x26')]=function(_0x146f41,_0x257118){var _0x1315af={},_0x488ba9={},_0xfec8f6={'count':0x0,'rows':[]};var _0x1f8ac2=_[_0xe208('0x27')](db[_0xe208('0x28')][_0xe208('0x29')],function(_0x17a3ec){return{'name':_0x17a3ec[_0xe208('0x2a')],'type':_0x17a3ec[_0xe208('0x2b')]['key']};});_0x488ba9['model']=_[_0xe208('0x27')](_0x1f8ac2,_0xe208('0x2c'));_0x488ba9[_0xe208('0x2d')]=_['keys'](_0x146f41['query']);_0x488ba9[_0xe208('0x2e')]=_[_0xe208('0x2f')](_0x488ba9[_0xe208('0x30')],_0x488ba9['query']);_0x1315af[_0xe208('0x31')]=_['intersection'](_0x488ba9[_0xe208('0x30')],qs[_0xe208('0x32')](_0x146f41[_0xe208('0x2d')][_0xe208('0x32')]));_0x1315af[_0xe208('0x31')]=_0x1315af['attributes'][_0xe208('0x33')]?_0x1315af[_0xe208('0x31')]:_0x488ba9[_0xe208('0x30')];if(!_0x146f41[_0xe208('0x2d')][_0xe208('0x34')](_0xe208('0x35'))){_0x1315af[_0xe208('0x1c')]=qs[_0xe208('0x1c')](_0x146f41['query'][_0xe208('0x1c')]);_0x1315af['offset']=qs[_0xe208('0x1b')](_0x146f41[_0xe208('0x2d')]['offset']);}_0x1315af['order']=qs['sort'](_0x146f41[_0xe208('0x2d')][_0xe208('0x36')]);_0x1315af[_0xe208('0x37')]=qs['filters'](_[_0xe208('0x38')](_0x146f41[_0xe208('0x2d')],_0x488ba9[_0xe208('0x2e')]),_0x1f8ac2);if(_0x146f41[_0xe208('0x2d')]['filter']){_0x1315af['where']=_[_0xe208('0x39')](_0x1315af['where'],{'$or':_[_0xe208('0x27')](_0x1f8ac2,function(_0x5dc4a5){if(_0x5dc4a5[_0xe208('0x2b')]!==_0xe208('0x3a')){var _0x504ca0={};_0x504ca0[_0x5dc4a5['name']]={'$like':'%'+_0x146f41[_0xe208('0x2d')][_0xe208('0x3b')]+'%'};return _0x504ca0;}})});}_0x1315af=_[_0xe208('0x39')]({},_0x1315af,_0x146f41[_0xe208('0x3c')]);var _0x537305={'where':_0x1315af[_0xe208('0x37')]};return db[_0xe208('0x28')][_0xe208('0x1e')](_0x537305)[_0xe208('0x24')](function(_0x17034c){_0xfec8f6['count']=_0x17034c;if(_0x146f41[_0xe208('0x2d')][_0xe208('0x3d')]){_0x1315af[_0xe208('0x3e')]=[{'all':!![]}];}return db[_0xe208('0x28')][_0xe208('0x3f')](_0x1315af);})[_0xe208('0x24')](function(_0x32888c){_0xfec8f6['rows']=_0x32888c;return _0xfec8f6;})[_0xe208('0x24')](respondWithFilteredResult(_0x257118,_0x1315af))['catch'](handleError(_0x257118,null));};exports[_0xe208('0x40')]=function(_0x4b5ba6,_0x4887bd){var _0x33d159={'raw':!![],'where':{'id':_0x4b5ba6[_0xe208('0x41')]['id']}},_0x348640={};_0x348640[_0xe208('0x30')]=_[_0xe208('0x42')](db[_0xe208('0x28')][_0xe208('0x29')]);_0x348640[_0xe208('0x2d')]=_[_0xe208('0x42')](_0x4b5ba6['query']);_0x348640[_0xe208('0x2e')]=_[_0xe208('0x2f')](_0x348640['model'],_0x348640[_0xe208('0x2d')]);_0x33d159['attributes']=_[_0xe208('0x2f')](_0x348640[_0xe208('0x30')],qs[_0xe208('0x32')](_0x4b5ba6[_0xe208('0x2d')][_0xe208('0x32')]));_0x33d159[_0xe208('0x31')]=_0x33d159[_0xe208('0x31')]['length']?_0x33d159[_0xe208('0x31')]:_0x348640[_0xe208('0x30')];if(_0x4b5ba6[_0xe208('0x2d')][_0xe208('0x3d')]){_0x33d159[_0xe208('0x3e')]=[{'all':!![]}];}_0x33d159=_[_0xe208('0x39')]({},_0x33d159,_0x4b5ba6[_0xe208('0x3c')]);return db[_0xe208('0x28')][_0xe208('0x43')](_0x33d159)['then'](handleEntityNotFound(_0x4887bd,null))[_0xe208('0x24')](respondWithResult(_0x4887bd,null))[_0xe208('0x44')](handleError(_0x4887bd,null));};exports[_0xe208('0x45')]=function(_0x4d30eb,_0x1d0c0){return db[_0xe208('0x28')][_0xe208('0x45')](_0x4d30eb[_0xe208('0x46')],{})[_0xe208('0x24')](respondWithResult(_0x1d0c0,0xc9))[_0xe208('0x44')](handleError(_0x1d0c0,null));};exports[_0xe208('0x47')]=function(_0x2fc7c2,_0x29b64e){if(_0x2fc7c2[_0xe208('0x46')]['id']){delete _0x2fc7c2['body']['id'];}return db[_0xe208('0x28')]['find']({'where':{'id':_0x2fc7c2[_0xe208('0x41')]['id']}})[_0xe208('0x24')](handleEntityNotFound(_0x29b64e,null))[_0xe208('0x24')](saveUpdates(_0x2fc7c2[_0xe208('0x46')],null))[_0xe208('0x24')](respondWithResult(_0x29b64e,null))['catch'](handleError(_0x29b64e,null));};exports[_0xe208('0x23')]=function(_0xa6efd1,_0x3372a8){return db[_0xe208('0x28')][_0xe208('0x43')]({'where':{'id':_0xa6efd1['params']['id']}})[_0xe208('0x24')](handleEntityNotFound(_0x3372a8,null))[_0xe208('0x24')](removeEntity(_0x3372a8,null))[_0xe208('0x44')](handleError(_0x3372a8,null));};exports['describe']=function(_0x3d74f4,_0x26309f){return db[_0xe208('0x28')][_0xe208('0x48')]()[_0xe208('0x24')](respondWithResult(_0x26309f,null))['catch'](handleError(_0x26309f,null));};exports[_0xe208('0x49')]=function(_0x1ab44d,_0x4446de,_0x2d0d64){var _0x3de9f0={'raw':!![],'where':{}};var _0x3ae450={};var _0x5d853c={'count':0x0,'rows':[]};return db[_0xe208('0x28')][_0xe208('0x4a')]({'where':{'id':_0x1ab44d['params']['id']}})[_0xe208('0x24')](handleEntityNotFound(_0x4446de,null))[_0xe208('0x24')](function(_0x530c51){if(_0x530c51){_0x3ae450['model']=_[_0xe208('0x42')](db['JscriptyQuestionReport'][_0xe208('0x29')]);_0x3ae450['query']=_[_0xe208('0x42')](_0x1ab44d['query']);_0x3ae450[_0xe208('0x2e')]=_[_0xe208('0x2f')](_0x3ae450[_0xe208('0x30')],_0x3ae450['query']);_0x3de9f0[_0xe208('0x31')]=_[_0xe208('0x2f')](_0x3ae450['model'],qs[_0xe208('0x32')](_0x1ab44d[_0xe208('0x2d')]['fields']));_0x3de9f0[_0xe208('0x31')]=_0x3de9f0[_0xe208('0x31')][_0xe208('0x33')]?_0x3de9f0['attributes']:_0x3ae450[_0xe208('0x30')];if(!_0x1ab44d[_0xe208('0x2d')][_0xe208('0x34')](_0xe208('0x35'))){_0x3de9f0[_0xe208('0x1c')]=qs['limit'](_0x1ab44d[_0xe208('0x2d')][_0xe208('0x1c')]);_0x3de9f0[_0xe208('0x1b')]=qs[_0xe208('0x1b')](_0x1ab44d[_0xe208('0x2d')][_0xe208('0x1b')]);}_0x3de9f0[_0xe208('0x4b')]=qs[_0xe208('0x36')](_0x1ab44d[_0xe208('0x2d')][_0xe208('0x36')]);_0x3de9f0[_0xe208('0x37')]=qs[_0xe208('0x2e')](_[_0xe208('0x38')](_0x1ab44d['query'],_0x3ae450[_0xe208('0x2e')]));_0x3de9f0[_0xe208('0x37')][_0xe208('0x4c')]=_0x530c51['id'];if(_0x1ab44d[_0xe208('0x2d')][_0xe208('0x3b')]){_0x3de9f0[_0xe208('0x37')]=_[_0xe208('0x39')](_0x3de9f0[_0xe208('0x37')],{'$or':_[_0xe208('0x27')](_0x3de9f0['attributes'],function(_0x29933c){var _0x313e6a={};_0x313e6a[_0x29933c]={'$like':'%'+_0x1ab44d[_0xe208('0x2d')][_0xe208('0x3b')]+'%'};return _0x313e6a;})});}_0x3de9f0=_[_0xe208('0x39')]({},_0x3de9f0,_0x1ab44d[_0xe208('0x3c')]);return db[_0xe208('0x4d')]['count']({'where':_0x3de9f0[_0xe208('0x37')]})[_0xe208('0x24')](function(_0x418682){_0x5d853c[_0xe208('0x1e')]=_0x418682;if(_0x1ab44d[_0xe208('0x2d')][_0xe208('0x3d')]){_0x3de9f0[_0xe208('0x3e')]=[{'all':!![]}];}return db[_0xe208('0x4d')][_0xe208('0x3f')](_0x3de9f0);})[_0xe208('0x24')](function(_0x1b165a){_0x5d853c[_0xe208('0x4e')]=_0x1b165a;return _0x5d853c;});}})[_0xe208('0x24')](respondWithFilteredResult(_0x4446de,_0x3de9f0))[_0xe208('0x44')](handleError(_0x4446de,null));};