706b2ef40b8dec0370e67bc0668c4fcfbb2f7018
[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 _0xc242=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','offset','undefined','limit','set','Content-Range','json','apply','reject','update','then','error','name','index','map','rawAttributes','fieldName','key','query','keys','model','attributes','fields','length','hasOwnProperty','order','sort','filters','pick','filter','merge','type','VIRTUAL','where','VoiceQueueReport','count','includeAll','include','findAll','rows','catch','show','params','intersection','options','find','create','body','destroy','describe','getVoiceQueuesReport','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js'];(function(_0x1181d8,_0x320f0e){var _0x29bcde=function(_0xda21dc){while(--_0xda21dc){_0x1181d8['push'](_0x1181d8['shift']());}};_0x29bcde(++_0x320f0e);}(_0xc242,0x1d8));var _0x2c24=function(_0xb63659,_0x44cc78){_0xb63659=_0xb63659-0x0;var _0x1a5139=_0xc242[_0xb63659];return _0x1a5139;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2c24('0x0'));var zipdir=require(_0x2c24('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2c24('0x2'));var BPromise=require(_0x2c24('0x3'));var Mustache=require('mustache');var util=require(_0x2c24('0x4'));var path=require(_0x2c24('0x5'));var sox=require(_0x2c24('0x6'));var csv=require(_0x2c24('0x7'));var ejs=require(_0x2c24('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2c24('0x9'));var squel=require(_0x2c24('0xa'));var crypto=require(_0x2c24('0xb'));var jsforce=require(_0x2c24('0xc'));var deskjs=require(_0x2c24('0xd'));var toCsv=require(_0x2c24('0x7'));var querystring=require(_0x2c24('0xe'));var Papa=require(_0x2c24('0xf'));var Redis=require(_0x2c24('0x10'));var authService=require(_0x2c24('0x11'));var qs=require(_0x2c24('0x12'));var as=require(_0x2c24('0x13'));var hardwareService=require(_0x2c24('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x2c24('0x15'));var config=require(_0x2c24('0x16'));var licenseUtil=require(_0x2c24('0x17'));var db=require('../../mysqldb')['db'];config[_0x2c24('0x18')]=_[_0x2c24('0x19')](config[_0x2c24('0x18')],{'host':_0x2c24('0x1a'),'port':0x18eb});var socket=require(_0x2c24('0x1b'))(new Redis(config[_0x2c24('0x18')]));require('./voiceQueueReport.socket')[_0x2c24('0x1c')](socket);function respondWithStatusCode(_0x5e2cbb,_0x856ae1){_0x856ae1=_0x856ae1||0xcc;return function(_0x34c09d){if(_0x34c09d){return _0x5e2cbb[_0x2c24('0x1d')](_0x856ae1);}return _0x5e2cbb[_0x2c24('0x1e')](_0x856ae1)['end']();};}function respondWithResult(_0x19fd96,_0x35c00f){_0x35c00f=_0x35c00f||0xc8;return function(_0x131b44){if(_0x131b44){return _0x19fd96[_0x2c24('0x1e')](_0x35c00f)['json'](_0x131b44);}};}function respondWithFilteredResult(_0x586a26,_0x45dd92){return function(_0xa2a672){if(_0xa2a672){var _0x3f7b2a=typeof _0x45dd92[_0x2c24('0x1f')]===_0x2c24('0x20')&&typeof _0x45dd92[_0x2c24('0x21')]===_0x2c24('0x20');var _0xd5ba45=_0xa2a672['count'];var _0x31fd6e=_0x3f7b2a?0x0:_0x45dd92[_0x2c24('0x1f')];var _0x351fef=_0x3f7b2a?_0xa2a672['count']:_0x45dd92[_0x2c24('0x1f')]+_0x45dd92['limit'];var _0x39a26e;if(_0x351fef>=_0xd5ba45){_0x351fef=_0xd5ba45;_0x39a26e=0xc8;}else{_0x39a26e=0xce;}_0x586a26[_0x2c24('0x1e')](_0x39a26e);return _0x586a26[_0x2c24('0x22')](_0x2c24('0x23'),_0x31fd6e+'-'+_0x351fef+'/'+_0xd5ba45)[_0x2c24('0x24')](_0xa2a672);}return null;};}function patchUpdates(_0x5c2c51){return function(_0x46792f){try{jsonpatch[_0x2c24('0x25')](_0x46792f,_0x5c2c51,!![]);}catch(_0x4ae1a3){return BPromise[_0x2c24('0x26')](_0x4ae1a3);}return _0x46792f['save']();};}function saveUpdates(_0x504cfe,_0x4861d2){return function(_0x3ab59f){if(_0x3ab59f){return _0x3ab59f[_0x2c24('0x27')](_0x504cfe)[_0x2c24('0x28')](function(_0x44268b){return _0x44268b;});}return null;};}function removeEntity(_0x44b660,_0x585780){return function(_0x59140c){if(_0x59140c){return _0x59140c['destroy']()[_0x2c24('0x28')](function(){_0x44b660['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3af769,_0x4b53c8){return function(_0x4fdb60){if(!_0x4fdb60){_0x3af769['sendStatus'](0x194);}return _0x4fdb60;};}function handleError(_0x185bc3,_0xfb6e83){_0xfb6e83=_0xfb6e83||0x1f4;return function(_0x5184a1){logger[_0x2c24('0x29')](_0x5184a1['stack']);if(_0x5184a1[_0x2c24('0x2a')]){delete _0x5184a1[_0x2c24('0x2a')];}_0x185bc3[_0x2c24('0x1e')](_0xfb6e83)['send'](_0x5184a1);};}exports[_0x2c24('0x2b')]=function(_0x1952a2,_0x1a4a9a){var _0x4831c4={},_0x54ddc6={},_0x3b5495={'count':0x0,'rows':[]};var _0x17194f=_[_0x2c24('0x2c')](db['VoiceQueueReport'][_0x2c24('0x2d')],function(_0x45d9a4){return{'name':_0x45d9a4[_0x2c24('0x2e')],'type':_0x45d9a4['type'][_0x2c24('0x2f')]};});_0x54ddc6['model']=_['map'](_0x17194f,_0x2c24('0x2a'));_0x54ddc6[_0x2c24('0x30')]=_[_0x2c24('0x31')](_0x1952a2[_0x2c24('0x30')]);_0x54ddc6['filters']=_['intersection'](_0x54ddc6[_0x2c24('0x32')],_0x54ddc6[_0x2c24('0x30')]);_0x4831c4[_0x2c24('0x33')]=_['intersection'](_0x54ddc6[_0x2c24('0x32')],qs[_0x2c24('0x34')](_0x1952a2['query'][_0x2c24('0x34')]));_0x4831c4[_0x2c24('0x33')]=_0x4831c4[_0x2c24('0x33')][_0x2c24('0x35')]?_0x4831c4['attributes']:_0x54ddc6[_0x2c24('0x32')];if(!_0x1952a2[_0x2c24('0x30')][_0x2c24('0x36')]('nolimit')){_0x4831c4[_0x2c24('0x21')]=qs[_0x2c24('0x21')](_0x1952a2[_0x2c24('0x30')][_0x2c24('0x21')]);_0x4831c4['offset']=qs[_0x2c24('0x1f')](_0x1952a2[_0x2c24('0x30')][_0x2c24('0x1f')]);}_0x4831c4[_0x2c24('0x37')]=qs[_0x2c24('0x38')](_0x1952a2[_0x2c24('0x30')][_0x2c24('0x38')]);_0x4831c4['where']=qs[_0x2c24('0x39')](_[_0x2c24('0x3a')](_0x1952a2[_0x2c24('0x30')],_0x54ddc6[_0x2c24('0x39')]),_0x17194f);if(_0x1952a2[_0x2c24('0x30')][_0x2c24('0x3b')]){_0x4831c4['where']=_[_0x2c24('0x3c')](_0x4831c4['where'],{'$or':_[_0x2c24('0x2c')](_0x17194f,function(_0x29af0e){if(_0x29af0e[_0x2c24('0x3d')]!==_0x2c24('0x3e')){var _0x56f7ab={};_0x56f7ab[_0x29af0e[_0x2c24('0x2a')]]={'$like':'%'+_0x1952a2[_0x2c24('0x30')][_0x2c24('0x3b')]+'%'};return _0x56f7ab;}})});}_0x4831c4=_[_0x2c24('0x3c')]({},_0x4831c4,_0x1952a2['options']);var _0x2fa038={'where':_0x4831c4[_0x2c24('0x3f')]};return db[_0x2c24('0x40')][_0x2c24('0x41')](_0x2fa038)[_0x2c24('0x28')](function(_0x3a8a5b){_0x3b5495['count']=_0x3a8a5b;if(_0x1952a2[_0x2c24('0x30')][_0x2c24('0x42')]){_0x4831c4[_0x2c24('0x43')]=[{'all':!![]}];}return db[_0x2c24('0x40')][_0x2c24('0x44')](_0x4831c4);})[_0x2c24('0x28')](function(_0x31a6ae){_0x3b5495[_0x2c24('0x45')]=_0x31a6ae;return _0x3b5495;})[_0x2c24('0x28')](respondWithFilteredResult(_0x1a4a9a,_0x4831c4))[_0x2c24('0x46')](handleError(_0x1a4a9a,null));};exports[_0x2c24('0x47')]=function(_0xa12339,_0x2b608){var _0x5667e1={'raw':![],'where':{'id':_0xa12339[_0x2c24('0x48')]['id']}},_0x1fc9b5={};_0x1fc9b5[_0x2c24('0x32')]=_['keys'](db[_0x2c24('0x40')][_0x2c24('0x2d')]);_0x1fc9b5['query']=_[_0x2c24('0x31')](_0xa12339[_0x2c24('0x30')]);_0x1fc9b5[_0x2c24('0x39')]=_[_0x2c24('0x49')](_0x1fc9b5[_0x2c24('0x32')],_0x1fc9b5[_0x2c24('0x30')]);_0x5667e1[_0x2c24('0x33')]=_[_0x2c24('0x49')](_0x1fc9b5[_0x2c24('0x32')],qs['fields'](_0xa12339[_0x2c24('0x30')][_0x2c24('0x34')]));_0x5667e1[_0x2c24('0x33')]=_0x5667e1[_0x2c24('0x33')][_0x2c24('0x35')]?_0x5667e1[_0x2c24('0x33')]:_0x1fc9b5[_0x2c24('0x32')];if(_0xa12339[_0x2c24('0x30')][_0x2c24('0x42')]){_0x5667e1[_0x2c24('0x43')]=[{'all':!![]}];}_0x5667e1=_['merge']({},_0x5667e1,_0xa12339[_0x2c24('0x4a')]);return db[_0x2c24('0x40')][_0x2c24('0x4b')](_0x5667e1)[_0x2c24('0x28')](handleEntityNotFound(_0x2b608,null))[_0x2c24('0x28')](respondWithResult(_0x2b608,null))[_0x2c24('0x46')](handleError(_0x2b608,null));};exports[_0x2c24('0x4c')]=function(_0x5e90c4,_0x5ac882){return db['VoiceQueueReport']['create'](_0x5e90c4[_0x2c24('0x4d')],{})[_0x2c24('0x28')](respondWithResult(_0x5ac882,0xc9))['catch'](handleError(_0x5ac882,null));};exports['update']=function(_0x355319,_0x7baa1b){if(_0x355319['body']['id']){delete _0x355319[_0x2c24('0x4d')]['id'];}return db[_0x2c24('0x40')]['find']({'where':{'id':_0x355319[_0x2c24('0x48')]['id']}})[_0x2c24('0x28')](handleEntityNotFound(_0x7baa1b,null))[_0x2c24('0x28')](saveUpdates(_0x355319[_0x2c24('0x4d')],null))['then'](respondWithResult(_0x7baa1b,null))['catch'](handleError(_0x7baa1b,null));};exports[_0x2c24('0x4e')]=function(_0x39ad84,_0x1ea76f){return db['VoiceQueueReport'][_0x2c24('0x4b')]({'where':{'id':_0x39ad84[_0x2c24('0x48')]['id']}})[_0x2c24('0x28')](handleEntityNotFound(_0x1ea76f,null))[_0x2c24('0x28')](removeEntity(_0x1ea76f,null))[_0x2c24('0x46')](handleError(_0x1ea76f,null));};exports[_0x2c24('0x4f')]=function(_0x26a201,_0x34460c){return db[_0x2c24('0x40')][_0x2c24('0x4f')]()['then'](respondWithResult(_0x34460c,null))['catch'](handleError(_0x34460c,null));};exports['getVoiceQueuesReport']=function(_0x190303,_0x51d16a){var _0x65c1f3={},_0x235ce2={},_0xa07c25={'count':0x0,'rows':[]};_0x235ce2['model']=_['keys'](db[_0x2c24('0x40')][_0x2c24('0x2d')]);_0x235ce2[_0x2c24('0x30')]=_[_0x2c24('0x31')](_0x190303['query']);_0x235ce2[_0x2c24('0x39')]=_['intersection'](_0x235ce2[_0x2c24('0x32')],_0x235ce2['query']);_0x65c1f3[_0x2c24('0x33')]=_['intersection'](_0x235ce2[_0x2c24('0x32')],qs[_0x2c24('0x34')](_0x190303[_0x2c24('0x30')][_0x2c24('0x34')]));_0x65c1f3[_0x2c24('0x33')]=_0x65c1f3['attributes']['length']?_0x65c1f3['attributes']:_0x235ce2['model'];if(!_0x190303[_0x2c24('0x30')][_0x2c24('0x36')]('nolimit')){_0x65c1f3[_0x2c24('0x21')]=qs[_0x2c24('0x21')](_0x190303[_0x2c24('0x30')][_0x2c24('0x21')]);_0x65c1f3[_0x2c24('0x1f')]=qs[_0x2c24('0x1f')](_0x190303[_0x2c24('0x30')][_0x2c24('0x1f')]);}_0x65c1f3[_0x2c24('0x37')]=qs['sort'](_0x190303['query'][_0x2c24('0x38')]);_0x65c1f3[_0x2c24('0x3f')]=qs[_0x2c24('0x39')](_[_0x2c24('0x3a')](_0x190303[_0x2c24('0x30')],_0x235ce2[_0x2c24('0x39')]));if(_0x190303[_0x2c24('0x30')][_0x2c24('0x3b')]){_0x65c1f3[_0x2c24('0x3f')]=_[_0x2c24('0x3c')](_0x65c1f3['where'],{'$or':_[_0x2c24('0x2c')](_0x65c1f3[_0x2c24('0x33')],function(_0x1a1eb5){var _0x1c6412={};_0x1c6412[_0x1a1eb5]={'$like':'%'+_0x190303[_0x2c24('0x30')][_0x2c24('0x3b')]+'%'};return _0x1c6412;})});}_0x65c1f3=_[_0x2c24('0x3c')]({},_0x65c1f3,_0x190303[_0x2c24('0x4a')]);var _0x4fde9f={'where':_0x65c1f3[_0x2c24('0x3f')]};return db[_0x2c24('0x40')][_0x2c24('0x41')](_0x4fde9f)[_0x2c24('0x28')](function(_0x51627f){_0xa07c25[_0x2c24('0x41')]=_0x51627f;if(_0x190303[_0x2c24('0x30')][_0x2c24('0x42')]){_0x65c1f3[_0x2c24('0x43')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0x2c24('0x44')](_0x65c1f3);})[_0x2c24('0x28')](function(_0x180a40){_0xa07c25[_0x2c24('0x45')]=_0x180a40;return _0xa07c25;})[_0x2c24('0x28')](respondWithFilteredResult(_0x51d16a,_0x65c1f3,_0x2c24('0x50')))[_0x2c24('0x46')](handleError(_0x51d16a,null,_0x2c24('0x50')));};