a55b7a3e5b3c126120c61dcc71f4314bac1059c2
[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 _0x908c=['attributes','fields','length','nolimit','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','merge','find','create','body','update','describe','getQuestions','findOne','JscriptyQuestionReport','order','SessionId','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','stack','name','send','index','map','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection'];(function(_0x33bfb1,_0x552295){var _0x48549d=function(_0x24cd32){while(--_0x24cd32){_0x33bfb1['push'](_0x33bfb1['shift']());}};_0x48549d(++_0x552295);}(_0x908c,0x160));var _0xc908=function(_0x2ba966,_0x353ad1){_0x2ba966=_0x2ba966-0x0;var _0x59305c=_0x908c[_0x2ba966];return _0x59305c;};'use strict';var pdf=require(_0xc908('0x0'));var emlformat=require(_0xc908('0x1'));var rimraf=require(_0xc908('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc908('0x3'));var rp=require(_0xc908('0x4'));var moment=require(_0xc908('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc908('0x6'));var path=require(_0xc908('0x7'));var sox=require('sox');var csv=require(_0xc908('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xc908('0x9'));var squel=require(_0xc908('0xa'));var crypto=require(_0xc908('0xb'));var jsforce=require(_0xc908('0xc'));var deskjs=require(_0xc908('0xd'));var toCsv=require(_0xc908('0x8'));var querystring=require(_0xc908('0xe'));var Papa=require(_0xc908('0xf'));var Redis=require(_0xc908('0x10'));var authService=require(_0xc908('0x11'));var qs=require(_0xc908('0x12'));var as=require(_0xc908('0x13'));var hardwareService=require(_0xc908('0x14'));var logger=require(_0xc908('0x15'))(_0xc908('0x16'));var utils=require('../../config/utils');var config=require(_0xc908('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1b22b7,_0x436880){_0x436880=_0x436880||0xcc;return function(_0x14d763){if(_0x14d763){return _0x1b22b7[_0xc908('0x18')](_0x436880);}return _0x1b22b7[_0xc908('0x19')](_0x436880)[_0xc908('0x1a')]();};}function respondWithResult(_0x3902f9,_0x1f3f9a){_0x1f3f9a=_0x1f3f9a||0xc8;return function(_0x4016dc){if(_0x4016dc){return _0x3902f9[_0xc908('0x19')](_0x1f3f9a)[_0xc908('0x1b')](_0x4016dc);}};}function respondWithFilteredResult(_0x4474b1,_0x59e9d0){return function(_0x1673a7){if(_0x1673a7){var _0x135c66=_0x1673a7[_0xc908('0x1c')],_0x2fa773=_0x59e9d0[_0xc908('0x1d')],_0x23bd3f=_0x59e9d0['offset']+_0x59e9d0[_0xc908('0x1e')],_0x4f27c2;if(_0x23bd3f>=_0x135c66){_0x23bd3f=_0x135c66;_0x4f27c2=0xc8;}else{_0x4f27c2=0xce;}_0x4474b1[_0xc908('0x19')](_0x4f27c2);return _0x4474b1[_0xc908('0x1f')](_0xc908('0x20'),_0x2fa773+'-'+_0x23bd3f+'/'+_0x135c66)[_0xc908('0x1b')](_0x1673a7);}return null;};}function patchUpdates(_0x345ed7){return function(_0x2d59f0){try{jsonpatch[_0xc908('0x21')](_0x2d59f0,_0x345ed7,!![]);}catch(_0x38bfa8){return BPromise[_0xc908('0x22')](_0x38bfa8);}return _0x2d59f0[_0xc908('0x23')]();};}function saveUpdates(_0x10425d,_0x548a75){return function(_0x5f0d2f){if(_0x5f0d2f){return _0x5f0d2f['update'](_0x10425d)[_0xc908('0x24')](function(_0x4d0566){return _0x4d0566;});}return null;};}function removeEntity(_0x10cb19,_0x492a0b){return function(_0x50ee3c){if(_0x50ee3c){return _0x50ee3c[_0xc908('0x25')]()[_0xc908('0x24')](function(){_0x10cb19[_0xc908('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x15c80f,_0x5ad3a2){return function(_0x1a0b86){if(!_0x1a0b86){_0x15c80f[_0xc908('0x18')](0x194);}return _0x1a0b86;};}function handleError(_0x3db1c1,_0x8293a8){_0x8293a8=_0x8293a8||0x1f4;return function(_0x5629db){logger['error'](_0x5629db[_0xc908('0x26')]);if(_0x5629db['name']){delete _0x5629db[_0xc908('0x27')];}_0x3db1c1[_0xc908('0x19')](_0x8293a8)[_0xc908('0x28')](_0x5629db);};}exports[_0xc908('0x29')]=function(_0x5d7771,_0x155f7d){var _0x28f5a3={},_0x58d0fc={},_0x40e4ce={'count':0x0,'rows':[]};var _0x379351=_[_0xc908('0x2a')](db[_0xc908('0x2b')][_0xc908('0x2c')],function(_0xa2fd0c){return{'name':_0xa2fd0c[_0xc908('0x2d')],'type':_0xa2fd0c[_0xc908('0x2e')][_0xc908('0x2f')]};});_0x58d0fc[_0xc908('0x30')]=_[_0xc908('0x2a')](_0x379351,_0xc908('0x27'));_0x58d0fc[_0xc908('0x31')]=_[_0xc908('0x32')](_0x5d7771[_0xc908('0x31')]);_0x58d0fc[_0xc908('0x33')]=_[_0xc908('0x34')](_0x58d0fc[_0xc908('0x30')],_0x58d0fc['query']);_0x28f5a3[_0xc908('0x35')]=_[_0xc908('0x34')](_0x58d0fc[_0xc908('0x30')],qs[_0xc908('0x36')](_0x5d7771[_0xc908('0x31')][_0xc908('0x36')]));_0x28f5a3[_0xc908('0x35')]=_0x28f5a3[_0xc908('0x35')][_0xc908('0x37')]?_0x28f5a3[_0xc908('0x35')]:_0x58d0fc[_0xc908('0x30')];if(!_0x5d7771[_0xc908('0x31')]['hasOwnProperty'](_0xc908('0x38'))){_0x28f5a3[_0xc908('0x1e')]=qs['limit'](_0x5d7771[_0xc908('0x31')]['limit']);_0x28f5a3[_0xc908('0x1d')]=qs['offset'](_0x5d7771[_0xc908('0x31')][_0xc908('0x1d')]);}_0x28f5a3['order']=qs[_0xc908('0x39')](_0x5d7771[_0xc908('0x31')]['sort']);_0x28f5a3[_0xc908('0x3a')]=qs[_0xc908('0x33')](_[_0xc908('0x3b')](_0x5d7771[_0xc908('0x31')],_0x58d0fc['filters']),_0x379351);if(_0x5d7771[_0xc908('0x31')][_0xc908('0x3c')]){_0x28f5a3[_0xc908('0x3a')]=_['merge'](_0x28f5a3[_0xc908('0x3a')],{'$or':_[_0xc908('0x2a')](_0x379351,function(_0x227344){if(_0x227344[_0xc908('0x2e')]!==_0xc908('0x3d')){var _0x565100={};_0x565100[_0x227344[_0xc908('0x27')]]={'$like':'%'+_0x5d7771[_0xc908('0x31')][_0xc908('0x3c')]+'%'};return _0x565100;}})});}_0x28f5a3=_['merge']({},_0x28f5a3,_0x5d7771[_0xc908('0x3e')]);var _0x1ce712={'where':_0x28f5a3[_0xc908('0x3a')]};return db['JscriptySessionReport']['count'](_0x1ce712)[_0xc908('0x24')](function(_0x26844e){_0x40e4ce[_0xc908('0x1c')]=_0x26844e;if(_0x5d7771[_0xc908('0x31')][_0xc908('0x3f')]){_0x28f5a3[_0xc908('0x40')]=[{'all':!![]}];}return db[_0xc908('0x2b')][_0xc908('0x41')](_0x28f5a3);})[_0xc908('0x24')](function(_0x582710){_0x40e4ce[_0xc908('0x42')]=_0x582710;return _0x40e4ce;})[_0xc908('0x24')](respondWithFilteredResult(_0x155f7d,_0x28f5a3))[_0xc908('0x43')](handleError(_0x155f7d,null));};exports[_0xc908('0x44')]=function(_0x1e49ad,_0x3b1cc2){var _0x59a638={'raw':!![],'where':{'id':_0x1e49ad[_0xc908('0x45')]['id']}},_0x3bfe77={};_0x3bfe77['model']=_[_0xc908('0x32')](db['JscriptySessionReport'][_0xc908('0x2c')]);_0x3bfe77[_0xc908('0x31')]=_[_0xc908('0x32')](_0x1e49ad[_0xc908('0x31')]);_0x3bfe77[_0xc908('0x33')]=_[_0xc908('0x34')](_0x3bfe77[_0xc908('0x30')],_0x3bfe77[_0xc908('0x31')]);_0x59a638[_0xc908('0x35')]=_[_0xc908('0x34')](_0x3bfe77[_0xc908('0x30')],qs[_0xc908('0x36')](_0x1e49ad[_0xc908('0x31')][_0xc908('0x36')]));_0x59a638['attributes']=_0x59a638[_0xc908('0x35')][_0xc908('0x37')]?_0x59a638[_0xc908('0x35')]:_0x3bfe77[_0xc908('0x30')];if(_0x1e49ad['query'][_0xc908('0x3f')]){_0x59a638[_0xc908('0x40')]=[{'all':!![]}];}_0x59a638=_[_0xc908('0x46')]({},_0x59a638,_0x1e49ad['options']);return db['JscriptySessionReport'][_0xc908('0x47')](_0x59a638)[_0xc908('0x24')](handleEntityNotFound(_0x3b1cc2,null))[_0xc908('0x24')](respondWithResult(_0x3b1cc2,null))[_0xc908('0x43')](handleError(_0x3b1cc2,null));};exports[_0xc908('0x48')]=function(_0x5794c6,_0x13f970){return db[_0xc908('0x2b')][_0xc908('0x48')](_0x5794c6[_0xc908('0x49')],{})[_0xc908('0x24')](respondWithResult(_0x13f970,0xc9))[_0xc908('0x43')](handleError(_0x13f970,null));};exports[_0xc908('0x4a')]=function(_0x140416,_0x3522ba){if(_0x140416[_0xc908('0x49')]['id']){delete _0x140416['body']['id'];}return db[_0xc908('0x2b')][_0xc908('0x47')]({'where':{'id':_0x140416[_0xc908('0x45')]['id']}})[_0xc908('0x24')](handleEntityNotFound(_0x3522ba,null))['then'](saveUpdates(_0x140416['body'],null))['then'](respondWithResult(_0x3522ba,null))[_0xc908('0x43')](handleError(_0x3522ba,null));};exports[_0xc908('0x25')]=function(_0xbc11a3,_0x451884){return db[_0xc908('0x2b')][_0xc908('0x47')]({'where':{'id':_0xbc11a3[_0xc908('0x45')]['id']}})[_0xc908('0x24')](handleEntityNotFound(_0x451884,null))['then'](removeEntity(_0x451884,null))[_0xc908('0x43')](handleError(_0x451884,null));};exports[_0xc908('0x4b')]=function(_0x5e616c,_0x1af475){return db[_0xc908('0x2b')][_0xc908('0x4b')]()[_0xc908('0x24')](respondWithResult(_0x1af475,null))[_0xc908('0x43')](handleError(_0x1af475,null));};exports[_0xc908('0x4c')]=function(_0x87e05e,_0x5a735e,_0x2726f4){var _0x3e6525={'raw':!![],'where':{}};var _0x15c028={};var _0x10bce8={'count':0x0,'rows':[]};return db[_0xc908('0x2b')][_0xc908('0x4d')]({'where':{'id':_0x87e05e[_0xc908('0x45')]['id']}})[_0xc908('0x24')](handleEntityNotFound(_0x5a735e,null))['then'](function(_0x2d2b86){if(_0x2d2b86){_0x15c028['model']=_[_0xc908('0x32')](db[_0xc908('0x4e')][_0xc908('0x2c')]);_0x15c028[_0xc908('0x31')]=_[_0xc908('0x32')](_0x87e05e['query']);_0x15c028[_0xc908('0x33')]=_['intersection'](_0x15c028[_0xc908('0x30')],_0x15c028[_0xc908('0x31')]);_0x3e6525['attributes']=_[_0xc908('0x34')](_0x15c028[_0xc908('0x30')],qs[_0xc908('0x36')](_0x87e05e[_0xc908('0x31')]['fields']));_0x3e6525[_0xc908('0x35')]=_0x3e6525[_0xc908('0x35')][_0xc908('0x37')]?_0x3e6525[_0xc908('0x35')]:_0x15c028[_0xc908('0x30')];if(!_0x87e05e['query']['hasOwnProperty'](_0xc908('0x38'))){_0x3e6525[_0xc908('0x1e')]=qs['limit'](_0x87e05e[_0xc908('0x31')][_0xc908('0x1e')]);_0x3e6525[_0xc908('0x1d')]=qs[_0xc908('0x1d')](_0x87e05e['query'][_0xc908('0x1d')]);}_0x3e6525[_0xc908('0x4f')]=qs[_0xc908('0x39')](_0x87e05e[_0xc908('0x31')][_0xc908('0x39')]);_0x3e6525[_0xc908('0x3a')]=qs[_0xc908('0x33')](_[_0xc908('0x3b')](_0x87e05e[_0xc908('0x31')],_0x15c028[_0xc908('0x33')]));_0x3e6525[_0xc908('0x3a')][_0xc908('0x50')]=_0x2d2b86['id'];if(_0x87e05e[_0xc908('0x31')][_0xc908('0x3c')]){_0x3e6525['where']=_['merge'](_0x3e6525['where'],{'$or':_[_0xc908('0x2a')](_0x3e6525[_0xc908('0x35')],function(_0x40a317){var _0x45f8e8={};_0x45f8e8[_0x40a317]={'$like':'%'+_0x87e05e[_0xc908('0x31')][_0xc908('0x3c')]+'%'};return _0x45f8e8;})});}_0x3e6525=_['merge']({},_0x3e6525,_0x87e05e[_0xc908('0x3e')]);return db[_0xc908('0x4e')][_0xc908('0x1c')]({'where':_0x3e6525[_0xc908('0x3a')]})[_0xc908('0x24')](function(_0x4debae){_0x10bce8[_0xc908('0x1c')]=_0x4debae;if(_0x87e05e[_0xc908('0x31')][_0xc908('0x3f')]){_0x3e6525[_0xc908('0x40')]=[{'all':!![]}];}return db[_0xc908('0x4e')][_0xc908('0x41')](_0x3e6525);})[_0xc908('0x24')](function(_0x53a686){_0x10bce8['rows']=_0x53a686;return _0x10bce8;});}})[_0xc908('0x24')](respondWithFilteredResult(_0x5a735e,_0x3e6525))[_0xc908('0x43')](handleError(_0x5a735e,null));};