8df13834ac7ae21aafecc67f7059188929f1453d
[motion2.git] / server / api / voiceQueueReport / voiceQueueReport.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 _0x098e=['nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','catch','params','find','create','body','destroy','describe','getVoiceQueuesReport','findAll','rows','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./voiceQueueReport.socket','register','sendStatus','status','json','offset','undefined','limit','Content-Range','apply','reject','save','then','end','error','name','map','VoiceQueueReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x551dc7,_0x395b19){var _0x1df540=function(_0x5a96a3){while(--_0x5a96a3){_0x551dc7['push'](_0x551dc7['shift']());}};_0x1df540(++_0x395b19);}(_0x098e,0x149));var _0xe098=function(_0x1cd483,_0x58be50){_0x1cd483=_0x1cd483-0x0;var _0xa8bc0=_0x098e[_0x1cd483];return _0xa8bc0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe098('0x0'));var jsonpatch=require(_0xe098('0x1'));var rp=require(_0xe098('0x2'));var moment=require(_0xe098('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xe098('0x4'));var sox=require(_0xe098('0x5'));var csv=require(_0xe098('0x6'));var ejs=require(_0xe098('0x7'));var fs=require('fs');var fs_extra=require(_0xe098('0x8'));var _=require(_0xe098('0x9'));var squel=require('squel');var crypto=require(_0xe098('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xe098('0xb'));var toCsv=require(_0xe098('0x6'));var querystring=require(_0xe098('0xc'));var Papa=require('papaparse');var Redis=require(_0xe098('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xe098('0xe'));var as=require(_0xe098('0xf'));var hardwareService=require(_0xe098('0x10'));var logger=require(_0xe098('0x11'))(_0xe098('0x12'));var utils=require('../../config/utils');var config=require(_0xe098('0x13'));var licenseUtil=require(_0xe098('0x14'));var db=require(_0xe098('0x15'))['db'];config[_0xe098('0x16')]=_[_0xe098('0x17')](config[_0xe098('0x16')],{'host':_0xe098('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe098('0x16')]));require(_0xe098('0x19'))[_0xe098('0x1a')](socket);function respondWithStatusCode(_0x14aea1,_0x1f2682){_0x1f2682=_0x1f2682||0xcc;return function(_0x5b7291){if(_0x5b7291){return _0x14aea1[_0xe098('0x1b')](_0x1f2682);}return _0x14aea1[_0xe098('0x1c')](_0x1f2682)['end']();};}function respondWithResult(_0x2e5ef0,_0x2afcfa){_0x2afcfa=_0x2afcfa||0xc8;return function(_0x5f4da3){if(_0x5f4da3){return _0x2e5ef0[_0xe098('0x1c')](_0x2afcfa)[_0xe098('0x1d')](_0x5f4da3);}};}function respondWithFilteredResult(_0x3fe8cd,_0x176e7d){return function(_0x12f608){if(_0x12f608){var _0x1b1c1a=typeof _0x176e7d[_0xe098('0x1e')]===_0xe098('0x1f')&&typeof _0x176e7d['limit']==='undefined';var _0x125f6c=_0x12f608['count'];var _0x39ba93=_0x1b1c1a?0x0:_0x176e7d[_0xe098('0x1e')];var _0x44e1de=_0x1b1c1a?_0x12f608['count']:_0x176e7d[_0xe098('0x1e')]+_0x176e7d[_0xe098('0x20')];var _0x166c5b;if(_0x44e1de>=_0x125f6c){_0x44e1de=_0x125f6c;_0x166c5b=0xc8;}else{_0x166c5b=0xce;}_0x3fe8cd['status'](_0x166c5b);return _0x3fe8cd['set'](_0xe098('0x21'),_0x39ba93+'-'+_0x44e1de+'/'+_0x125f6c)[_0xe098('0x1d')](_0x12f608);}return null;};}function patchUpdates(_0x5c0e86){return function(_0x4b4253){try{jsonpatch[_0xe098('0x22')](_0x4b4253,_0x5c0e86,!![]);}catch(_0x4f11e9){return BPromise[_0xe098('0x23')](_0x4f11e9);}return _0x4b4253[_0xe098('0x24')]();};}function saveUpdates(_0xaba7a5,_0x25754d){return function(_0x2f27ea){if(_0x2f27ea){return _0x2f27ea['update'](_0xaba7a5)[_0xe098('0x25')](function(_0x1c6a94){return _0x1c6a94;});}return null;};}function removeEntity(_0x54c6f8,_0xae767d){return function(_0x470b7b){if(_0x470b7b){return _0x470b7b['destroy']()['then'](function(){_0x54c6f8[_0xe098('0x1c')](0xcc)[_0xe098('0x26')]();});}};}function handleEntityNotFound(_0x5dc3eb,_0x589af0){return function(_0x977ea){if(!_0x977ea){_0x5dc3eb['sendStatus'](0x194);}return _0x977ea;};}function handleError(_0x1af31e,_0x29275f){_0x29275f=_0x29275f||0x1f4;return function(_0x4091fc){logger[_0xe098('0x27')](_0x4091fc['stack']);if(_0x4091fc[_0xe098('0x28')]){delete _0x4091fc[_0xe098('0x28')];}_0x1af31e[_0xe098('0x1c')](_0x29275f)['send'](_0x4091fc);};}exports['index']=function(_0x50c4b3,_0x2dbc29){var _0x56bb80={},_0x46a4d3={},_0x42d288={'count':0x0,'rows':[]};var _0x1e0b59=_[_0xe098('0x29')](db[_0xe098('0x2a')][_0xe098('0x2b')],function(_0x38fdd9){return{'name':_0x38fdd9[_0xe098('0x2c')],'type':_0x38fdd9[_0xe098('0x2d')][_0xe098('0x2e')]};});_0x46a4d3[_0xe098('0x2f')]=_[_0xe098('0x29')](_0x1e0b59,'name');_0x46a4d3[_0xe098('0x30')]=_[_0xe098('0x31')](_0x50c4b3[_0xe098('0x30')]);_0x46a4d3[_0xe098('0x32')]=_[_0xe098('0x33')](_0x46a4d3[_0xe098('0x2f')],_0x46a4d3[_0xe098('0x30')]);_0x56bb80[_0xe098('0x34')]=_[_0xe098('0x33')](_0x46a4d3[_0xe098('0x2f')],qs['fields'](_0x50c4b3['query'][_0xe098('0x35')]));_0x56bb80[_0xe098('0x34')]=_0x56bb80[_0xe098('0x34')][_0xe098('0x36')]?_0x56bb80[_0xe098('0x34')]:_0x46a4d3['model'];if(!_0x50c4b3['query'][_0xe098('0x37')](_0xe098('0x38'))){_0x56bb80[_0xe098('0x20')]=qs[_0xe098('0x20')](_0x50c4b3[_0xe098('0x30')][_0xe098('0x20')]);_0x56bb80[_0xe098('0x1e')]=qs[_0xe098('0x1e')](_0x50c4b3[_0xe098('0x30')][_0xe098('0x1e')]);}_0x56bb80['order']=qs[_0xe098('0x39')](_0x50c4b3[_0xe098('0x30')][_0xe098('0x39')]);_0x56bb80[_0xe098('0x3a')]=qs[_0xe098('0x32')](_[_0xe098('0x3b')](_0x50c4b3['query'],_0x46a4d3[_0xe098('0x32')]),_0x1e0b59);if(_0x50c4b3[_0xe098('0x30')][_0xe098('0x3c')]){_0x56bb80[_0xe098('0x3a')]=_[_0xe098('0x3d')](_0x56bb80[_0xe098('0x3a')],{'$or':_[_0xe098('0x29')](_0x1e0b59,function(_0x161e18){if(_0x161e18[_0xe098('0x2d')]!==_0xe098('0x3e')){var _0x5bb0d8={};_0x5bb0d8[_0x161e18[_0xe098('0x28')]]={'$like':'%'+_0x50c4b3[_0xe098('0x30')][_0xe098('0x3c')]+'%'};return _0x5bb0d8;}})});}_0x56bb80=_[_0xe098('0x3d')]({},_0x56bb80,_0x50c4b3[_0xe098('0x3f')]);var _0x4d900a={'where':_0x56bb80[_0xe098('0x3a')]};return db['VoiceQueueReport'][_0xe098('0x40')](_0x4d900a)[_0xe098('0x25')](function(_0x1fdb12){_0x42d288[_0xe098('0x40')]=_0x1fdb12;if(_0x50c4b3['query'][_0xe098('0x41')]){_0x56bb80[_0xe098('0x42')]=[{'all':!![]}];}return db[_0xe098('0x2a')]['findAll'](_0x56bb80);})[_0xe098('0x25')](function(_0x2af55a){_0x42d288['rows']=_0x2af55a;return _0x42d288;})[_0xe098('0x25')](respondWithFilteredResult(_0x2dbc29,_0x56bb80))[_0xe098('0x43')](handleError(_0x2dbc29,null));};exports['show']=function(_0x4d31fa,_0x592faa){var _0x196125={'raw':![],'where':{'id':_0x4d31fa[_0xe098('0x44')]['id']}},_0x51ee5d={};_0x51ee5d[_0xe098('0x2f')]=_[_0xe098('0x31')](db['VoiceQueueReport'][_0xe098('0x2b')]);_0x51ee5d[_0xe098('0x30')]=_[_0xe098('0x31')](_0x4d31fa[_0xe098('0x30')]);_0x51ee5d[_0xe098('0x32')]=_['intersection'](_0x51ee5d[_0xe098('0x2f')],_0x51ee5d[_0xe098('0x30')]);_0x196125[_0xe098('0x34')]=_[_0xe098('0x33')](_0x51ee5d['model'],qs[_0xe098('0x35')](_0x4d31fa[_0xe098('0x30')][_0xe098('0x35')]));_0x196125['attributes']=_0x196125[_0xe098('0x34')][_0xe098('0x36')]?_0x196125[_0xe098('0x34')]:_0x51ee5d['model'];if(_0x4d31fa[_0xe098('0x30')][_0xe098('0x41')]){_0x196125[_0xe098('0x42')]=[{'all':!![]}];}_0x196125=_[_0xe098('0x3d')]({},_0x196125,_0x4d31fa[_0xe098('0x3f')]);return db[_0xe098('0x2a')][_0xe098('0x45')](_0x196125)[_0xe098('0x25')](handleEntityNotFound(_0x592faa,null))[_0xe098('0x25')](respondWithResult(_0x592faa,null))[_0xe098('0x43')](handleError(_0x592faa,null));};exports[_0xe098('0x46')]=function(_0x3ce941,_0x126de2){return db[_0xe098('0x2a')]['create'](_0x3ce941['body'],{})[_0xe098('0x25')](respondWithResult(_0x126de2,0xc9))[_0xe098('0x43')](handleError(_0x126de2,null));};exports['update']=function(_0x459b29,_0x352581){if(_0x459b29['body']['id']){delete _0x459b29[_0xe098('0x47')]['id'];}return db['VoiceQueueReport'][_0xe098('0x45')]({'where':{'id':_0x459b29[_0xe098('0x44')]['id']}})[_0xe098('0x25')](handleEntityNotFound(_0x352581,null))[_0xe098('0x25')](saveUpdates(_0x459b29['body'],null))[_0xe098('0x25')](respondWithResult(_0x352581,null))[_0xe098('0x43')](handleError(_0x352581,null));};exports[_0xe098('0x48')]=function(_0x3db7a0,_0x5f4f6e){return db[_0xe098('0x2a')][_0xe098('0x45')]({'where':{'id':_0x3db7a0['params']['id']}})[_0xe098('0x25')](handleEntityNotFound(_0x5f4f6e,null))['then'](removeEntity(_0x5f4f6e,null))[_0xe098('0x43')](handleError(_0x5f4f6e,null));};exports[_0xe098('0x49')]=function(_0x2798ef,_0x3042dd){return db[_0xe098('0x2a')]['describe']()[_0xe098('0x25')](respondWithResult(_0x3042dd,null))[_0xe098('0x43')](handleError(_0x3042dd,null));};exports[_0xe098('0x4a')]=function(_0x3216e4,_0x4a06fe){var _0xebd3eb={},_0x5b0133={},_0x367880={'count':0x0,'rows':[]};_0x5b0133['model']=_[_0xe098('0x31')](db[_0xe098('0x2a')][_0xe098('0x2b')]);_0x5b0133[_0xe098('0x30')]=_['keys'](_0x3216e4[_0xe098('0x30')]);_0x5b0133['filters']=_[_0xe098('0x33')](_0x5b0133[_0xe098('0x2f')],_0x5b0133[_0xe098('0x30')]);_0xebd3eb[_0xe098('0x34')]=_['intersection'](_0x5b0133[_0xe098('0x2f')],qs[_0xe098('0x35')](_0x3216e4[_0xe098('0x30')][_0xe098('0x35')]));_0xebd3eb[_0xe098('0x34')]=_0xebd3eb[_0xe098('0x34')][_0xe098('0x36')]?_0xebd3eb[_0xe098('0x34')]:_0x5b0133[_0xe098('0x2f')];if(!_0x3216e4[_0xe098('0x30')]['hasOwnProperty']('nolimit')){_0xebd3eb['limit']=qs[_0xe098('0x20')](_0x3216e4[_0xe098('0x30')][_0xe098('0x20')]);_0xebd3eb[_0xe098('0x1e')]=qs[_0xe098('0x1e')](_0x3216e4['query'][_0xe098('0x1e')]);}_0xebd3eb['order']=qs[_0xe098('0x39')](_0x3216e4[_0xe098('0x30')][_0xe098('0x39')]);_0xebd3eb['where']=qs[_0xe098('0x32')](_[_0xe098('0x3b')](_0x3216e4[_0xe098('0x30')],_0x5b0133[_0xe098('0x32')]));if(_0x3216e4[_0xe098('0x30')][_0xe098('0x3c')]){_0xebd3eb[_0xe098('0x3a')]=_['merge'](_0xebd3eb[_0xe098('0x3a')],{'$or':_['map'](_0xebd3eb[_0xe098('0x34')],function(_0x44b3ec){var _0x1998da={};_0x1998da[_0x44b3ec]={'$like':'%'+_0x3216e4[_0xe098('0x30')][_0xe098('0x3c')]+'%'};return _0x1998da;})});}_0xebd3eb=_[_0xe098('0x3d')]({},_0xebd3eb,_0x3216e4[_0xe098('0x3f')]);var _0x443744={'where':_0xebd3eb['where']};return db[_0xe098('0x2a')][_0xe098('0x40')](_0x443744)[_0xe098('0x25')](function(_0x1a1afe){_0x367880[_0xe098('0x40')]=_0x1a1afe;if(_0x3216e4[_0xe098('0x30')]['includeAll']){_0xebd3eb[_0xe098('0x42')]=[{'all':!![]}];}return db[_0xe098('0x2a')][_0xe098('0x4b')](_0xebd3eb);})[_0xe098('0x25')](function(_0x3239c8){_0x367880[_0xe098('0x4c')]=_0x3239c8;return _0x367880;})[_0xe098('0x25')](respondWithFilteredResult(_0x4a06fe,_0xebd3eb,'getVoiceQueuesReport'))[_0xe098('0x43')](handleError(_0x4a06fe,null,_0xe098('0x4a')));};