Built motion from commit ae138b72.|2.6.28
[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 _0x1e91=['send','index','map','JscriptySessionReport','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','count','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','describe','getQuestions','findOne','JscriptyQuestionReport','rawAttributes','SessionId','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','update','then','destroy','error','stack','name'];(function(_0x40ebff,_0x1dd15e){var _0x40122a=function(_0xae6174){while(--_0xae6174){_0x40ebff['push'](_0x40ebff['shift']());}};_0x40122a(++_0x1dd15e);}(_0x1e91,0x168));var _0x11e9=function(_0x2b5587,_0x2de0c0){_0x2b5587=_0x2b5587-0x0;var _0x317e3a=_0x1e91[_0x2b5587];return _0x317e3a;};'use strict';var emlformat=require(_0x11e9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x11e9('0x1'));var jsonpatch=require(_0x11e9('0x2'));var rp=require(_0x11e9('0x3'));var moment=require(_0x11e9('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x11e9('0x5'));var path=require(_0x11e9('0x6'));var sox=require(_0x11e9('0x7'));var csv=require(_0x11e9('0x8'));var ejs=require(_0x11e9('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x11e9('0xa'));var squel=require(_0x11e9('0xb'));var crypto=require('crypto');var jsforce=require(_0x11e9('0xc'));var deskjs=require(_0x11e9('0xd'));var toCsv=require(_0x11e9('0x8'));var querystring=require(_0x11e9('0xe'));var Papa=require(_0x11e9('0xf'));var Redis=require(_0x11e9('0x10'));var authService=require(_0x11e9('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x11e9('0x12'));var hardwareService=require(_0x11e9('0x13'));var logger=require(_0x11e9('0x14'))(_0x11e9('0x15'));var utils=require(_0x11e9('0x16'));var config=require(_0x11e9('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x11e9('0x18'))['db'];function respondWithStatusCode(_0x5ac226,_0x1aea3e){_0x1aea3e=_0x1aea3e||0xcc;return function(_0x1ef1ce){if(_0x1ef1ce){return _0x5ac226[_0x11e9('0x19')](_0x1aea3e);}return _0x5ac226[_0x11e9('0x1a')](_0x1aea3e)[_0x11e9('0x1b')]();};}function respondWithResult(_0x400078,_0x2a829b){_0x2a829b=_0x2a829b||0xc8;return function(_0x1d931a){if(_0x1d931a){return _0x400078[_0x11e9('0x1a')](_0x2a829b)[_0x11e9('0x1c')](_0x1d931a);}};}function respondWithFilteredResult(_0x11fec0,_0x5e9757){return function(_0x38f5d1){if(_0x38f5d1){var _0x5a8cbd=typeof _0x5e9757[_0x11e9('0x1d')]==='undefined'&&typeof _0x5e9757['limit']===_0x11e9('0x1e');var _0x2c01db=_0x38f5d1['count'];var _0x412e68=_0x5a8cbd?0x0:_0x5e9757[_0x11e9('0x1d')];var _0x3d92df=_0x5a8cbd?_0x38f5d1['count']:_0x5e9757[_0x11e9('0x1d')]+_0x5e9757[_0x11e9('0x1f')];var _0xe89191;if(_0x3d92df>=_0x2c01db){_0x3d92df=_0x2c01db;_0xe89191=0xc8;}else{_0xe89191=0xce;}_0x11fec0['status'](_0xe89191);return _0x11fec0[_0x11e9('0x20')](_0x11e9('0x21'),_0x412e68+'-'+_0x3d92df+'/'+_0x2c01db)[_0x11e9('0x1c')](_0x38f5d1);}return null;};}function patchUpdates(_0xdcf407){return function(_0x572e9f){try{jsonpatch['apply'](_0x572e9f,_0xdcf407,!![]);}catch(_0x483f8e){return BPromise['reject'](_0x483f8e);}return _0x572e9f['save']();};}function saveUpdates(_0x112479,_0x1ea50f){return function(_0x141322){if(_0x141322){return _0x141322[_0x11e9('0x22')](_0x112479)[_0x11e9('0x23')](function(_0x4e3a71){return _0x4e3a71;});}return null;};}function removeEntity(_0x4f5ae1,_0x2cd44b){return function(_0xf13fa7){if(_0xf13fa7){return _0xf13fa7[_0x11e9('0x24')]()[_0x11e9('0x23')](function(){_0x4f5ae1[_0x11e9('0x1a')](0xcc)[_0x11e9('0x1b')]();});}};}function handleEntityNotFound(_0x167e02,_0x15d1ed){return function(_0xf75817){if(!_0xf75817){_0x167e02[_0x11e9('0x19')](0x194);}return _0xf75817;};}function handleError(_0x410c27,_0x532b08){_0x532b08=_0x532b08||0x1f4;return function(_0x2bc9c9){logger[_0x11e9('0x25')](_0x2bc9c9[_0x11e9('0x26')]);if(_0x2bc9c9[_0x11e9('0x27')]){delete _0x2bc9c9[_0x11e9('0x27')];}_0x410c27[_0x11e9('0x1a')](_0x532b08)[_0x11e9('0x28')](_0x2bc9c9);};}exports[_0x11e9('0x29')]=function(_0x3ffa2d,_0x462366){var _0x3e8c02={},_0x586422={},_0xf293cc={'count':0x0,'rows':[]};var _0x2f02bb=_[_0x11e9('0x2a')](db[_0x11e9('0x2b')]['rawAttributes'],function(_0x245bb7){return{'name':_0x245bb7[_0x11e9('0x2c')],'type':_0x245bb7[_0x11e9('0x2d')]['key']};});_0x586422[_0x11e9('0x2e')]=_['map'](_0x2f02bb,_0x11e9('0x27'));_0x586422[_0x11e9('0x2f')]=_[_0x11e9('0x30')](_0x3ffa2d[_0x11e9('0x2f')]);_0x586422[_0x11e9('0x31')]=_[_0x11e9('0x32')](_0x586422[_0x11e9('0x2e')],_0x586422[_0x11e9('0x2f')]);_0x3e8c02[_0x11e9('0x33')]=_[_0x11e9('0x32')](_0x586422[_0x11e9('0x2e')],qs['fields'](_0x3ffa2d[_0x11e9('0x2f')][_0x11e9('0x34')]));_0x3e8c02[_0x11e9('0x33')]=_0x3e8c02[_0x11e9('0x33')]['length']?_0x3e8c02[_0x11e9('0x33')]:_0x586422[_0x11e9('0x2e')];if(!_0x3ffa2d['query'][_0x11e9('0x35')](_0x11e9('0x36'))){_0x3e8c02[_0x11e9('0x1f')]=qs[_0x11e9('0x1f')](_0x3ffa2d[_0x11e9('0x2f')][_0x11e9('0x1f')]);_0x3e8c02[_0x11e9('0x1d')]=qs['offset'](_0x3ffa2d[_0x11e9('0x2f')]['offset']);}_0x3e8c02[_0x11e9('0x37')]=qs[_0x11e9('0x38')](_0x3ffa2d[_0x11e9('0x2f')][_0x11e9('0x38')]);_0x3e8c02[_0x11e9('0x39')]=qs[_0x11e9('0x31')](_[_0x11e9('0x3a')](_0x3ffa2d[_0x11e9('0x2f')],_0x586422[_0x11e9('0x31')]),_0x2f02bb);if(_0x3ffa2d[_0x11e9('0x2f')]['filter']){_0x3e8c02[_0x11e9('0x39')]=_[_0x11e9('0x3b')](_0x3e8c02['where'],{'$or':_[_0x11e9('0x2a')](_0x2f02bb,function(_0x4dfa5e){if(_0x4dfa5e[_0x11e9('0x2d')]!=='VIRTUAL'){var _0x5321bd={};_0x5321bd[_0x4dfa5e[_0x11e9('0x27')]]={'$like':'%'+_0x3ffa2d['query'][_0x11e9('0x3c')]+'%'};return _0x5321bd;}})});}_0x3e8c02=_[_0x11e9('0x3b')]({},_0x3e8c02,_0x3ffa2d[_0x11e9('0x3d')]);var _0x916d52={'where':_0x3e8c02[_0x11e9('0x39')]};return db[_0x11e9('0x2b')][_0x11e9('0x3e')](_0x916d52)[_0x11e9('0x23')](function(_0x17bc75){_0xf293cc['count']=_0x17bc75;if(_0x3ffa2d[_0x11e9('0x2f')][_0x11e9('0x3f')]){_0x3e8c02[_0x11e9('0x40')]=[{'all':!![]}];}return db[_0x11e9('0x2b')][_0x11e9('0x41')](_0x3e8c02);})[_0x11e9('0x23')](function(_0x54af87){_0xf293cc[_0x11e9('0x42')]=_0x54af87;return _0xf293cc;})['then'](respondWithFilteredResult(_0x462366,_0x3e8c02))[_0x11e9('0x43')](handleError(_0x462366,null));};exports[_0x11e9('0x44')]=function(_0x368956,_0x3be318){var _0x3dc712={'raw':!![],'where':{'id':_0x368956[_0x11e9('0x45')]['id']}},_0x51a9a9={};_0x51a9a9['model']=_['keys'](db[_0x11e9('0x2b')]['rawAttributes']);_0x51a9a9[_0x11e9('0x2f')]=_['keys'](_0x368956['query']);_0x51a9a9[_0x11e9('0x31')]=_['intersection'](_0x51a9a9[_0x11e9('0x2e')],_0x51a9a9[_0x11e9('0x2f')]);_0x3dc712[_0x11e9('0x33')]=_[_0x11e9('0x32')](_0x51a9a9[_0x11e9('0x2e')],qs[_0x11e9('0x34')](_0x368956[_0x11e9('0x2f')]['fields']));_0x3dc712['attributes']=_0x3dc712[_0x11e9('0x33')][_0x11e9('0x46')]?_0x3dc712[_0x11e9('0x33')]:_0x51a9a9['model'];if(_0x368956[_0x11e9('0x2f')]['includeAll']){_0x3dc712[_0x11e9('0x40')]=[{'all':!![]}];}_0x3dc712=_[_0x11e9('0x3b')]({},_0x3dc712,_0x368956['options']);return db[_0x11e9('0x2b')][_0x11e9('0x47')](_0x3dc712)[_0x11e9('0x23')](handleEntityNotFound(_0x3be318,null))[_0x11e9('0x23')](respondWithResult(_0x3be318,null))[_0x11e9('0x43')](handleError(_0x3be318,null));};exports[_0x11e9('0x48')]=function(_0x1144ea,_0x55e0b8){return db[_0x11e9('0x2b')]['create'](_0x1144ea['body'],{})['then'](respondWithResult(_0x55e0b8,0xc9))[_0x11e9('0x43')](handleError(_0x55e0b8,null));};exports['update']=function(_0x35e3aa,_0x2c1e89){if(_0x35e3aa[_0x11e9('0x49')]['id']){delete _0x35e3aa[_0x11e9('0x49')]['id'];}return db[_0x11e9('0x2b')][_0x11e9('0x47')]({'where':{'id':_0x35e3aa[_0x11e9('0x45')]['id']}})[_0x11e9('0x23')](handleEntityNotFound(_0x2c1e89,null))[_0x11e9('0x23')](saveUpdates(_0x35e3aa['body'],null))[_0x11e9('0x23')](respondWithResult(_0x2c1e89,null))[_0x11e9('0x43')](handleError(_0x2c1e89,null));};exports[_0x11e9('0x24')]=function(_0x20c3ac,_0x33b7be){return db['JscriptySessionReport'][_0x11e9('0x47')]({'where':{'id':_0x20c3ac[_0x11e9('0x45')]['id']}})[_0x11e9('0x23')](handleEntityNotFound(_0x33b7be,null))[_0x11e9('0x23')](removeEntity(_0x33b7be,null))[_0x11e9('0x43')](handleError(_0x33b7be,null));};exports[_0x11e9('0x4a')]=function(_0x1feb6e,_0x16e6e2){return db[_0x11e9('0x2b')][_0x11e9('0x4a')]()[_0x11e9('0x23')](respondWithResult(_0x16e6e2,null))['catch'](handleError(_0x16e6e2,null));};exports[_0x11e9('0x4b')]=function(_0xf1461a,_0x434155,_0x44392f){var _0xbec6c2={'raw':!![],'where':{}};var _0x2ae6e4={};var _0x5cc014={'count':0x0,'rows':[]};return db['JscriptySessionReport'][_0x11e9('0x4c')]({'where':{'id':_0xf1461a[_0x11e9('0x45')]['id']}})[_0x11e9('0x23')](handleEntityNotFound(_0x434155,null))[_0x11e9('0x23')](function(_0x533daa){if(_0x533daa){_0x2ae6e4[_0x11e9('0x2e')]=_['keys'](db[_0x11e9('0x4d')][_0x11e9('0x4e')]);_0x2ae6e4[_0x11e9('0x2f')]=_[_0x11e9('0x30')](_0xf1461a[_0x11e9('0x2f')]);_0x2ae6e4[_0x11e9('0x31')]=_['intersection'](_0x2ae6e4[_0x11e9('0x2e')],_0x2ae6e4[_0x11e9('0x2f')]);_0xbec6c2[_0x11e9('0x33')]=_[_0x11e9('0x32')](_0x2ae6e4[_0x11e9('0x2e')],qs[_0x11e9('0x34')](_0xf1461a['query'][_0x11e9('0x34')]));_0xbec6c2[_0x11e9('0x33')]=_0xbec6c2['attributes']['length']?_0xbec6c2['attributes']:_0x2ae6e4[_0x11e9('0x2e')];if(!_0xf1461a[_0x11e9('0x2f')]['hasOwnProperty'](_0x11e9('0x36'))){_0xbec6c2[_0x11e9('0x1f')]=qs[_0x11e9('0x1f')](_0xf1461a[_0x11e9('0x2f')][_0x11e9('0x1f')]);_0xbec6c2[_0x11e9('0x1d')]=qs[_0x11e9('0x1d')](_0xf1461a[_0x11e9('0x2f')][_0x11e9('0x1d')]);}_0xbec6c2[_0x11e9('0x37')]=qs[_0x11e9('0x38')](_0xf1461a[_0x11e9('0x2f')][_0x11e9('0x38')]);_0xbec6c2[_0x11e9('0x39')]=qs['filters'](_['pick'](_0xf1461a[_0x11e9('0x2f')],_0x2ae6e4[_0x11e9('0x31')]));_0xbec6c2['where'][_0x11e9('0x4f')]=_0x533daa['id'];if(_0xf1461a['query'][_0x11e9('0x3c')]){_0xbec6c2[_0x11e9('0x39')]=_['merge'](_0xbec6c2[_0x11e9('0x39')],{'$or':_[_0x11e9('0x2a')](_0xbec6c2['attributes'],function(_0x3c480a){var _0x58f4a5={};_0x58f4a5[_0x3c480a]={'$like':'%'+_0xf1461a[_0x11e9('0x2f')]['filter']+'%'};return _0x58f4a5;})});}_0xbec6c2=_[_0x11e9('0x3b')]({},_0xbec6c2,_0xf1461a[_0x11e9('0x3d')]);return db[_0x11e9('0x4d')][_0x11e9('0x3e')]({'where':_0xbec6c2['where']})[_0x11e9('0x23')](function(_0x579776){_0x5cc014[_0x11e9('0x3e')]=_0x579776;if(_0xf1461a['query'][_0x11e9('0x3f')]){_0xbec6c2[_0x11e9('0x40')]=[{'all':!![]}];}return db[_0x11e9('0x4d')][_0x11e9('0x41')](_0xbec6c2);})['then'](function(_0x4d5297){_0x5cc014['rows']=_0x4d5297;return _0x5cc014;});}})[_0x11e9('0x23')](respondWithFilteredResult(_0x434155,_0xbec6c2))[_0x11e9('0x43')](handleError(_0x434155,null));};