Built motion from commit 14588770.|2.5.38
[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 _0x5321=['moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','apply','save','then','destroy','end','name','send','index','JscriptySessionReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','params','options','find','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','order','SessionId','eml-format','zip-dir','fast-json-patch'];(function(_0x526a17,_0x2e3d03){var _0x2ca9c4=function(_0x3c4bf4){while(--_0x3c4bf4){_0x526a17['push'](_0x526a17['shift']());}};_0x2ca9c4(++_0x2e3d03);}(_0x5321,0x12d));var _0x1532=function(_0x145ae3,_0x166a63){_0x145ae3=_0x145ae3-0x0;var _0x4efcb6=_0x5321[_0x145ae3];return _0x4efcb6;};'use strict';var emlformat=require(_0x1532('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1532('0x1'));var jsonpatch=require(_0x1532('0x2'));var rp=require('request-promise');var moment=require(_0x1532('0x3'));var BPromise=require(_0x1532('0x4'));var Mustache=require(_0x1532('0x5'));var util=require(_0x1532('0x6'));var path=require(_0x1532('0x7'));var sox=require(_0x1532('0x8'));var csv=require(_0x1532('0x9'));var ejs=require(_0x1532('0xa'));var fs=require('fs');var fs_extra=require(_0x1532('0xb'));var _=require('lodash');var squel=require(_0x1532('0xc'));var crypto=require(_0x1532('0xd'));var jsforce=require(_0x1532('0xe'));var deskjs=require(_0x1532('0xf'));var toCsv=require(_0x1532('0x9'));var querystring=require(_0x1532('0x10'));var Papa=require('papaparse');var Redis=require(_0x1532('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x1532('0x12'));var as=require(_0x1532('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1532('0x14'));var utils=require('../../config/utils');var config=require(_0x1532('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1532('0x16'))['db'];function respondWithStatusCode(_0x499410,_0x170307){_0x170307=_0x170307||0xcc;return function(_0x4e4afd){if(_0x4e4afd){return _0x499410[_0x1532('0x17')](_0x170307);}return _0x499410[_0x1532('0x18')](_0x170307)['end']();};}function respondWithResult(_0x1a0c99,_0x8688b6){_0x8688b6=_0x8688b6||0xc8;return function(_0x42f677){if(_0x42f677){return _0x1a0c99[_0x1532('0x18')](_0x8688b6)[_0x1532('0x19')](_0x42f677);}};}function respondWithFilteredResult(_0x41d708,_0x5b30bb){return function(_0x1dd250){if(_0x1dd250){var _0x3d4e8c=typeof _0x5b30bb[_0x1532('0x1a')]===_0x1532('0x1b')&&typeof _0x5b30bb[_0x1532('0x1c')]===_0x1532('0x1b');var _0x181c50=_0x1dd250['count'];var _0x1e6263=_0x3d4e8c?0x0:_0x5b30bb[_0x1532('0x1a')];var _0x5a47f7=_0x3d4e8c?_0x1dd250[_0x1532('0x1d')]:_0x5b30bb[_0x1532('0x1a')]+_0x5b30bb[_0x1532('0x1c')];var _0x4e228b;if(_0x5a47f7>=_0x181c50){_0x5a47f7=_0x181c50;_0x4e228b=0xc8;}else{_0x4e228b=0xce;}_0x41d708[_0x1532('0x18')](_0x4e228b);return _0x41d708['set']('Content-Range',_0x1e6263+'-'+_0x5a47f7+'/'+_0x181c50)[_0x1532('0x19')](_0x1dd250);}return null;};}function patchUpdates(_0x4f31ab){return function(_0x2f964a){try{jsonpatch[_0x1532('0x1e')](_0x2f964a,_0x4f31ab,!![]);}catch(_0x42a0b1){return BPromise['reject'](_0x42a0b1);}return _0x2f964a[_0x1532('0x1f')]();};}function saveUpdates(_0x3034b3,_0x576bf6){return function(_0x1d070d){if(_0x1d070d){return _0x1d070d['update'](_0x3034b3)[_0x1532('0x20')](function(_0x11a0d5){return _0x11a0d5;});}return null;};}function removeEntity(_0x4353c8,_0x4ce468){return function(_0x2590c0){if(_0x2590c0){return _0x2590c0[_0x1532('0x21')]()[_0x1532('0x20')](function(){_0x4353c8[_0x1532('0x18')](0xcc)[_0x1532('0x22')]();});}};}function handleEntityNotFound(_0x30263a,_0x448cbf){return function(_0x4d7eca){if(!_0x4d7eca){_0x30263a[_0x1532('0x17')](0x194);}return _0x4d7eca;};}function handleError(_0x2d8d84,_0x56b8be){_0x56b8be=_0x56b8be||0x1f4;return function(_0x194bc3){logger['error'](_0x194bc3['stack']);if(_0x194bc3[_0x1532('0x23')]){delete _0x194bc3[_0x1532('0x23')];}_0x2d8d84[_0x1532('0x18')](_0x56b8be)[_0x1532('0x24')](_0x194bc3);};}exports[_0x1532('0x25')]=function(_0x4564ef,_0x409dda){var _0x5373f4={},_0x2f328c={},_0x157753={'count':0x0,'rows':[]};var _0x28ce81=_['map'](db[_0x1532('0x26')][_0x1532('0x27')],function(_0xf0ed0d){return{'name':_0xf0ed0d[_0x1532('0x28')],'type':_0xf0ed0d[_0x1532('0x29')][_0x1532('0x2a')]};});_0x2f328c[_0x1532('0x2b')]=_[_0x1532('0x2c')](_0x28ce81,_0x1532('0x23'));_0x2f328c[_0x1532('0x2d')]=_[_0x1532('0x2e')](_0x4564ef[_0x1532('0x2d')]);_0x2f328c[_0x1532('0x2f')]=_['intersection'](_0x2f328c['model'],_0x2f328c[_0x1532('0x2d')]);_0x5373f4[_0x1532('0x30')]=_[_0x1532('0x31')](_0x2f328c[_0x1532('0x2b')],qs[_0x1532('0x32')](_0x4564ef['query'][_0x1532('0x32')]));_0x5373f4['attributes']=_0x5373f4[_0x1532('0x30')][_0x1532('0x33')]?_0x5373f4[_0x1532('0x30')]:_0x2f328c['model'];if(!_0x4564ef['query'][_0x1532('0x34')](_0x1532('0x35'))){_0x5373f4[_0x1532('0x1c')]=qs[_0x1532('0x1c')](_0x4564ef[_0x1532('0x2d')][_0x1532('0x1c')]);_0x5373f4['offset']=qs[_0x1532('0x1a')](_0x4564ef[_0x1532('0x2d')][_0x1532('0x1a')]);}_0x5373f4['order']=qs[_0x1532('0x36')](_0x4564ef[_0x1532('0x2d')][_0x1532('0x36')]);_0x5373f4[_0x1532('0x37')]=qs['filters'](_[_0x1532('0x38')](_0x4564ef[_0x1532('0x2d')],_0x2f328c[_0x1532('0x2f')]),_0x28ce81);if(_0x4564ef[_0x1532('0x2d')][_0x1532('0x39')]){_0x5373f4['where']=_[_0x1532('0x3a')](_0x5373f4[_0x1532('0x37')],{'$or':_['map'](_0x28ce81,function(_0x205d1f){if(_0x205d1f[_0x1532('0x29')]!==_0x1532('0x3b')){var _0x40e779={};_0x40e779[_0x205d1f[_0x1532('0x23')]]={'$like':'%'+_0x4564ef[_0x1532('0x2d')][_0x1532('0x39')]+'%'};return _0x40e779;}})});}_0x5373f4=_[_0x1532('0x3a')]({},_0x5373f4,_0x4564ef['options']);var _0x4713e1={'where':_0x5373f4[_0x1532('0x37')]};return db[_0x1532('0x26')][_0x1532('0x1d')](_0x4713e1)['then'](function(_0x4ebf90){_0x157753[_0x1532('0x1d')]=_0x4ebf90;if(_0x4564ef[_0x1532('0x2d')][_0x1532('0x3c')]){_0x5373f4[_0x1532('0x3d')]=[{'all':!![]}];}return db[_0x1532('0x26')][_0x1532('0x3e')](_0x5373f4);})[_0x1532('0x20')](function(_0x77c572){_0x157753[_0x1532('0x3f')]=_0x77c572;return _0x157753;})['then'](respondWithFilteredResult(_0x409dda,_0x5373f4))[_0x1532('0x40')](handleError(_0x409dda,null));};exports['show']=function(_0x2d5465,_0x35de91){var _0x29d13d={'raw':!![],'where':{'id':_0x2d5465[_0x1532('0x41')]['id']}},_0x434fc1={};_0x434fc1[_0x1532('0x2b')]=_[_0x1532('0x2e')](db[_0x1532('0x26')][_0x1532('0x27')]);_0x434fc1[_0x1532('0x2d')]=_[_0x1532('0x2e')](_0x2d5465[_0x1532('0x2d')]);_0x434fc1[_0x1532('0x2f')]=_['intersection'](_0x434fc1['model'],_0x434fc1['query']);_0x29d13d[_0x1532('0x30')]=_[_0x1532('0x31')](_0x434fc1[_0x1532('0x2b')],qs[_0x1532('0x32')](_0x2d5465[_0x1532('0x2d')][_0x1532('0x32')]));_0x29d13d['attributes']=_0x29d13d[_0x1532('0x30')]['length']?_0x29d13d['attributes']:_0x434fc1['model'];if(_0x2d5465[_0x1532('0x2d')][_0x1532('0x3c')]){_0x29d13d[_0x1532('0x3d')]=[{'all':!![]}];}_0x29d13d=_[_0x1532('0x3a')]({},_0x29d13d,_0x2d5465[_0x1532('0x42')]);return db[_0x1532('0x26')][_0x1532('0x43')](_0x29d13d)[_0x1532('0x20')](handleEntityNotFound(_0x35de91,null))['then'](respondWithResult(_0x35de91,null))[_0x1532('0x40')](handleError(_0x35de91,null));};exports[_0x1532('0x44')]=function(_0x25f80a,_0x491be1){return db[_0x1532('0x26')][_0x1532('0x44')](_0x25f80a[_0x1532('0x45')],{})[_0x1532('0x20')](respondWithResult(_0x491be1,0xc9))[_0x1532('0x40')](handleError(_0x491be1,null));};exports['update']=function(_0x159966,_0x434b17){if(_0x159966[_0x1532('0x45')]['id']){delete _0x159966[_0x1532('0x45')]['id'];}return db[_0x1532('0x26')]['find']({'where':{'id':_0x159966[_0x1532('0x41')]['id']}})['then'](handleEntityNotFound(_0x434b17,null))[_0x1532('0x20')](saveUpdates(_0x159966[_0x1532('0x45')],null))['then'](respondWithResult(_0x434b17,null))['catch'](handleError(_0x434b17,null));};exports[_0x1532('0x21')]=function(_0x42ac52,_0x5ec369){return db['JscriptySessionReport'][_0x1532('0x43')]({'where':{'id':_0x42ac52['params']['id']}})['then'](handleEntityNotFound(_0x5ec369,null))[_0x1532('0x20')](removeEntity(_0x5ec369,null))[_0x1532('0x40')](handleError(_0x5ec369,null));};exports[_0x1532('0x46')]=function(_0x585d31,_0x52cc54){return db[_0x1532('0x26')][_0x1532('0x46')]()[_0x1532('0x20')](respondWithResult(_0x52cc54,null))[_0x1532('0x40')](handleError(_0x52cc54,null));};exports[_0x1532('0x47')]=function(_0x3a5359,_0x4d28ce,_0x327d71){var _0x2c0ba9={'raw':!![],'where':{}};var _0x418e19={};var _0x9e4a4b={'count':0x0,'rows':[]};return db[_0x1532('0x26')][_0x1532('0x48')]({'where':{'id':_0x3a5359[_0x1532('0x41')]['id']}})[_0x1532('0x20')](handleEntityNotFound(_0x4d28ce,null))['then'](function(_0x2144e6){if(_0x2144e6){_0x418e19[_0x1532('0x2b')]=_['keys'](db[_0x1532('0x49')][_0x1532('0x27')]);_0x418e19[_0x1532('0x2d')]=_['keys'](_0x3a5359[_0x1532('0x2d')]);_0x418e19['filters']=_['intersection'](_0x418e19[_0x1532('0x2b')],_0x418e19[_0x1532('0x2d')]);_0x2c0ba9[_0x1532('0x30')]=_[_0x1532('0x31')](_0x418e19['model'],qs['fields'](_0x3a5359['query']['fields']));_0x2c0ba9['attributes']=_0x2c0ba9[_0x1532('0x30')]['length']?_0x2c0ba9['attributes']:_0x418e19[_0x1532('0x2b')];if(!_0x3a5359['query']['hasOwnProperty']('nolimit')){_0x2c0ba9[_0x1532('0x1c')]=qs[_0x1532('0x1c')](_0x3a5359['query'][_0x1532('0x1c')]);_0x2c0ba9['offset']=qs[_0x1532('0x1a')](_0x3a5359[_0x1532('0x2d')][_0x1532('0x1a')]);}_0x2c0ba9[_0x1532('0x4a')]=qs['sort'](_0x3a5359[_0x1532('0x2d')][_0x1532('0x36')]);_0x2c0ba9[_0x1532('0x37')]=qs[_0x1532('0x2f')](_[_0x1532('0x38')](_0x3a5359[_0x1532('0x2d')],_0x418e19['filters']));_0x2c0ba9['where'][_0x1532('0x4b')]=_0x2144e6['id'];if(_0x3a5359['query'][_0x1532('0x39')]){_0x2c0ba9['where']=_[_0x1532('0x3a')](_0x2c0ba9[_0x1532('0x37')],{'$or':_[_0x1532('0x2c')](_0x2c0ba9[_0x1532('0x30')],function(_0x5ea2de){var _0x1e06ec={};_0x1e06ec[_0x5ea2de]={'$like':'%'+_0x3a5359[_0x1532('0x2d')][_0x1532('0x39')]+'%'};return _0x1e06ec;})});}_0x2c0ba9=_['merge']({},_0x2c0ba9,_0x3a5359[_0x1532('0x42')]);return db['JscriptyQuestionReport'][_0x1532('0x1d')]({'where':_0x2c0ba9['where']})[_0x1532('0x20')](function(_0x345c8e){_0x9e4a4b[_0x1532('0x1d')]=_0x345c8e;if(_0x3a5359[_0x1532('0x2d')][_0x1532('0x3c')]){_0x2c0ba9[_0x1532('0x3d')]=[{'all':!![]}];}return db[_0x1532('0x49')][_0x1532('0x3e')](_0x2c0ba9);})['then'](function(_0x59972f){_0x9e4a4b[_0x1532('0x3f')]=_0x59972f;return _0x9e4a4b;});}})['then'](respondWithFilteredResult(_0x4d28ce,_0x2c0ba9))[_0x1532('0x40')](handleError(_0x4d28ce,null));};