Built motion from commit e1760111.|2.6.18
[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 _0xaeec=['end','undefined','limit','offset','count','Content-Range','json','apply','update','then','destroy','error','stack','name','index','map','VoiceQueueReport','fieldName','type','model','keys','query','intersection','attributes','length','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','options','include','findAll','rows','show','rawAttributes','merge','find','catch','create','body','params','describe','getVoiceQueuesReport','hasOwnProperty','rimraf','fast-json-patch','request-promise','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xaeec,0x1f2));var _0xcaee=function(_0x2e0f1c,_0x373ece){_0x2e0f1c=_0x2e0f1c-0x0;var _0x5b59b8=_0xaeec[_0x2e0f1c];return _0x5b59b8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcaee('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcaee('0x1'));var rp=require(_0xcaee('0x2'));var moment=require(_0xcaee('0x3'));var BPromise=require(_0xcaee('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xcaee('0x5'));var csv=require(_0xcaee('0x6'));var ejs=require(_0xcaee('0x7'));var fs=require('fs');var fs_extra=require(_0xcaee('0x8'));var _=require(_0xcaee('0x9'));var squel=require(_0xcaee('0xa'));var crypto=require(_0xcaee('0xb'));var jsforce=require(_0xcaee('0xc'));var deskjs=require(_0xcaee('0xd'));var toCsv=require('to-csv');var querystring=require(_0xcaee('0xe'));var Papa=require(_0xcaee('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xcaee('0x10'));var as=require(_0xcaee('0x11'));var hardwareService=require(_0xcaee('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0xcaee('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xcaee('0x14'))['db'];config[_0xcaee('0x15')]=_[_0xcaee('0x16')](config[_0xcaee('0x15')],{'host':_0xcaee('0x17'),'port':0x18eb});var socket=require(_0xcaee('0x18'))(new Redis(config[_0xcaee('0x15')]));require('./voiceQueueReport.socket')[_0xcaee('0x19')](socket);function respondWithStatusCode(_0x5e2541,_0x5dbe17){_0x5dbe17=_0x5dbe17||0xcc;return function(_0x1762a4){if(_0x1762a4){return _0x5e2541['sendStatus'](_0x5dbe17);}return _0x5e2541[_0xcaee('0x1a')](_0x5dbe17)[_0xcaee('0x1b')]();};}function respondWithResult(_0x47fa3f,_0x8cf766){_0x8cf766=_0x8cf766||0xc8;return function(_0x1985f0){if(_0x1985f0){return _0x47fa3f['status'](_0x8cf766)['json'](_0x1985f0);}};}function respondWithFilteredResult(_0x4d20ec,_0xd9dbd6){return function(_0x2ea953){if(_0x2ea953){var _0x37219a=typeof _0xd9dbd6['offset']===_0xcaee('0x1c')&&typeof _0xd9dbd6[_0xcaee('0x1d')]===_0xcaee('0x1c');var _0x536767=_0x2ea953['count'];var _0x1fe565=_0x37219a?0x0:_0xd9dbd6[_0xcaee('0x1e')];var _0x355f32=_0x37219a?_0x2ea953[_0xcaee('0x1f')]:_0xd9dbd6[_0xcaee('0x1e')]+_0xd9dbd6[_0xcaee('0x1d')];var _0xffbb36;if(_0x355f32>=_0x536767){_0x355f32=_0x536767;_0xffbb36=0xc8;}else{_0xffbb36=0xce;}_0x4d20ec[_0xcaee('0x1a')](_0xffbb36);return _0x4d20ec['set'](_0xcaee('0x20'),_0x1fe565+'-'+_0x355f32+'/'+_0x536767)[_0xcaee('0x21')](_0x2ea953);}return null;};}function patchUpdates(_0x499c7d){return function(_0x2ade96){try{jsonpatch[_0xcaee('0x22')](_0x2ade96,_0x499c7d,!![]);}catch(_0x38b8ca){return BPromise['reject'](_0x38b8ca);}return _0x2ade96['save']();};}function saveUpdates(_0x17bdb1,_0x3dff25){return function(_0x22492f){if(_0x22492f){return _0x22492f[_0xcaee('0x23')](_0x17bdb1)[_0xcaee('0x24')](function(_0x257956){return _0x257956;});}return null;};}function removeEntity(_0x48add6,_0x160bb2){return function(_0x36cfa8){if(_0x36cfa8){return _0x36cfa8[_0xcaee('0x25')]()[_0xcaee('0x24')](function(){_0x48add6[_0xcaee('0x1a')](0xcc)[_0xcaee('0x1b')]();});}};}function handleEntityNotFound(_0x43c8ac,_0xde3f5e){return function(_0x54a78c){if(!_0x54a78c){_0x43c8ac['sendStatus'](0x194);}return _0x54a78c;};}function handleError(_0x57e4a7,_0x3024f1){_0x3024f1=_0x3024f1||0x1f4;return function(_0x4d8c4b){logger[_0xcaee('0x26')](_0x4d8c4b[_0xcaee('0x27')]);if(_0x4d8c4b['name']){delete _0x4d8c4b[_0xcaee('0x28')];}_0x57e4a7[_0xcaee('0x1a')](_0x3024f1)['send'](_0x4d8c4b);};}exports[_0xcaee('0x29')]=function(_0x3fbe75,_0x473542){var _0x5f2eed={},_0x3c5fa7={},_0x5c70e3={'count':0x0,'rows':[]};var _0xd43ec3=_[_0xcaee('0x2a')](db[_0xcaee('0x2b')]['rawAttributes'],function(_0x1f3e26){return{'name':_0x1f3e26[_0xcaee('0x2c')],'type':_0x1f3e26[_0xcaee('0x2d')]['key']};});_0x3c5fa7[_0xcaee('0x2e')]=_[_0xcaee('0x2a')](_0xd43ec3,_0xcaee('0x28'));_0x3c5fa7['query']=_[_0xcaee('0x2f')](_0x3fbe75[_0xcaee('0x30')]);_0x3c5fa7['filters']=_[_0xcaee('0x31')](_0x3c5fa7[_0xcaee('0x2e')],_0x3c5fa7[_0xcaee('0x30')]);_0x5f2eed['attributes']=_[_0xcaee('0x31')](_0x3c5fa7[_0xcaee('0x2e')],qs['fields'](_0x3fbe75[_0xcaee('0x30')]['fields']));_0x5f2eed[_0xcaee('0x32')]=_0x5f2eed[_0xcaee('0x32')][_0xcaee('0x33')]?_0x5f2eed[_0xcaee('0x32')]:_0x3c5fa7[_0xcaee('0x2e')];if(!_0x3fbe75[_0xcaee('0x30')]['hasOwnProperty'](_0xcaee('0x34'))){_0x5f2eed['limit']=qs['limit'](_0x3fbe75[_0xcaee('0x30')]['limit']);_0x5f2eed[_0xcaee('0x1e')]=qs[_0xcaee('0x1e')](_0x3fbe75['query'][_0xcaee('0x1e')]);}_0x5f2eed[_0xcaee('0x35')]=qs[_0xcaee('0x36')](_0x3fbe75[_0xcaee('0x30')][_0xcaee('0x36')]);_0x5f2eed[_0xcaee('0x37')]=qs[_0xcaee('0x38')](_[_0xcaee('0x39')](_0x3fbe75[_0xcaee('0x30')],_0x3c5fa7[_0xcaee('0x38')]),_0xd43ec3);if(_0x3fbe75[_0xcaee('0x30')]['filter']){_0x5f2eed[_0xcaee('0x37')]=_['merge'](_0x5f2eed['where'],{'$or':_['map'](_0xd43ec3,function(_0x251448){if(_0x251448['type']!==_0xcaee('0x3a')){var _0x1220f4={};_0x1220f4[_0x251448[_0xcaee('0x28')]]={'$like':'%'+_0x3fbe75[_0xcaee('0x30')][_0xcaee('0x3b')]+'%'};return _0x1220f4;}})});}_0x5f2eed=_['merge']({},_0x5f2eed,_0x3fbe75[_0xcaee('0x3c')]);var _0x442561={'where':_0x5f2eed['where']};return db[_0xcaee('0x2b')][_0xcaee('0x1f')](_0x442561)[_0xcaee('0x24')](function(_0x5004eb){_0x5c70e3[_0xcaee('0x1f')]=_0x5004eb;if(_0x3fbe75['query']['includeAll']){_0x5f2eed[_0xcaee('0x3d')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0xcaee('0x3e')](_0x5f2eed);})['then'](function(_0x51fe6c){_0x5c70e3[_0xcaee('0x3f')]=_0x51fe6c;return _0x5c70e3;})[_0xcaee('0x24')](respondWithFilteredResult(_0x473542,_0x5f2eed))['catch'](handleError(_0x473542,null));};exports[_0xcaee('0x40')]=function(_0x2e3134,_0xf99b08){var _0x3d32ab={'raw':![],'where':{'id':_0x2e3134['params']['id']}},_0x5aacd2={};_0x5aacd2['model']=_[_0xcaee('0x2f')](db['VoiceQueueReport'][_0xcaee('0x41')]);_0x5aacd2[_0xcaee('0x30')]=_[_0xcaee('0x2f')](_0x2e3134[_0xcaee('0x30')]);_0x5aacd2[_0xcaee('0x38')]=_[_0xcaee('0x31')](_0x5aacd2[_0xcaee('0x2e')],_0x5aacd2['query']);_0x3d32ab[_0xcaee('0x32')]=_[_0xcaee('0x31')](_0x5aacd2[_0xcaee('0x2e')],qs['fields'](_0x2e3134[_0xcaee('0x30')]['fields']));_0x3d32ab[_0xcaee('0x32')]=_0x3d32ab['attributes']['length']?_0x3d32ab[_0xcaee('0x32')]:_0x5aacd2[_0xcaee('0x2e')];if(_0x2e3134['query']['includeAll']){_0x3d32ab['include']=[{'all':!![]}];}_0x3d32ab=_[_0xcaee('0x42')]({},_0x3d32ab,_0x2e3134[_0xcaee('0x3c')]);return db[_0xcaee('0x2b')][_0xcaee('0x43')](_0x3d32ab)['then'](handleEntityNotFound(_0xf99b08,null))['then'](respondWithResult(_0xf99b08,null))[_0xcaee('0x44')](handleError(_0xf99b08,null));};exports[_0xcaee('0x45')]=function(_0x13ca06,_0x30be31){return db[_0xcaee('0x2b')][_0xcaee('0x45')](_0x13ca06[_0xcaee('0x46')],{})[_0xcaee('0x24')](respondWithResult(_0x30be31,0xc9))[_0xcaee('0x44')](handleError(_0x30be31,null));};exports['update']=function(_0x5bb5da,_0x8a5698){if(_0x5bb5da[_0xcaee('0x46')]['id']){delete _0x5bb5da['body']['id'];}return db[_0xcaee('0x2b')]['find']({'where':{'id':_0x5bb5da[_0xcaee('0x47')]['id']}})[_0xcaee('0x24')](handleEntityNotFound(_0x8a5698,null))[_0xcaee('0x24')](saveUpdates(_0x5bb5da[_0xcaee('0x46')],null))[_0xcaee('0x24')](respondWithResult(_0x8a5698,null))[_0xcaee('0x44')](handleError(_0x8a5698,null));};exports['destroy']=function(_0x563548,_0x578ddf){return db[_0xcaee('0x2b')][_0xcaee('0x43')]({'where':{'id':_0x563548[_0xcaee('0x47')]['id']}})[_0xcaee('0x24')](handleEntityNotFound(_0x578ddf,null))[_0xcaee('0x24')](removeEntity(_0x578ddf,null))[_0xcaee('0x44')](handleError(_0x578ddf,null));};exports[_0xcaee('0x48')]=function(_0x3a6925,_0x47b3da){return db[_0xcaee('0x2b')][_0xcaee('0x48')]()['then'](respondWithResult(_0x47b3da,null))[_0xcaee('0x44')](handleError(_0x47b3da,null));};exports[_0xcaee('0x49')]=function(_0x509f80,_0x150af1){var _0x3d0013={},_0x475542={},_0x50821d={'count':0x0,'rows':[]};_0x475542[_0xcaee('0x2e')]=_['keys'](db[_0xcaee('0x2b')][_0xcaee('0x41')]);_0x475542[_0xcaee('0x30')]=_[_0xcaee('0x2f')](_0x509f80[_0xcaee('0x30')]);_0x475542[_0xcaee('0x38')]=_[_0xcaee('0x31')](_0x475542[_0xcaee('0x2e')],_0x475542[_0xcaee('0x30')]);_0x3d0013['attributes']=_[_0xcaee('0x31')](_0x475542[_0xcaee('0x2e')],qs['fields'](_0x509f80[_0xcaee('0x30')]['fields']));_0x3d0013[_0xcaee('0x32')]=_0x3d0013[_0xcaee('0x32')]['length']?_0x3d0013[_0xcaee('0x32')]:_0x475542[_0xcaee('0x2e')];if(!_0x509f80[_0xcaee('0x30')][_0xcaee('0x4a')](_0xcaee('0x34'))){_0x3d0013[_0xcaee('0x1d')]=qs[_0xcaee('0x1d')](_0x509f80[_0xcaee('0x30')]['limit']);_0x3d0013[_0xcaee('0x1e')]=qs[_0xcaee('0x1e')](_0x509f80['query'][_0xcaee('0x1e')]);}_0x3d0013['order']=qs['sort'](_0x509f80['query'][_0xcaee('0x36')]);_0x3d0013[_0xcaee('0x37')]=qs[_0xcaee('0x38')](_['pick'](_0x509f80[_0xcaee('0x30')],_0x475542[_0xcaee('0x38')]));if(_0x509f80[_0xcaee('0x30')][_0xcaee('0x3b')]){_0x3d0013[_0xcaee('0x37')]=_['merge'](_0x3d0013[_0xcaee('0x37')],{'$or':_[_0xcaee('0x2a')](_0x3d0013['attributes'],function(_0x579874){var _0x4cd69a={};_0x4cd69a[_0x579874]={'$like':'%'+_0x509f80[_0xcaee('0x30')][_0xcaee('0x3b')]+'%'};return _0x4cd69a;})});}_0x3d0013=_[_0xcaee('0x42')]({},_0x3d0013,_0x509f80[_0xcaee('0x3c')]);var _0x3ff9ea={'where':_0x3d0013[_0xcaee('0x37')]};return db['VoiceQueueReport']['count'](_0x3ff9ea)[_0xcaee('0x24')](function(_0x2986b1){_0x50821d[_0xcaee('0x1f')]=_0x2986b1;if(_0x509f80[_0xcaee('0x30')]['includeAll']){_0x3d0013[_0xcaee('0x3d')]=[{'all':!![]}];}return db[_0xcaee('0x2b')]['findAll'](_0x3d0013);})[_0xcaee('0x24')](function(_0x4d2cf6){_0x50821d[_0xcaee('0x3f')]=_0x4d2cf6;return _0x50821d;})[_0xcaee('0x24')](respondWithFilteredResult(_0x150af1,_0x3d0013,_0xcaee('0x49')))[_0xcaee('0x44')](handleError(_0x150af1,null,_0xcaee('0x49')));};