7218ae25b74c515a9a339f06ece1ff7721ca7650
[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 _0x529a=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','end','error','stack','name','index','map','JscriptySessionReport','rawAttributes','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','show','find','create','body','destroy','describe','getQuestions','findOne','params','SessionId','JscriptyQuestionReport','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service'];(function(_0x431d2b,_0x7a3416){var _0x7e3d8e=function(_0x3e969b){while(--_0x3e969b){_0x431d2b['push'](_0x431d2b['shift']());}};_0x7e3d8e(++_0x7a3416);}(_0x529a,0x18c));var _0xa529=function(_0x56740a,_0x568894){_0x56740a=_0x56740a-0x0;var _0x257144=_0x529a[_0x56740a];return _0x257144;};'use strict';var emlformat=require(_0xa529('0x0'));var rimraf=require(_0xa529('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa529('0x2'));var rp=require('request-promise');var moment=require(_0xa529('0x3'));var BPromise=require(_0xa529('0x4'));var Mustache=require(_0xa529('0x5'));var util=require(_0xa529('0x6'));var path=require(_0xa529('0x7'));var sox=require(_0xa529('0x8'));var csv=require('to-csv');var ejs=require(_0xa529('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa529('0xa'));var squel=require(_0xa529('0xb'));var crypto=require(_0xa529('0xc'));var jsforce=require(_0xa529('0xd'));var deskjs=require(_0xa529('0xe'));var toCsv=require(_0xa529('0xf'));var querystring=require('querystring');var Papa=require(_0xa529('0x10'));var Redis=require(_0xa529('0x11'));var authService=require(_0xa529('0x12'));var qs=require(_0xa529('0x13'));var as=require(_0xa529('0x14'));var hardwareService=require(_0xa529('0x15'));var logger=require(_0xa529('0x16'))(_0xa529('0x17'));var utils=require(_0xa529('0x18'));var config=require(_0xa529('0x19'));var licenseUtil=require(_0xa529('0x1a'));var db=require(_0xa529('0x1b'))['db'];function respondWithStatusCode(_0x53d918,_0x2cbc5a){_0x2cbc5a=_0x2cbc5a||0xcc;return function(_0x27081c){if(_0x27081c){return _0x53d918[_0xa529('0x1c')](_0x2cbc5a);}return _0x53d918[_0xa529('0x1d')](_0x2cbc5a)['end']();};}function respondWithResult(_0x25e217,_0x2e3514){_0x2e3514=_0x2e3514||0xc8;return function(_0x22a108){if(_0x22a108){return _0x25e217[_0xa529('0x1d')](_0x2e3514)[_0xa529('0x1e')](_0x22a108);}};}function respondWithFilteredResult(_0x5e8b19,_0x1a9e81){return function(_0x5e1289){if(_0x5e1289){var _0x8dc0b4=typeof _0x1a9e81['offset']===_0xa529('0x1f')&&typeof _0x1a9e81[_0xa529('0x20')]===_0xa529('0x1f');var _0xfe0707=_0x5e1289['count'];var _0xf97b0f=_0x8dc0b4?0x0:_0x1a9e81['offset'];var _0x3a7670=_0x8dc0b4?_0x5e1289[_0xa529('0x21')]:_0x1a9e81[_0xa529('0x22')]+_0x1a9e81['limit'];var _0xf2639e;if(_0x3a7670>=_0xfe0707){_0x3a7670=_0xfe0707;_0xf2639e=0xc8;}else{_0xf2639e=0xce;}_0x5e8b19[_0xa529('0x1d')](_0xf2639e);return _0x5e8b19[_0xa529('0x23')](_0xa529('0x24'),_0xf97b0f+'-'+_0x3a7670+'/'+_0xfe0707)['json'](_0x5e1289);}return null;};}function patchUpdates(_0x439eec){return function(_0x39834e){try{jsonpatch[_0xa529('0x25')](_0x39834e,_0x439eec,!![]);}catch(_0x2a5358){return BPromise[_0xa529('0x26')](_0x2a5358);}return _0x39834e['save']();};}function saveUpdates(_0x3c2d99,_0x2b1acb){return function(_0x1ff3ae){if(_0x1ff3ae){return _0x1ff3ae[_0xa529('0x27')](_0x3c2d99)['then'](function(_0x3fc02a){return _0x3fc02a;});}return null;};}function removeEntity(_0x4637ed,_0x12b65b){return function(_0x2bbdf9){if(_0x2bbdf9){return _0x2bbdf9['destroy']()[_0xa529('0x28')](function(){_0x4637ed[_0xa529('0x1d')](0xcc)[_0xa529('0x29')]();});}};}function handleEntityNotFound(_0x29ee78,_0x5586ba){return function(_0x50b829){if(!_0x50b829){_0x29ee78['sendStatus'](0x194);}return _0x50b829;};}function handleError(_0x59a5f0,_0x33cd01){_0x33cd01=_0x33cd01||0x1f4;return function(_0x43422f){logger[_0xa529('0x2a')](_0x43422f[_0xa529('0x2b')]);if(_0x43422f['name']){delete _0x43422f[_0xa529('0x2c')];}_0x59a5f0['status'](_0x33cd01)['send'](_0x43422f);};}exports[_0xa529('0x2d')]=function(_0xd0e857,_0x47f0f1){var _0x534ff1={},_0x1d5e44={},_0x29b407={'count':0x0,'rows':[]};var _0x216686=_[_0xa529('0x2e')](db[_0xa529('0x2f')][_0xa529('0x30')],function(_0x1abb64){return{'name':_0x1abb64['fieldName'],'type':_0x1abb64['type']['key']};});_0x1d5e44[_0xa529('0x31')]=_['map'](_0x216686,'name');_0x1d5e44[_0xa529('0x32')]=_[_0xa529('0x33')](_0xd0e857[_0xa529('0x32')]);_0x1d5e44[_0xa529('0x34')]=_[_0xa529('0x35')](_0x1d5e44[_0xa529('0x31')],_0x1d5e44[_0xa529('0x32')]);_0x534ff1[_0xa529('0x36')]=_[_0xa529('0x35')](_0x1d5e44[_0xa529('0x31')],qs[_0xa529('0x37')](_0xd0e857[_0xa529('0x32')][_0xa529('0x37')]));_0x534ff1['attributes']=_0x534ff1[_0xa529('0x36')][_0xa529('0x38')]?_0x534ff1[_0xa529('0x36')]:_0x1d5e44[_0xa529('0x31')];if(!_0xd0e857[_0xa529('0x32')][_0xa529('0x39')](_0xa529('0x3a'))){_0x534ff1[_0xa529('0x20')]=qs[_0xa529('0x20')](_0xd0e857['query'][_0xa529('0x20')]);_0x534ff1[_0xa529('0x22')]=qs[_0xa529('0x22')](_0xd0e857[_0xa529('0x32')]['offset']);}_0x534ff1[_0xa529('0x3b')]=qs[_0xa529('0x3c')](_0xd0e857[_0xa529('0x32')][_0xa529('0x3c')]);_0x534ff1[_0xa529('0x3d')]=qs[_0xa529('0x34')](_[_0xa529('0x3e')](_0xd0e857['query'],_0x1d5e44['filters']),_0x216686);if(_0xd0e857['query'][_0xa529('0x3f')]){_0x534ff1[_0xa529('0x3d')]=_[_0xa529('0x40')](_0x534ff1[_0xa529('0x3d')],{'$or':_['map'](_0x216686,function(_0x557395){if(_0x557395[_0xa529('0x41')]!=='VIRTUAL'){var _0x27e8e5={};_0x27e8e5[_0x557395[_0xa529('0x2c')]]={'$like':'%'+_0xd0e857['query']['filter']+'%'};return _0x27e8e5;}})});}_0x534ff1=_['merge']({},_0x534ff1,_0xd0e857[_0xa529('0x42')]);var _0x480e6a={'where':_0x534ff1['where']};return db['JscriptySessionReport'][_0xa529('0x21')](_0x480e6a)[_0xa529('0x28')](function(_0x2bea44){_0x29b407['count']=_0x2bea44;if(_0xd0e857[_0xa529('0x32')][_0xa529('0x43')]){_0x534ff1[_0xa529('0x44')]=[{'all':!![]}];}return db[_0xa529('0x2f')][_0xa529('0x45')](_0x534ff1);})[_0xa529('0x28')](function(_0x296c8c){_0x29b407[_0xa529('0x46')]=_0x296c8c;return _0x29b407;})[_0xa529('0x28')](respondWithFilteredResult(_0x47f0f1,_0x534ff1))[_0xa529('0x47')](handleError(_0x47f0f1,null));};exports[_0xa529('0x48')]=function(_0xb9c02c,_0x507f15){var _0x105053={'raw':!![],'where':{'id':_0xb9c02c['params']['id']}},_0x336d1f={};_0x336d1f[_0xa529('0x31')]=_[_0xa529('0x33')](db[_0xa529('0x2f')][_0xa529('0x30')]);_0x336d1f[_0xa529('0x32')]=_[_0xa529('0x33')](_0xb9c02c['query']);_0x336d1f[_0xa529('0x34')]=_[_0xa529('0x35')](_0x336d1f[_0xa529('0x31')],_0x336d1f[_0xa529('0x32')]);_0x105053[_0xa529('0x36')]=_[_0xa529('0x35')](_0x336d1f['model'],qs[_0xa529('0x37')](_0xb9c02c[_0xa529('0x32')][_0xa529('0x37')]));_0x105053[_0xa529('0x36')]=_0x105053[_0xa529('0x36')][_0xa529('0x38')]?_0x105053[_0xa529('0x36')]:_0x336d1f[_0xa529('0x31')];if(_0xb9c02c[_0xa529('0x32')][_0xa529('0x43')]){_0x105053[_0xa529('0x44')]=[{'all':!![]}];}_0x105053=_[_0xa529('0x40')]({},_0x105053,_0xb9c02c[_0xa529('0x42')]);return db[_0xa529('0x2f')][_0xa529('0x49')](_0x105053)[_0xa529('0x28')](handleEntityNotFound(_0x507f15,null))[_0xa529('0x28')](respondWithResult(_0x507f15,null))[_0xa529('0x47')](handleError(_0x507f15,null));};exports[_0xa529('0x4a')]=function(_0x5cb907,_0x3073ac){return db[_0xa529('0x2f')][_0xa529('0x4a')](_0x5cb907[_0xa529('0x4b')],{})[_0xa529('0x28')](respondWithResult(_0x3073ac,0xc9))[_0xa529('0x47')](handleError(_0x3073ac,null));};exports[_0xa529('0x27')]=function(_0x19f471,_0x1e21c3){if(_0x19f471[_0xa529('0x4b')]['id']){delete _0x19f471[_0xa529('0x4b')]['id'];}return db[_0xa529('0x2f')][_0xa529('0x49')]({'where':{'id':_0x19f471['params']['id']}})['then'](handleEntityNotFound(_0x1e21c3,null))[_0xa529('0x28')](saveUpdates(_0x19f471[_0xa529('0x4b')],null))[_0xa529('0x28')](respondWithResult(_0x1e21c3,null))[_0xa529('0x47')](handleError(_0x1e21c3,null));};exports[_0xa529('0x4c')]=function(_0x558c38,_0xf1e993){return db[_0xa529('0x2f')]['find']({'where':{'id':_0x558c38['params']['id']}})[_0xa529('0x28')](handleEntityNotFound(_0xf1e993,null))[_0xa529('0x28')](removeEntity(_0xf1e993,null))['catch'](handleError(_0xf1e993,null));};exports[_0xa529('0x4d')]=function(_0xdcc58f,_0x5c028b){return db[_0xa529('0x2f')][_0xa529('0x4d')]()[_0xa529('0x28')](respondWithResult(_0x5c028b,null))['catch'](handleError(_0x5c028b,null));};exports[_0xa529('0x4e')]=function(_0x38165b,_0x1453b0,_0x358f3c){var _0x334783={'raw':!![],'where':{}};var _0x56634d={};var _0xf021be={'count':0x0,'rows':[]};return db['JscriptySessionReport'][_0xa529('0x4f')]({'where':{'id':_0x38165b[_0xa529('0x50')]['id']}})[_0xa529('0x28')](handleEntityNotFound(_0x1453b0,null))[_0xa529('0x28')](function(_0x25e8d7){if(_0x25e8d7){_0x56634d[_0xa529('0x31')]=_[_0xa529('0x33')](db['JscriptyQuestionReport'][_0xa529('0x30')]);_0x56634d[_0xa529('0x32')]=_[_0xa529('0x33')](_0x38165b[_0xa529('0x32')]);_0x56634d[_0xa529('0x34')]=_[_0xa529('0x35')](_0x56634d[_0xa529('0x31')],_0x56634d['query']);_0x334783[_0xa529('0x36')]=_[_0xa529('0x35')](_0x56634d[_0xa529('0x31')],qs[_0xa529('0x37')](_0x38165b[_0xa529('0x32')][_0xa529('0x37')]));_0x334783[_0xa529('0x36')]=_0x334783['attributes'][_0xa529('0x38')]?_0x334783[_0xa529('0x36')]:_0x56634d['model'];if(!_0x38165b[_0xa529('0x32')]['hasOwnProperty']('nolimit')){_0x334783[_0xa529('0x20')]=qs[_0xa529('0x20')](_0x38165b['query'][_0xa529('0x20')]);_0x334783[_0xa529('0x22')]=qs[_0xa529('0x22')](_0x38165b[_0xa529('0x32')][_0xa529('0x22')]);}_0x334783['order']=qs['sort'](_0x38165b['query'][_0xa529('0x3c')]);_0x334783['where']=qs[_0xa529('0x34')](_[_0xa529('0x3e')](_0x38165b['query'],_0x56634d[_0xa529('0x34')]));_0x334783[_0xa529('0x3d')][_0xa529('0x51')]=_0x25e8d7['id'];if(_0x38165b[_0xa529('0x32')][_0xa529('0x3f')]){_0x334783['where']=_[_0xa529('0x40')](_0x334783[_0xa529('0x3d')],{'$or':_[_0xa529('0x2e')](_0x334783[_0xa529('0x36')],function(_0x36c680){var _0x2cb836={};_0x2cb836[_0x36c680]={'$like':'%'+_0x38165b[_0xa529('0x32')][_0xa529('0x3f')]+'%'};return _0x2cb836;})});}_0x334783=_[_0xa529('0x40')]({},_0x334783,_0x38165b[_0xa529('0x42')]);return db[_0xa529('0x52')][_0xa529('0x21')]({'where':_0x334783[_0xa529('0x3d')]})[_0xa529('0x28')](function(_0x2b687b){_0xf021be['count']=_0x2b687b;if(_0x38165b[_0xa529('0x32')]['includeAll']){_0x334783['include']=[{'all':!![]}];}return db[_0xa529('0x52')][_0xa529('0x45')](_0x334783);})[_0xa529('0x28')](function(_0x5c4722){_0xf021be[_0xa529('0x46')]=_0x5c4722;return _0xf021be;});}})['then'](respondWithFilteredResult(_0x1453b0,_0x334783))[_0xa529('0x47')](handleError(_0x1453b0,null));};