bf57478dd31fb3fe583dfe7c5a73e715f1542fc1
[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 _0xb209=['path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','sendStatus','status','offset','undefined','limit','Content-Range','json','apply','save','update','destroy','then','end','stack','name','index','map','VoiceQueueReport','rawAttributes','fieldName','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','count','includeAll','include','findAll','catch','show','params','merge','options','create','body','find','describe','getVoiceQueuesReport','rows','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x38d8e2,_0x48603c){var _0x5afbee=function(_0x2eca5e){while(--_0x2eca5e){_0x38d8e2['push'](_0x38d8e2['shift']());}};_0x5afbee(++_0x48603c);}(_0xb209,0x14b));var _0x9b20=function(_0x18b97c,_0x142f1e){_0x18b97c=_0x18b97c-0x0;var _0x3c99e4=_0xb209[_0x18b97c];return _0x3c99e4;};'use strict';var emlformat=require(_0x9b20('0x0'));var rimraf=require(_0x9b20('0x1'));var zipdir=require(_0x9b20('0x2'));var jsonpatch=require(_0x9b20('0x3'));var rp=require(_0x9b20('0x4'));var moment=require(_0x9b20('0x5'));var BPromise=require(_0x9b20('0x6'));var Mustache=require(_0x9b20('0x7'));var util=require(_0x9b20('0x8'));var path=require(_0x9b20('0x9'));var sox=require(_0x9b20('0xa'));var csv=require('to-csv');var ejs=require(_0x9b20('0xb'));var fs=require('fs');var fs_extra=require(_0x9b20('0xc'));var _=require(_0x9b20('0xd'));var squel=require(_0x9b20('0xe'));var crypto=require(_0x9b20('0xf'));var jsforce=require(_0x9b20('0x10'));var deskjs=require(_0x9b20('0x11'));var toCsv=require('to-csv');var querystring=require(_0x9b20('0x12'));var Papa=require('papaparse');var Redis=require(_0x9b20('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x9b20('0x14'));var as=require(_0x9b20('0x15'));var hardwareService=require(_0x9b20('0x16'));var logger=require(_0x9b20('0x17'))(_0x9b20('0x18'));var utils=require(_0x9b20('0x19'));var config=require(_0x9b20('0x1a'));var licenseUtil=require(_0x9b20('0x1b'));var db=require(_0x9b20('0x1c'))['db'];config[_0x9b20('0x1d')]=_[_0x9b20('0x1e')](config[_0x9b20('0x1d')],{'host':'localhost','port':0x18eb});var socket=require(_0x9b20('0x1f'))(new Redis(config[_0x9b20('0x1d')]));require('./voiceQueueReport.socket')['register'](socket);function respondWithStatusCode(_0x59a30e,_0x59d788){_0x59d788=_0x59d788||0xcc;return function(_0x30f588){if(_0x30f588){return _0x59a30e[_0x9b20('0x20')](_0x59d788);}return _0x59a30e[_0x9b20('0x21')](_0x59d788)['end']();};}function respondWithResult(_0x2c0231,_0x43ed74){_0x43ed74=_0x43ed74||0xc8;return function(_0x4ccd95){if(_0x4ccd95){return _0x2c0231[_0x9b20('0x21')](_0x43ed74)['json'](_0x4ccd95);}};}function respondWithFilteredResult(_0x230dec,_0x6288dd){return function(_0x2bf4d9){if(_0x2bf4d9){var _0x4ef399=typeof _0x6288dd[_0x9b20('0x22')]===_0x9b20('0x23')&&typeof _0x6288dd[_0x9b20('0x24')]===_0x9b20('0x23');var _0xb698e5=_0x2bf4d9['count'];var _0x13b831=_0x4ef399?0x0:_0x6288dd[_0x9b20('0x22')];var _0x1fa63f=_0x4ef399?_0x2bf4d9['count']:_0x6288dd[_0x9b20('0x22')]+_0x6288dd[_0x9b20('0x24')];var _0x4631fe;if(_0x1fa63f>=_0xb698e5){_0x1fa63f=_0xb698e5;_0x4631fe=0xc8;}else{_0x4631fe=0xce;}_0x230dec[_0x9b20('0x21')](_0x4631fe);return _0x230dec['set'](_0x9b20('0x25'),_0x13b831+'-'+_0x1fa63f+'/'+_0xb698e5)[_0x9b20('0x26')](_0x2bf4d9);}return null;};}function patchUpdates(_0x57331b){return function(_0x49426c){try{jsonpatch[_0x9b20('0x27')](_0x49426c,_0x57331b,!![]);}catch(_0xe811ad){return BPromise['reject'](_0xe811ad);}return _0x49426c[_0x9b20('0x28')]();};}function saveUpdates(_0x55ef6d,_0x6c5be9){return function(_0x17c0cd){if(_0x17c0cd){return _0x17c0cd[_0x9b20('0x29')](_0x55ef6d)['then'](function(_0x234097){return _0x234097;});}return null;};}function removeEntity(_0x4d4cb3,_0x5b36e2){return function(_0x539ce9){if(_0x539ce9){return _0x539ce9[_0x9b20('0x2a')]()[_0x9b20('0x2b')](function(){_0x4d4cb3[_0x9b20('0x21')](0xcc)[_0x9b20('0x2c')]();});}};}function handleEntityNotFound(_0x346fee,_0xcd848c){return function(_0x544f1b){if(!_0x544f1b){_0x346fee[_0x9b20('0x20')](0x194);}return _0x544f1b;};}function handleError(_0x546a8e,_0x2f8b8d){_0x2f8b8d=_0x2f8b8d||0x1f4;return function(_0x25f32a){logger['error'](_0x25f32a[_0x9b20('0x2d')]);if(_0x25f32a[_0x9b20('0x2e')]){delete _0x25f32a[_0x9b20('0x2e')];}_0x546a8e['status'](_0x2f8b8d)['send'](_0x25f32a);};}exports[_0x9b20('0x2f')]=function(_0x4cc298,_0x2c9c09){var _0x5dfe8c={},_0x4adb38={},_0x374026={'count':0x0,'rows':[]};var _0x38dec5=_[_0x9b20('0x30')](db[_0x9b20('0x31')][_0x9b20('0x32')],function(_0x4a09a9){return{'name':_0x4a09a9[_0x9b20('0x33')],'type':_0x4a09a9['type'][_0x9b20('0x34')]};});_0x4adb38[_0x9b20('0x35')]=_['map'](_0x38dec5,_0x9b20('0x2e'));_0x4adb38['query']=_[_0x9b20('0x36')](_0x4cc298[_0x9b20('0x37')]);_0x4adb38[_0x9b20('0x38')]=_['intersection'](_0x4adb38[_0x9b20('0x35')],_0x4adb38[_0x9b20('0x37')]);_0x5dfe8c[_0x9b20('0x39')]=_[_0x9b20('0x3a')](_0x4adb38[_0x9b20('0x35')],qs[_0x9b20('0x3b')](_0x4cc298[_0x9b20('0x37')][_0x9b20('0x3b')]));_0x5dfe8c[_0x9b20('0x39')]=_0x5dfe8c[_0x9b20('0x39')][_0x9b20('0x3c')]?_0x5dfe8c[_0x9b20('0x39')]:_0x4adb38[_0x9b20('0x35')];if(!_0x4cc298[_0x9b20('0x37')][_0x9b20('0x3d')](_0x9b20('0x3e'))){_0x5dfe8c[_0x9b20('0x24')]=qs[_0x9b20('0x24')](_0x4cc298['query'][_0x9b20('0x24')]);_0x5dfe8c[_0x9b20('0x22')]=qs[_0x9b20('0x22')](_0x4cc298[_0x9b20('0x37')][_0x9b20('0x22')]);}_0x5dfe8c[_0x9b20('0x3f')]=qs[_0x9b20('0x40')](_0x4cc298[_0x9b20('0x37')]['sort']);_0x5dfe8c[_0x9b20('0x41')]=qs[_0x9b20('0x38')](_[_0x9b20('0x42')](_0x4cc298[_0x9b20('0x37')],_0x4adb38[_0x9b20('0x38')]),_0x38dec5);if(_0x4cc298[_0x9b20('0x37')][_0x9b20('0x43')]){_0x5dfe8c['where']=_['merge'](_0x5dfe8c['where'],{'$or':_[_0x9b20('0x30')](_0x38dec5,function(_0x2b7086){if(_0x2b7086[_0x9b20('0x44')]!==_0x9b20('0x45')){var _0x4c027e={};_0x4c027e[_0x2b7086[_0x9b20('0x2e')]]={'$like':'%'+_0x4cc298[_0x9b20('0x37')]['filter']+'%'};return _0x4c027e;}})});}_0x5dfe8c=_['merge']({},_0x5dfe8c,_0x4cc298['options']);var _0x3446e7={'where':_0x5dfe8c[_0x9b20('0x41')]};return db['VoiceQueueReport'][_0x9b20('0x46')](_0x3446e7)[_0x9b20('0x2b')](function(_0x50f1c1){_0x374026[_0x9b20('0x46')]=_0x50f1c1;if(_0x4cc298[_0x9b20('0x37')][_0x9b20('0x47')]){_0x5dfe8c[_0x9b20('0x48')]=[{'all':!![]}];}return db[_0x9b20('0x31')][_0x9b20('0x49')](_0x5dfe8c);})[_0x9b20('0x2b')](function(_0x3d46e4){_0x374026['rows']=_0x3d46e4;return _0x374026;})[_0x9b20('0x2b')](respondWithFilteredResult(_0x2c9c09,_0x5dfe8c))[_0x9b20('0x4a')](handleError(_0x2c9c09,null));};exports[_0x9b20('0x4b')]=function(_0x90411f,_0x5c5388){var _0x2af5d8={'raw':![],'where':{'id':_0x90411f[_0x9b20('0x4c')]['id']}},_0x240e33={};_0x240e33[_0x9b20('0x35')]=_['keys'](db[_0x9b20('0x31')][_0x9b20('0x32')]);_0x240e33[_0x9b20('0x37')]=_[_0x9b20('0x36')](_0x90411f[_0x9b20('0x37')]);_0x240e33[_0x9b20('0x38')]=_[_0x9b20('0x3a')](_0x240e33[_0x9b20('0x35')],_0x240e33[_0x9b20('0x37')]);_0x2af5d8['attributes']=_[_0x9b20('0x3a')](_0x240e33[_0x9b20('0x35')],qs[_0x9b20('0x3b')](_0x90411f[_0x9b20('0x37')]['fields']));_0x2af5d8[_0x9b20('0x39')]=_0x2af5d8[_0x9b20('0x39')][_0x9b20('0x3c')]?_0x2af5d8[_0x9b20('0x39')]:_0x240e33['model'];if(_0x90411f[_0x9b20('0x37')]['includeAll']){_0x2af5d8[_0x9b20('0x48')]=[{'all':!![]}];}_0x2af5d8=_[_0x9b20('0x4d')]({},_0x2af5d8,_0x90411f[_0x9b20('0x4e')]);return db[_0x9b20('0x31')]['find'](_0x2af5d8)[_0x9b20('0x2b')](handleEntityNotFound(_0x5c5388,null))[_0x9b20('0x2b')](respondWithResult(_0x5c5388,null))['catch'](handleError(_0x5c5388,null));};exports[_0x9b20('0x4f')]=function(_0xa8600a,_0x1c42dd){return db['VoiceQueueReport'][_0x9b20('0x4f')](_0xa8600a[_0x9b20('0x50')],{})[_0x9b20('0x2b')](respondWithResult(_0x1c42dd,0xc9))[_0x9b20('0x4a')](handleError(_0x1c42dd,null));};exports[_0x9b20('0x29')]=function(_0x5bdbbf,_0x563e22){if(_0x5bdbbf[_0x9b20('0x50')]['id']){delete _0x5bdbbf[_0x9b20('0x50')]['id'];}return db[_0x9b20('0x31')][_0x9b20('0x51')]({'where':{'id':_0x5bdbbf[_0x9b20('0x4c')]['id']}})[_0x9b20('0x2b')](handleEntityNotFound(_0x563e22,null))[_0x9b20('0x2b')](saveUpdates(_0x5bdbbf[_0x9b20('0x50')],null))['then'](respondWithResult(_0x563e22,null))[_0x9b20('0x4a')](handleError(_0x563e22,null));};exports[_0x9b20('0x2a')]=function(_0x51deb2,_0x58e645){return db[_0x9b20('0x31')][_0x9b20('0x51')]({'where':{'id':_0x51deb2['params']['id']}})[_0x9b20('0x2b')](handleEntityNotFound(_0x58e645,null))[_0x9b20('0x2b')](removeEntity(_0x58e645,null))[_0x9b20('0x4a')](handleError(_0x58e645,null));};exports[_0x9b20('0x52')]=function(_0x347bb7,_0x5af4c8){return db['VoiceQueueReport'][_0x9b20('0x52')]()[_0x9b20('0x2b')](respondWithResult(_0x5af4c8,null))['catch'](handleError(_0x5af4c8,null));};exports[_0x9b20('0x53')]=function(_0xa53224,_0x122e06){var _0x23c83c={},_0x1de0ac={},_0x3cf2b2={'count':0x0,'rows':[]};_0x1de0ac['model']=_[_0x9b20('0x36')](db[_0x9b20('0x31')][_0x9b20('0x32')]);_0x1de0ac[_0x9b20('0x37')]=_[_0x9b20('0x36')](_0xa53224['query']);_0x1de0ac[_0x9b20('0x38')]=_[_0x9b20('0x3a')](_0x1de0ac[_0x9b20('0x35')],_0x1de0ac['query']);_0x23c83c[_0x9b20('0x39')]=_['intersection'](_0x1de0ac[_0x9b20('0x35')],qs[_0x9b20('0x3b')](_0xa53224['query'][_0x9b20('0x3b')]));_0x23c83c[_0x9b20('0x39')]=_0x23c83c[_0x9b20('0x39')][_0x9b20('0x3c')]?_0x23c83c[_0x9b20('0x39')]:_0x1de0ac['model'];if(!_0xa53224[_0x9b20('0x37')][_0x9b20('0x3d')](_0x9b20('0x3e'))){_0x23c83c[_0x9b20('0x24')]=qs[_0x9b20('0x24')](_0xa53224[_0x9b20('0x37')][_0x9b20('0x24')]);_0x23c83c[_0x9b20('0x22')]=qs[_0x9b20('0x22')](_0xa53224[_0x9b20('0x37')][_0x9b20('0x22')]);}_0x23c83c[_0x9b20('0x3f')]=qs['sort'](_0xa53224[_0x9b20('0x37')][_0x9b20('0x40')]);_0x23c83c['where']=qs[_0x9b20('0x38')](_[_0x9b20('0x42')](_0xa53224[_0x9b20('0x37')],_0x1de0ac['filters']));if(_0xa53224[_0x9b20('0x37')][_0x9b20('0x43')]){_0x23c83c['where']=_[_0x9b20('0x4d')](_0x23c83c[_0x9b20('0x41')],{'$or':_[_0x9b20('0x30')](_0x23c83c[_0x9b20('0x39')],function(_0x7144c4){var _0x4a2b02={};_0x4a2b02[_0x7144c4]={'$like':'%'+_0xa53224[_0x9b20('0x37')]['filter']+'%'};return _0x4a2b02;})});}_0x23c83c=_[_0x9b20('0x4d')]({},_0x23c83c,_0xa53224[_0x9b20('0x4e')]);var _0xb64180={'where':_0x23c83c['where']};return db[_0x9b20('0x31')][_0x9b20('0x46')](_0xb64180)[_0x9b20('0x2b')](function(_0x31e464){_0x3cf2b2[_0x9b20('0x46')]=_0x31e464;if(_0xa53224[_0x9b20('0x37')][_0x9b20('0x47')]){_0x23c83c[_0x9b20('0x48')]=[{'all':!![]}];}return db[_0x9b20('0x31')][_0x9b20('0x49')](_0x23c83c);})[_0x9b20('0x2b')](function(_0x47ca7b){_0x3cf2b2[_0x9b20('0x54')]=_0x47ca7b;return _0x3cf2b2;})[_0x9b20('0x2b')](respondWithFilteredResult(_0x122e06,_0x23c83c,_0x9b20('0x53')))[_0x9b20('0x4a')](handleError(_0x122e06,null,_0x9b20('0x53')));};