a09ce64fd8918ed86644c06187284d179736c883
[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 _0x3908=['body','describe','order','findAll','getVoiceQueuesReport','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','VoiceQueueReport','includeAll','include','rows','catch','show','params','length','find','create'];(function(_0x5807d4,_0x29306b){var _0x5ddf9b=function(_0x56476c){while(--_0x56476c){_0x5807d4['push'](_0x5807d4['shift']());}};_0x5ddf9b(++_0x29306b);}(_0x3908,0x151));var _0x8390=function(_0x1e7345,_0x18bcce){_0x1e7345=_0x1e7345-0x0;var _0x33017c=_0x3908[_0x1e7345];return _0x33017c;};'use strict';var emlformat=require(_0x8390('0x0'));var rimraf=require(_0x8390('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8390('0x2'));var moment=require(_0x8390('0x3'));var BPromise=require(_0x8390('0x4'));var Mustache=require(_0x8390('0x5'));var util=require('util');var path=require(_0x8390('0x6'));var sox=require(_0x8390('0x7'));var csv=require(_0x8390('0x8'));var ejs=require(_0x8390('0x9'));var fs=require('fs');var fs_extra=require(_0x8390('0xa'));var _=require(_0x8390('0xb'));var squel=require('squel');var crypto=require(_0x8390('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8390('0xd'));var Papa=require(_0x8390('0xe'));var Redis=require(_0x8390('0xf'));var authService=require(_0x8390('0x10'));var qs=require(_0x8390('0x11'));var as=require(_0x8390('0x12'));var hardwareService=require(_0x8390('0x13'));var logger=require(_0x8390('0x14'))(_0x8390('0x15'));var utils=require('../../config/utils');var config=require(_0x8390('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x8390('0x17'))['db'];config[_0x8390('0x18')]=_[_0x8390('0x19')](config[_0x8390('0x18')],{'host':_0x8390('0x1a'),'port':0x18eb});var socket=require(_0x8390('0x1b'))(new Redis(config[_0x8390('0x18')]));require(_0x8390('0x1c'))['register'](socket);function respondWithStatusCode(_0x3a63b4,_0x47b553){_0x47b553=_0x47b553||0xcc;return function(_0x5d8cf9){if(_0x5d8cf9){return _0x3a63b4['sendStatus'](_0x47b553);}return _0x3a63b4[_0x8390('0x1d')](_0x47b553)[_0x8390('0x1e')]();};}function respondWithResult(_0x53b917,_0x42017d){_0x42017d=_0x42017d||0xc8;return function(_0x1285a8){if(_0x1285a8){return _0x53b917[_0x8390('0x1d')](_0x42017d)['json'](_0x1285a8);}};}function respondWithFilteredResult(_0x118d79,_0x126a7b){return function(_0x5825ea){if(_0x5825ea){var _0x23921b=typeof _0x126a7b[_0x8390('0x1f')]==='undefined'&&typeof _0x126a7b[_0x8390('0x20')]===_0x8390('0x21');var _0x1ab3e2=_0x5825ea[_0x8390('0x22')];var _0x23603f=_0x23921b?0x0:_0x126a7b[_0x8390('0x1f')];var _0x589e20=_0x23921b?_0x5825ea[_0x8390('0x22')]:_0x126a7b[_0x8390('0x1f')]+_0x126a7b['limit'];var _0x55bc66;if(_0x589e20>=_0x1ab3e2){_0x589e20=_0x1ab3e2;_0x55bc66=0xc8;}else{_0x55bc66=0xce;}_0x118d79[_0x8390('0x1d')](_0x55bc66);return _0x118d79[_0x8390('0x23')](_0x8390('0x24'),_0x23603f+'-'+_0x589e20+'/'+_0x1ab3e2)[_0x8390('0x25')](_0x5825ea);}return null;};}function patchUpdates(_0x39b656){return function(_0x5a8464){try{jsonpatch[_0x8390('0x26')](_0x5a8464,_0x39b656,!![]);}catch(_0x583b7d){return BPromise[_0x8390('0x27')](_0x583b7d);}return _0x5a8464[_0x8390('0x28')]();};}function saveUpdates(_0x26ef4e,_0x53edad){return function(_0x499e2b){if(_0x499e2b){return _0x499e2b[_0x8390('0x29')](_0x26ef4e)[_0x8390('0x2a')](function(_0x29cac9){return _0x29cac9;});}return null;};}function removeEntity(_0x17629c,_0x4f25c8){return function(_0x8d4505){if(_0x8d4505){return _0x8d4505[_0x8390('0x2b')]()['then'](function(){_0x17629c[_0x8390('0x1d')](0xcc)[_0x8390('0x1e')]();});}};}function handleEntityNotFound(_0x32f81b,_0x2996aa){return function(_0x358228){if(!_0x358228){_0x32f81b[_0x8390('0x2c')](0x194);}return _0x358228;};}function handleError(_0xa45e7a,_0x51dc4b){_0x51dc4b=_0x51dc4b||0x1f4;return function(_0x4f164c){logger[_0x8390('0x2d')](_0x4f164c['stack']);if(_0x4f164c['name']){delete _0x4f164c[_0x8390('0x2e')];}_0xa45e7a[_0x8390('0x1d')](_0x51dc4b)[_0x8390('0x2f')](_0x4f164c);};}exports['index']=function(_0x4d6b01,_0x524685){var _0x30bfb2={},_0x36e4b2={},_0x29872f={'count':0x0,'rows':[]};var _0x388065=_[_0x8390('0x30')](db['VoiceQueueReport'][_0x8390('0x31')],function(_0x51b11e){return{'name':_0x51b11e[_0x8390('0x32')],'type':_0x51b11e[_0x8390('0x33')][_0x8390('0x34')]};});_0x36e4b2[_0x8390('0x35')]=_['map'](_0x388065,_0x8390('0x2e'));_0x36e4b2[_0x8390('0x36')]=_[_0x8390('0x37')](_0x4d6b01[_0x8390('0x36')]);_0x36e4b2[_0x8390('0x38')]=_[_0x8390('0x39')](_0x36e4b2['model'],_0x36e4b2[_0x8390('0x36')]);_0x30bfb2[_0x8390('0x3a')]=_[_0x8390('0x39')](_0x36e4b2[_0x8390('0x35')],qs[_0x8390('0x3b')](_0x4d6b01[_0x8390('0x36')][_0x8390('0x3b')]));_0x30bfb2[_0x8390('0x3a')]=_0x30bfb2[_0x8390('0x3a')]['length']?_0x30bfb2['attributes']:_0x36e4b2[_0x8390('0x35')];if(!_0x4d6b01[_0x8390('0x36')]['hasOwnProperty'](_0x8390('0x3c'))){_0x30bfb2[_0x8390('0x20')]=qs[_0x8390('0x20')](_0x4d6b01[_0x8390('0x36')]['limit']);_0x30bfb2[_0x8390('0x1f')]=qs[_0x8390('0x1f')](_0x4d6b01[_0x8390('0x36')][_0x8390('0x1f')]);}_0x30bfb2['order']=qs[_0x8390('0x3d')](_0x4d6b01[_0x8390('0x36')][_0x8390('0x3d')]);_0x30bfb2[_0x8390('0x3e')]=qs['filters'](_[_0x8390('0x3f')](_0x4d6b01['query'],_0x36e4b2['filters']),_0x388065);if(_0x4d6b01[_0x8390('0x36')][_0x8390('0x40')]){_0x30bfb2[_0x8390('0x3e')]=_[_0x8390('0x41')](_0x30bfb2[_0x8390('0x3e')],{'$or':_['map'](_0x388065,function(_0x27433d){if(_0x27433d[_0x8390('0x33')]!==_0x8390('0x42')){var _0x31d766={};_0x31d766[_0x27433d[_0x8390('0x2e')]]={'$like':'%'+_0x4d6b01['query'][_0x8390('0x40')]+'%'};return _0x31d766;}})});}_0x30bfb2=_[_0x8390('0x41')]({},_0x30bfb2,_0x4d6b01[_0x8390('0x43')]);var _0x270e48={'where':_0x30bfb2['where']};return db[_0x8390('0x44')][_0x8390('0x22')](_0x270e48)[_0x8390('0x2a')](function(_0x51615e){_0x29872f[_0x8390('0x22')]=_0x51615e;if(_0x4d6b01[_0x8390('0x36')][_0x8390('0x45')]){_0x30bfb2[_0x8390('0x46')]=[{'all':!![]}];}return db[_0x8390('0x44')]['findAll'](_0x30bfb2);})['then'](function(_0x41984a){_0x29872f[_0x8390('0x47')]=_0x41984a;return _0x29872f;})['then'](respondWithFilteredResult(_0x524685,_0x30bfb2))[_0x8390('0x48')](handleError(_0x524685,null));};exports[_0x8390('0x49')]=function(_0x44e3c9,_0x4f37e1){var _0x3a02c2={'raw':![],'where':{'id':_0x44e3c9[_0x8390('0x4a')]['id']}},_0x367f62={};_0x367f62['model']=_[_0x8390('0x37')](db[_0x8390('0x44')][_0x8390('0x31')]);_0x367f62[_0x8390('0x36')]=_[_0x8390('0x37')](_0x44e3c9[_0x8390('0x36')]);_0x367f62[_0x8390('0x38')]=_['intersection'](_0x367f62[_0x8390('0x35')],_0x367f62[_0x8390('0x36')]);_0x3a02c2[_0x8390('0x3a')]=_[_0x8390('0x39')](_0x367f62['model'],qs[_0x8390('0x3b')](_0x44e3c9[_0x8390('0x36')][_0x8390('0x3b')]));_0x3a02c2[_0x8390('0x3a')]=_0x3a02c2[_0x8390('0x3a')][_0x8390('0x4b')]?_0x3a02c2[_0x8390('0x3a')]:_0x367f62[_0x8390('0x35')];if(_0x44e3c9[_0x8390('0x36')][_0x8390('0x45')]){_0x3a02c2[_0x8390('0x46')]=[{'all':!![]}];}_0x3a02c2=_[_0x8390('0x41')]({},_0x3a02c2,_0x44e3c9[_0x8390('0x43')]);return db['VoiceQueueReport'][_0x8390('0x4c')](_0x3a02c2)[_0x8390('0x2a')](handleEntityNotFound(_0x4f37e1,null))[_0x8390('0x2a')](respondWithResult(_0x4f37e1,null))[_0x8390('0x48')](handleError(_0x4f37e1,null));};exports[_0x8390('0x4d')]=function(_0x250fbf,_0x25f32a){return db['VoiceQueueReport'][_0x8390('0x4d')](_0x250fbf[_0x8390('0x4e')],{})['then'](respondWithResult(_0x25f32a,0xc9))[_0x8390('0x48')](handleError(_0x25f32a,null));};exports[_0x8390('0x29')]=function(_0x101743,_0x11ec18){if(_0x101743[_0x8390('0x4e')]['id']){delete _0x101743[_0x8390('0x4e')]['id'];}return db[_0x8390('0x44')][_0x8390('0x4c')]({'where':{'id':_0x101743[_0x8390('0x4a')]['id']}})[_0x8390('0x2a')](handleEntityNotFound(_0x11ec18,null))[_0x8390('0x2a')](saveUpdates(_0x101743[_0x8390('0x4e')],null))[_0x8390('0x2a')](respondWithResult(_0x11ec18,null))[_0x8390('0x48')](handleError(_0x11ec18,null));};exports[_0x8390('0x2b')]=function(_0x438aec,_0x3a44fa){return db[_0x8390('0x44')]['find']({'where':{'id':_0x438aec[_0x8390('0x4a')]['id']}})[_0x8390('0x2a')](handleEntityNotFound(_0x3a44fa,null))['then'](removeEntity(_0x3a44fa,null))[_0x8390('0x48')](handleError(_0x3a44fa,null));};exports[_0x8390('0x4f')]=function(_0x3ee084,_0x40e012){return db[_0x8390('0x44')]['describe']()['then'](respondWithResult(_0x40e012,null))[_0x8390('0x48')](handleError(_0x40e012,null));};exports['getVoiceQueuesReport']=function(_0x24021c,_0x8a4896){var _0x41b531={},_0xf485f4={},_0x44ef6b={'count':0x0,'rows':[]};_0xf485f4[_0x8390('0x35')]=_['keys'](db['VoiceQueueReport'][_0x8390('0x31')]);_0xf485f4[_0x8390('0x36')]=_[_0x8390('0x37')](_0x24021c[_0x8390('0x36')]);_0xf485f4['filters']=_[_0x8390('0x39')](_0xf485f4[_0x8390('0x35')],_0xf485f4[_0x8390('0x36')]);_0x41b531[_0x8390('0x3a')]=_[_0x8390('0x39')](_0xf485f4[_0x8390('0x35')],qs[_0x8390('0x3b')](_0x24021c[_0x8390('0x36')][_0x8390('0x3b')]));_0x41b531[_0x8390('0x3a')]=_0x41b531['attributes'][_0x8390('0x4b')]?_0x41b531['attributes']:_0xf485f4[_0x8390('0x35')];if(!_0x24021c['query']['hasOwnProperty'](_0x8390('0x3c'))){_0x41b531[_0x8390('0x20')]=qs[_0x8390('0x20')](_0x24021c[_0x8390('0x36')][_0x8390('0x20')]);_0x41b531[_0x8390('0x1f')]=qs[_0x8390('0x1f')](_0x24021c[_0x8390('0x36')][_0x8390('0x1f')]);}_0x41b531[_0x8390('0x50')]=qs[_0x8390('0x3d')](_0x24021c[_0x8390('0x36')]['sort']);_0x41b531['where']=qs['filters'](_[_0x8390('0x3f')](_0x24021c[_0x8390('0x36')],_0xf485f4['filters']));if(_0x24021c[_0x8390('0x36')]['filter']){_0x41b531[_0x8390('0x3e')]=_['merge'](_0x41b531[_0x8390('0x3e')],{'$or':_[_0x8390('0x30')](_0x41b531[_0x8390('0x3a')],function(_0x17bf13){var _0xcfb3cb={};_0xcfb3cb[_0x17bf13]={'$like':'%'+_0x24021c['query']['filter']+'%'};return _0xcfb3cb;})});}_0x41b531=_[_0x8390('0x41')]({},_0x41b531,_0x24021c[_0x8390('0x43')]);var _0x9d841a={'where':_0x41b531['where']};return db['VoiceQueueReport'][_0x8390('0x22')](_0x9d841a)[_0x8390('0x2a')](function(_0x4f5bd7){_0x44ef6b[_0x8390('0x22')]=_0x4f5bd7;if(_0x24021c['query']['includeAll']){_0x41b531[_0x8390('0x46')]=[{'all':!![]}];}return db[_0x8390('0x44')][_0x8390('0x51')](_0x41b531);})[_0x8390('0x2a')](function(_0x2251a3){_0x44ef6b[_0x8390('0x47')]=_0x2251a3;return _0x44ef6b;})[_0x8390('0x2a')](respondWithFilteredResult(_0x8a4896,_0x41b531,_0x8390('0x52')))[_0x8390('0x48')](handleError(_0x8a4896,null,_0x8390('0x52')));};