Built motion from commit 753c950e.|2.5.42
[motion2.git] / server / api / chatQueue / chatQueue.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 _0xee15=['interface','flatMap','Agents','sequelize','transaction','each','findOrCreate','forEach','emit','removeTeams','User','select','field','tq.TeamId','from','join','user_has_teams','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','all','union','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','userChatQueue:save','isArray','getAgents','hasOwnProperty','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','then','info','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','get','UserProfileResource','destroy','stack','name','index','map','ChatQueue','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','merge','type','VIRTUAL','filter','include','rows','show','params','includeAll','create','user','role','ChatQueues','find','userProfileId','autoAssociation','body','describe','getMembers','findOne','UserChatQueue','length','ChatQueueId','options','findAll','UserId','agent','chatPause','updatedAt','format','SIP','createdAt','getTeams','Team','addTeams','ids','voicePause'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0xee15,0x1e3));var _0x5ee1=function(_0x3b9d5f,_0x2e9039){_0x3b9d5f=_0x3b9d5f-0x0;var _0x39924e=_0xee15[_0x3b9d5f];return _0x39924e;};'use strict';var emlformat=require(_0x5ee1('0x0'));var rimraf=require(_0x5ee1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5ee1('0x2'));var rp=require('request-promise');var moment=require(_0x5ee1('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5ee1('0x4'));var util=require(_0x5ee1('0x5'));var path=require(_0x5ee1('0x6'));var sox=require(_0x5ee1('0x7'));var csv=require(_0x5ee1('0x8'));var ejs=require(_0x5ee1('0x9'));var fs=require('fs');var fs_extra=require(_0x5ee1('0xa'));var _=require(_0x5ee1('0xb'));var squel=require(_0x5ee1('0xc'));var crypto=require(_0x5ee1('0xd'));var jsforce=require(_0x5ee1('0xe'));var deskjs=require(_0x5ee1('0xf'));var toCsv=require(_0x5ee1('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x5ee1('0x10'));var authService=require(_0x5ee1('0x11'));var qs=require(_0x5ee1('0x12'));var as=require(_0x5ee1('0x13'));var hardwareService=require(_0x5ee1('0x14'));var logger=require(_0x5ee1('0x15'))(_0x5ee1('0x16'));var utils=require(_0x5ee1('0x17'));var config=require(_0x5ee1('0x18'));var licenseUtil=require(_0x5ee1('0x19'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x5ee1('0x1a')](config[_0x5ee1('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x5ee1('0x1c'))(new Redis(config['redis']));require(_0x5ee1('0x1d'))[_0x5ee1('0x1e')](socket);var jayson=require(_0x5ee1('0x1f'));var client=jayson[_0x5ee1('0x20')][_0x5ee1('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x1b7241,_0x4ef9fa,_0x1e6eaf,_0x59d3f8){return new BPromise(function(_0x19a021,_0xb37eba){var _0x4beb1b=_0x59d3f8||client;return _0x4beb1b['request'](_0x1b7241,_0x1e6eaf)[_0x5ee1('0x22')](function(_0x5e4476){logger[_0x5ee1('0x23')](_0x5ee1('0x24'),_0x4ef9fa,'request\x20sent');logger[_0x5ee1('0x25')](_0x5ee1('0x26'),_0x4ef9fa,_0x5ee1('0x27'),JSON['stringify'](_0x5e4476));if(_0x5e4476[_0x5ee1('0x28')]){if(_0x5e4476[_0x5ee1('0x28')]['code']===0x1f4){logger[_0x5ee1('0x28')](_0x5ee1('0x24'),_0x4ef9fa,_0x5e4476[_0x5ee1('0x28')][_0x5ee1('0x29')]);return _0xb37eba(_0x5e4476[_0x5ee1('0x28')][_0x5ee1('0x29')]);}logger[_0x5ee1('0x28')]('ChatQueue,\x20%s,\x20%s',_0x4ef9fa,_0x5e4476[_0x5ee1('0x28')][_0x5ee1('0x29')]);return _0x19a021(_0x5e4476[_0x5ee1('0x28')][_0x5ee1('0x29')]);}else{logger['info'](_0x5ee1('0x24'),_0x4ef9fa,'request\x20sent');_0x19a021(_0x5e4476[_0x5ee1('0x2a')][_0x5ee1('0x29')]);}})[_0x5ee1('0x2b')](function(_0x2ae711){logger[_0x5ee1('0x28')](_0x5ee1('0x24'),_0x4ef9fa,_0x2ae711);_0xb37eba(_0x2ae711);});});}function respondWithStatusCode(_0xa03dbb,_0x4b54af){_0x4b54af=_0x4b54af||0xcc;return function(_0x36fa0c){if(_0x36fa0c){return _0xa03dbb[_0x5ee1('0x2c')](_0x4b54af);}return _0xa03dbb[_0x5ee1('0x2d')](_0x4b54af)[_0x5ee1('0x2e')]();};}function respondWithResult(_0x45736c,_0x3c33d7){_0x3c33d7=_0x3c33d7||0xc8;return function(_0x28226b){if(_0x28226b){return _0x45736c['status'](_0x3c33d7)[_0x5ee1('0x2f')](_0x28226b);}};}function respondWithFilteredResult(_0x50c2ab,_0x53f26f){return function(_0x5190b7){if(_0x5190b7){var _0x3ee3a4=typeof _0x53f26f[_0x5ee1('0x30')]===_0x5ee1('0x31')&&typeof _0x53f26f[_0x5ee1('0x32')]==='undefined';var _0x153897=_0x5190b7['count'];var _0x13e647=_0x3ee3a4?0x0:_0x53f26f[_0x5ee1('0x30')];var _0x9cdc54=_0x3ee3a4?_0x5190b7[_0x5ee1('0x33')]:_0x53f26f[_0x5ee1('0x30')]+_0x53f26f[_0x5ee1('0x32')];var _0x3894b1;if(_0x9cdc54>=_0x153897){_0x9cdc54=_0x153897;_0x3894b1=0xc8;}else{_0x3894b1=0xce;}_0x50c2ab[_0x5ee1('0x2d')](_0x3894b1);return _0x50c2ab[_0x5ee1('0x34')]('Content-Range',_0x13e647+'-'+_0x9cdc54+'/'+_0x153897)[_0x5ee1('0x2f')](_0x5190b7);}return null;};}function patchUpdates(_0x4b9b00){return function(_0x47c458){try{jsonpatch['apply'](_0x47c458,_0x4b9b00,!![]);}catch(_0x495680){return BPromise['reject'](_0x495680);}return _0x47c458['save']();};}function saveUpdates(_0x32c203,_0x2f7505){return function(_0xf066c9){if(_0xf066c9){return _0xf066c9['update'](_0x32c203)[_0x5ee1('0x22')](function(_0x2ce377){return _0x2ce377;});}return null;};}function removeEntity(_0x5f2bae,_0x46d21e){return function(_0x2315e0){if(_0x2315e0){return _0x2315e0['destroy']()[_0x5ee1('0x22')](function(){var _0x1dd866=_0x2315e0[_0x5ee1('0x35')]({'plain':!![]});var _0x2b2f4c='ChatQueues';return db[_0x5ee1('0x36')][_0x5ee1('0x37')]({'where':{'type':_0x2b2f4c,'resourceId':_0x1dd866['id']}})[_0x5ee1('0x22')](function(){return _0x2315e0;});})[_0x5ee1('0x22')](function(){_0x5f2bae[_0x5ee1('0x2d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39663d,_0xafcd02){return function(_0x1fc0ad){if(!_0x1fc0ad){_0x39663d[_0x5ee1('0x2c')](0x194);}return _0x1fc0ad;};}function handleError(_0x9e4e50,_0x311f60){_0x311f60=_0x311f60||0x1f4;return function(_0x3ba176){logger[_0x5ee1('0x28')](_0x3ba176[_0x5ee1('0x38')]);if(_0x3ba176[_0x5ee1('0x39')]){delete _0x3ba176[_0x5ee1('0x39')];}_0x9e4e50['status'](_0x311f60)['send'](_0x3ba176);};}exports[_0x5ee1('0x3a')]=function(_0x89544d,_0x3205d7){var _0x240e0d={},_0xff4ccf={},_0x3c28cb={'count':0x0,'rows':[]};var _0x436112=_[_0x5ee1('0x3b')](db[_0x5ee1('0x3c')][_0x5ee1('0x3d')],function(_0x11c8cb){return{'name':_0x11c8cb[_0x5ee1('0x3e')],'type':_0x11c8cb['type'][_0x5ee1('0x3f')]};});_0xff4ccf[_0x5ee1('0x40')]=_[_0x5ee1('0x3b')](_0x436112,_0x5ee1('0x39'));_0xff4ccf[_0x5ee1('0x41')]=_[_0x5ee1('0x42')](_0x89544d[_0x5ee1('0x41')]);_0xff4ccf['filters']=_[_0x5ee1('0x43')](_0xff4ccf[_0x5ee1('0x40')],_0xff4ccf[_0x5ee1('0x41')]);_0x240e0d[_0x5ee1('0x44')]=_[_0x5ee1('0x43')](_0xff4ccf[_0x5ee1('0x40')],qs[_0x5ee1('0x45')](_0x89544d['query']['fields']));_0x240e0d[_0x5ee1('0x44')]=_0x240e0d['attributes']['length']?_0x240e0d['attributes']:_0xff4ccf['model'];if(!_0x89544d[_0x5ee1('0x41')]['hasOwnProperty'](_0x5ee1('0x46'))){_0x240e0d[_0x5ee1('0x32')]=qs[_0x5ee1('0x32')](_0x89544d['query'][_0x5ee1('0x32')]);_0x240e0d[_0x5ee1('0x30')]=qs[_0x5ee1('0x30')](_0x89544d[_0x5ee1('0x41')][_0x5ee1('0x30')]);}_0x240e0d[_0x5ee1('0x47')]=qs['sort'](_0x89544d[_0x5ee1('0x41')][_0x5ee1('0x48')]);_0x240e0d[_0x5ee1('0x49')]=qs[_0x5ee1('0x4a')](_[_0x5ee1('0x4b')](_0x89544d['query'],_0xff4ccf[_0x5ee1('0x4a')]),_0x436112);if(_0x89544d[_0x5ee1('0x41')]['filter']){_0x240e0d[_0x5ee1('0x49')]=_[_0x5ee1('0x4c')](_0x240e0d[_0x5ee1('0x49')],{'$or':_[_0x5ee1('0x3b')](_0x436112,function(_0x48e41d){if(_0x48e41d[_0x5ee1('0x4d')]!==_0x5ee1('0x4e')){var _0x5c9791={};_0x5c9791[_0x48e41d[_0x5ee1('0x39')]]={'$like':'%'+_0x89544d['query'][_0x5ee1('0x4f')]+'%'};return _0x5c9791;}})});}_0x240e0d=_[_0x5ee1('0x4c')]({},_0x240e0d,_0x89544d['options']);var _0x53823f={'where':_0x240e0d['where']};return db[_0x5ee1('0x3c')][_0x5ee1('0x33')](_0x53823f)[_0x5ee1('0x22')](function(_0x527996){_0x3c28cb[_0x5ee1('0x33')]=_0x527996;if(_0x89544d[_0x5ee1('0x41')]['includeAll']){_0x240e0d[_0x5ee1('0x50')]=[{'all':!![]}];}return db[_0x5ee1('0x3c')]['findAll'](_0x240e0d);})[_0x5ee1('0x22')](function(_0x566f82){_0x3c28cb[_0x5ee1('0x51')]=_0x566f82;return _0x3c28cb;})['then'](respondWithFilteredResult(_0x3205d7,_0x240e0d))[_0x5ee1('0x2b')](handleError(_0x3205d7,null));};exports[_0x5ee1('0x52')]=function(_0x5a0584,_0x13e99c){var _0x84a9ec={'raw':!![],'where':{'id':_0x5a0584[_0x5ee1('0x53')]['id']}},_0x9f6fa1={};_0x9f6fa1['model']=_[_0x5ee1('0x42')](db[_0x5ee1('0x3c')][_0x5ee1('0x3d')]);_0x9f6fa1[_0x5ee1('0x41')]=_[_0x5ee1('0x42')](_0x5a0584[_0x5ee1('0x41')]);_0x9f6fa1[_0x5ee1('0x4a')]=_[_0x5ee1('0x43')](_0x9f6fa1[_0x5ee1('0x40')],_0x9f6fa1[_0x5ee1('0x41')]);_0x84a9ec[_0x5ee1('0x44')]=_['intersection'](_0x9f6fa1['model'],qs[_0x5ee1('0x45')](_0x5a0584[_0x5ee1('0x41')][_0x5ee1('0x45')]));_0x84a9ec['attributes']=_0x84a9ec[_0x5ee1('0x44')]['length']?_0x84a9ec[_0x5ee1('0x44')]:_0x9f6fa1[_0x5ee1('0x40')];if(_0x5a0584[_0x5ee1('0x41')][_0x5ee1('0x54')]){_0x84a9ec[_0x5ee1('0x50')]=[{'all':!![]}];}_0x84a9ec=_[_0x5ee1('0x4c')]({},_0x84a9ec,_0x5a0584['options']);return db[_0x5ee1('0x3c')]['find'](_0x84a9ec)[_0x5ee1('0x22')](handleEntityNotFound(_0x13e99c,null))[_0x5ee1('0x22')](respondWithResult(_0x13e99c,null))[_0x5ee1('0x2b')](handleError(_0x13e99c,null));};exports[_0x5ee1('0x55')]=function(_0x47dfb3,_0x14c51c){return db[_0x5ee1('0x3c')]['create'](_0x47dfb3['body'],{})['then'](function(_0x3b6213){var _0x4abd84=_0x47dfb3[_0x5ee1('0x56')][_0x5ee1('0x35')]({'plain':!![]});if(!_0x4abd84)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4abd84[_0x5ee1('0x57')]===_0x5ee1('0x56')){var _0x4d02ef=_0x3b6213[_0x5ee1('0x35')]({'plain':!![]});var _0x3c4f74=_0x5ee1('0x58');return db['UserProfileSection'][_0x5ee1('0x59')]({'where':{'name':_0x3c4f74,'userProfileId':_0x4abd84[_0x5ee1('0x5a')]},'raw':!![]})['then'](function(_0x341896){if(_0x341896&&_0x341896[_0x5ee1('0x5b')]===0x0){return db[_0x5ee1('0x36')][_0x5ee1('0x55')]({'name':_0x4d02ef['name'],'resourceId':_0x4d02ef['id'],'type':_0x341896['name'],'sectionId':_0x341896['id']},{})[_0x5ee1('0x22')](function(){return _0x3b6213;});}else{return _0x3b6213;}})[_0x5ee1('0x2b')](function(_0x78274a){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x78274a);throw _0x78274a;});}return _0x3b6213;})[_0x5ee1('0x22')](respondWithResult(_0x14c51c,0xc9))['catch'](handleError(_0x14c51c,null));};exports['update']=function(_0x361592,_0x4d63fe){if(_0x361592[_0x5ee1('0x5c')]['id']){delete _0x361592[_0x5ee1('0x5c')]['id'];}return db[_0x5ee1('0x3c')][_0x5ee1('0x59')]({'where':{'id':_0x361592[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](handleEntityNotFound(_0x4d63fe,null))[_0x5ee1('0x22')](saveUpdates(_0x361592[_0x5ee1('0x5c')],null))[_0x5ee1('0x22')](respondWithResult(_0x4d63fe,null))[_0x5ee1('0x2b')](handleError(_0x4d63fe,null));};exports[_0x5ee1('0x37')]=function(_0x525b8e,_0x701a8b){return db[_0x5ee1('0x3c')][_0x5ee1('0x59')]({'where':{'id':_0x525b8e[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](handleEntityNotFound(_0x701a8b,null))[_0x5ee1('0x22')](removeEntity(_0x701a8b,null))['catch'](handleError(_0x701a8b,null));};exports['describe']=function(_0x354c1b,_0x22f59a){return db['ChatQueue'][_0x5ee1('0x5d')]()[_0x5ee1('0x22')](respondWithResult(_0x22f59a,null))[_0x5ee1('0x2b')](handleError(_0x22f59a,null));};exports[_0x5ee1('0x5e')]=function(_0xb278d1,_0xa57438,_0x4b4fb7){var _0xefae91={'raw':!![],'where':{}},_0x2a348f={},_0x3f2f74;return db[_0x5ee1('0x3c')][_0x5ee1('0x5f')]({'where':{'id':_0xb278d1[_0x5ee1('0x53')]['id']}})['then'](handleEntityNotFound(_0xa57438,null))[_0x5ee1('0x22')](function(_0x2d56cd){if(_0x2d56cd){_0x3f2f74=_0x2d56cd[_0x5ee1('0x35')]({'plain':!![]});_0x2a348f[_0x5ee1('0x40')]=_[_0x5ee1('0x42')](db[_0x5ee1('0x60')][_0x5ee1('0x3d')]);_0x2a348f[_0x5ee1('0x41')]=_['keys'](_0xb278d1['query']);_0x2a348f[_0x5ee1('0x4a')]=_[_0x5ee1('0x43')](_0x2a348f[_0x5ee1('0x40')],_0x2a348f[_0x5ee1('0x41')]);_0xefae91['attributes']=_[_0x5ee1('0x43')](_0x2a348f[_0x5ee1('0x40')],qs[_0x5ee1('0x45')](_0xb278d1[_0x5ee1('0x41')][_0x5ee1('0x45')]));_0xefae91[_0x5ee1('0x44')]=_0xefae91['attributes'][_0x5ee1('0x61')]?_0xefae91[_0x5ee1('0x44')]:_0x2a348f['model'];if(!_0xb278d1[_0x5ee1('0x41')]['hasOwnProperty'](_0x5ee1('0x46'))){_0xefae91[_0x5ee1('0x32')]=qs[_0x5ee1('0x32')](_0xb278d1[_0x5ee1('0x41')][_0x5ee1('0x32')]);_0xefae91[_0x5ee1('0x30')]=qs[_0x5ee1('0x30')](_0xb278d1[_0x5ee1('0x41')][_0x5ee1('0x30')]);}_0xefae91[_0x5ee1('0x47')]=qs[_0x5ee1('0x48')](_0xb278d1[_0x5ee1('0x41')][_0x5ee1('0x48')]);_0xefae91['where']=qs[_0x5ee1('0x4a')](_[_0x5ee1('0x4b')](_0xb278d1[_0x5ee1('0x41')],_0x2a348f[_0x5ee1('0x4a')]));_0xefae91[_0x5ee1('0x49')][_0x5ee1('0x62')]=_0x2d56cd['id'];if(_0xb278d1[_0x5ee1('0x41')][_0x5ee1('0x4f')]){_0xefae91[_0x5ee1('0x49')]=_[_0x5ee1('0x4c')](_0xefae91[_0x5ee1('0x49')],{'$or':_[_0x5ee1('0x3b')](_0xefae91['attributes'],function(_0x3373df){var _0x3d9912={};_0x3d9912[_0x3373df]={'$like':'%'+_0xb278d1['query'][_0x5ee1('0x4f')]+'%'};return _0x3d9912;})});}_0xefae91=_[_0x5ee1('0x4c')]({},_0xefae91,_0xb278d1[_0x5ee1('0x63')]);return db[_0x5ee1('0x60')][_0x5ee1('0x64')](_0xefae91);}})['then'](function(_0x2f7e76){if(_0x2f7e76){return db['User']['findAndCountAll']({'where':{'id':_[_0x5ee1('0x3b')](_0x2f7e76,_0x5ee1('0x65')),'role':_0x5ee1('0x66')},'attributes':['id','name',_0x5ee1('0x67'),_0x5ee1('0x68'),'createdAt']});}})[_0x5ee1('0x22')](function(_0x5b26d6){if(_0x5b26d6){return{'count':_0x5b26d6[_0x5ee1('0x33')],'rows':_[_0x5ee1('0x3b')](_0x5b26d6[_0x5ee1('0x51')],function(_0x3dcf8e){return{'membername':_0x3dcf8e[_0x5ee1('0x39')],'UserId':_0x3dcf8e['id'],'queue_name':_0x3f2f74[_0x5ee1('0x39')],'ChatQueueId':_0x3f2f74['id'],'interface':util[_0x5ee1('0x69')]('%s/%s',_0x5ee1('0x6a'),_0x3dcf8e[_0x5ee1('0x39')]),'penalty':0x0,'paused':_0x3dcf8e[_0x5ee1('0x67')],'createdAt':_0x3dcf8e[_0x5ee1('0x6b')],'updatedAt':_0x3dcf8e[_0x5ee1('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x5ee1('0x22')](respondWithFilteredResult(_0xa57438,_0xefae91))['catch'](handleError(_0xa57438,null));};exports[_0x5ee1('0x6c')]=function(_0x1f5751,_0x83b01e,_0x29a909){var _0x55db4a={};var _0x1f6b3e={};var _0x519e24;var _0x4ec3fd;return db[_0x5ee1('0x3c')][_0x5ee1('0x5f')]({'where':{'id':_0x1f5751[_0x5ee1('0x53')]['id']}})['then'](handleEntityNotFound(_0x83b01e,null))[_0x5ee1('0x22')](function(_0x78ef4d){if(_0x78ef4d){_0x519e24=_0x78ef4d;_0x1f6b3e[_0x5ee1('0x40')]=_['keys'](db[_0x5ee1('0x6d')][_0x5ee1('0x3d')]);_0x1f6b3e[_0x5ee1('0x41')]=_[_0x5ee1('0x42')](_0x1f5751['query']);_0x1f6b3e[_0x5ee1('0x4a')]=_[_0x5ee1('0x43')](_0x1f6b3e[_0x5ee1('0x40')],_0x1f6b3e[_0x5ee1('0x41')]);_0x55db4a[_0x5ee1('0x44')]=_['intersection'](_0x1f6b3e[_0x5ee1('0x40')],qs[_0x5ee1('0x45')](_0x1f5751['query']['fields']));_0x55db4a[_0x5ee1('0x44')]=_0x55db4a['attributes'][_0x5ee1('0x61')]?_0x55db4a[_0x5ee1('0x44')]:_0x1f6b3e[_0x5ee1('0x40')];_0x55db4a[_0x5ee1('0x47')]=qs[_0x5ee1('0x48')](_0x1f5751[_0x5ee1('0x41')]['sort']);_0x55db4a[_0x5ee1('0x49')]=qs[_0x5ee1('0x4a')](_[_0x5ee1('0x4b')](_0x1f5751['query'],_0x1f6b3e[_0x5ee1('0x4a')]));if(_0x1f5751['query'][_0x5ee1('0x4f')]){_0x55db4a[_0x5ee1('0x49')]=_[_0x5ee1('0x4c')](_0x55db4a[_0x5ee1('0x49')],{'$or':_[_0x5ee1('0x3b')](_0x55db4a[_0x5ee1('0x44')],function(_0x2d9f33){var _0x546360={};_0x546360[_0x2d9f33]={'$like':'%'+_0x1f5751[_0x5ee1('0x41')][_0x5ee1('0x4f')]+'%'};return _0x546360;})});}_0x55db4a=_['merge']({},_0x55db4a,_0x1f5751[_0x5ee1('0x63')]);return _0x519e24[_0x5ee1('0x6c')](_0x55db4a);}})[_0x5ee1('0x22')](function(_0x211dce){if(_0x211dce){_0x4ec3fd=_0x211dce[_0x5ee1('0x61')];if(!_0x1f5751[_0x5ee1('0x41')]['hasOwnProperty'](_0x5ee1('0x46'))){_0x55db4a[_0x5ee1('0x32')]=qs[_0x5ee1('0x32')](_0x1f5751[_0x5ee1('0x41')][_0x5ee1('0x32')]);_0x55db4a['offset']=qs[_0x5ee1('0x30')](_0x1f5751[_0x5ee1('0x41')][_0x5ee1('0x30')]);}return _0x519e24[_0x5ee1('0x6c')](_0x55db4a);}})['then'](function(_0x390a49){if(_0x390a49){return _0x390a49?{'count':_0x4ec3fd,'rows':_0x390a49}:null;}})[_0x5ee1('0x22')](respondWithResult(_0x83b01e,null))[_0x5ee1('0x2b')](handleError(_0x83b01e,null));};exports[_0x5ee1('0x6e')]=function(_0x5138f0,_0x4f236d,_0x6b2951){var _0x57de41=_0x5138f0[_0x5ee1('0x5c')][_0x5ee1('0x6f')];return db[_0x5ee1('0x6d')][_0x5ee1('0x64')]({'where':{'id':_0x57de41},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id',_0x5ee1('0x39'),'online',_0x5ee1('0x70'),_0x5ee1('0x71')],'raw':!![]}]})['then'](function(_0x10dcbd){if(_0x10dcbd){var _0x5bb677=_[_0x5ee1('0x72')](_0x10dcbd,function(_0x3cdd8a){var _0x52a112=_0x3cdd8a[_0x5ee1('0x35')]({'plain':!![]});return _0x52a112[_0x5ee1('0x73')];});return db[_0x5ee1('0x3c')][_0x5ee1('0x59')]({'where':{'id':_0x5138f0[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](function(_0x46d6c1){return db[_0x5ee1('0x74')][_0x5ee1('0x75')](function(_0x48c6fb){return _0x46d6c1['addTeams'](_0x57de41,{'transaction':_0x48c6fb})[_0x5ee1('0x22')](function(){return BPromise[_0x5ee1('0x76')](_0x5bb677,function(_0x7d4786){return db[_0x5ee1('0x60')][_0x5ee1('0x77')]({'where':{'UserId':_0x7d4786['id'],'ChatQueueId':_0x5138f0['params']['id']},'transaction':_0x48c6fb});});})[_0x5ee1('0x22')](function(){_0x5bb677[_0x5ee1('0x78')](function(_0x241b6e){socket[_0x5ee1('0x79')]('userChatQueue:save',{'UserId':_0x241b6e['id'],'ChatQueueId':_0x46d6c1['id']});});});});});}})[_0x5ee1('0x22')](respondWithStatusCode(_0x4f236d,null))[_0x5ee1('0x2b')](handleError(_0x4f236d,null));};exports[_0x5ee1('0x7a')]=function(_0x388013,_0x2d6522,_0x4661c3){return db[_0x5ee1('0x6d')][_0x5ee1('0x64')]({'where':{'id':_0x388013['query'][_0x5ee1('0x6f')]},'attributes':['id'],'include':[{'model':db[_0x5ee1('0x7b')],'as':_0x5ee1('0x73'),'attributes':['id'],'raw':!![]}]})[_0x5ee1('0x22')](handleEntityNotFound(_0x2d6522,null))[_0x5ee1('0x22')](function(_0x4a3076){var _0x20c40b=_['map'](_0x4a3076,'id');var _0xbf3518=[];var _0x33ab2f=[];var _0x2a6264=squel[_0x5ee1('0x7c')]();_0x2a6264[_0x5ee1('0x7d')](_0x5ee1('0x7e'))[_0x5ee1('0x7f')]('team_has_chat_queues','tq')[_0x5ee1('0x80')](_0x5ee1('0x81'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x5ee1('0x82'),_0x388013[_0x5ee1('0x53')]['id']);for(var _0x4c652f=0x0;_0x4c652f<_0x4a3076[_0x5ee1('0x61')];_0x4c652f+=0x1){let _0x1bccae=_0x4a3076[_0x4c652f];for(var _0x36298c=0x0;_0x36298c<_0x1bccae['Agents'][_0x5ee1('0x61')];_0x36298c+=0x1){let _0x484807=_0x1bccae[_0x5ee1('0x73')][_0x36298c];var _0xdf04a3=_0x2a6264['clone']();_0xdf04a3[_0x5ee1('0x49')](_0x5ee1('0x83'),_0x484807['id']);_0x33ab2f[_0x5ee1('0x84')](db[_0x5ee1('0x74')][_0x5ee1('0x41')](_0xdf04a3[_0x5ee1('0x85')](),{'type':db['sequelize'][_0x5ee1('0x86')][_0x5ee1('0x87')]})['then'](function(_0x58959b){if(_0x58959b[_0x5ee1('0x61')]===0x1){return _0x484807['id'];}else{var _0x45f594=_[_0x5ee1('0x88')](_[_0x5ee1('0x3b')](_0x58959b,'TeamId'),function(_0x4f65e2){return _[_0x5ee1('0x89')](_0x20c40b,_0x4f65e2);});if(_0x45f594){return _0x484807['id'];}}}));}}return BPromise[_0x5ee1('0x8a')](_0x33ab2f)[_0x5ee1('0x22')](function(_0x351f99){_0xbf3518=_(_0xbf3518)[_0x5ee1('0x8b')](_0x351f99)['compact']()[_0x5ee1('0x8c')]();return db[_0x5ee1('0x3c')]['find']({'where':{'id':_0x388013[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](function(_0xd245ab){return db[_0x5ee1('0x74')][_0x5ee1('0x75')](function(_0x1abd45){return _0xd245ab[_0x5ee1('0x7a')](_0x388013[_0x5ee1('0x41')][_0x5ee1('0x6f')],{'transaction':_0x1abd45})[_0x5ee1('0x22')](function(){if(!_[_0x5ee1('0x8d')](_0xbf3518)){return _0xd245ab[_0x5ee1('0x8e')](_0xbf3518,{'transaction':_0x1abd45});}})['then'](function(){_0xbf3518[_0x5ee1('0x78')](function(_0x5e272d){socket[_0x5ee1('0x79')](_0x5ee1('0x8f'),{'UserId':_0x5e272d,'ChatQueueId':_0xd245ab['id']});});});});});});})[_0x5ee1('0x22')](respondWithStatusCode(_0x2d6522,null))[_0x5ee1('0x2b')](handleError(_0x2d6522,null));};exports[_0x5ee1('0x90')]=function(_0x4d6c49,_0x37661f,_0x54c81c){return db['ChatQueue']['find']({'where':{'id':_0x4d6c49[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](handleEntityNotFound(_0x37661f,null))[_0x5ee1('0x22')](function(_0x489373){if(_0x489373){return _0x489373[_0x5ee1('0x90')](_0x4d6c49[_0x5ee1('0x5c')][_0x5ee1('0x6f')],_['omit'](_0x4d6c49[_0x5ee1('0x5c')],[_0x5ee1('0x6f'),'id'])||{})['spread'](function(_0x4e3cff){for(var _0x1eb811=0x0;_0x1eb811<_0x4d6c49[_0x5ee1('0x5c')]['ids'][_0x5ee1('0x61')];_0x1eb811+=0x1){socket['emit'](_0x5ee1('0x91'),{'UserId':Number(_0x4d6c49[_0x5ee1('0x5c')]['ids'][_0x1eb811]),'ChatQueueId':Number(_0x4d6c49[_0x5ee1('0x53')]['id'])});}return _0x4e3cff;});}})[_0x5ee1('0x22')](respondWithResult(_0x37661f,null))[_0x5ee1('0x2b')](handleError(_0x37661f,null));};exports[_0x5ee1('0x8e')]=function(_0x23af7c,_0x5b8db7,_0x266511){return db[_0x5ee1('0x3c')][_0x5ee1('0x59')]({'where':{'id':_0x23af7c[_0x5ee1('0x53')]['id']}})['then'](handleEntityNotFound(_0x5b8db7,null))[_0x5ee1('0x22')](function(_0x448500){if(_0x448500){return _0x448500[_0x5ee1('0x8e')](_0x23af7c['query'][_0x5ee1('0x6f')])[_0x5ee1('0x22')](function(){if(_[_0x5ee1('0x92')](_0x23af7c[_0x5ee1('0x41')]['ids'])){for(var _0x5e7b61=0x0;_0x5e7b61<_0x23af7c[_0x5ee1('0x41')]['ids'][_0x5ee1('0x61')];_0x5e7b61+=0x1){socket[_0x5ee1('0x79')](_0x5ee1('0x8f'),{'UserId':Number(_0x23af7c['query'][_0x5ee1('0x6f')][_0x5e7b61]),'ChatQueueId':Number(_0x23af7c['params']['id'])});}}else{socket[_0x5ee1('0x79')](_0x5ee1('0x8f'),{'UserId':Number(_0x23af7c['query'][_0x5ee1('0x6f')]),'ChatQueueId':Number(_0x23af7c[_0x5ee1('0x53')]['id'])});}});}})[_0x5ee1('0x22')](respondWithStatusCode(_0x5b8db7,null))[_0x5ee1('0x2b')](handleError(_0x5b8db7,null));};exports[_0x5ee1('0x93')]=function(_0x2a581f,_0x188bf5,_0x301a39){var _0x32242e={};var _0x39fcb2={};var _0x553a4d;var _0x310987;return db['ChatQueue'][_0x5ee1('0x5f')]({'where':{'id':_0x2a581f[_0x5ee1('0x53')]['id']}})[_0x5ee1('0x22')](handleEntityNotFound(_0x188bf5,null))['then'](function(_0x53754a){if(_0x53754a){_0x553a4d=_0x53754a;_0x39fcb2[_0x5ee1('0x40')]=_[_0x5ee1('0x42')](db[_0x5ee1('0x7b')]['rawAttributes']);_0x39fcb2[_0x5ee1('0x41')]=_['keys'](_0x2a581f[_0x5ee1('0x41')]);_0x39fcb2[_0x5ee1('0x4a')]=_[_0x5ee1('0x43')](_0x39fcb2[_0x5ee1('0x40')],_0x39fcb2[_0x5ee1('0x41')]);_0x32242e['attributes']=_[_0x5ee1('0x43')](_0x39fcb2['model'],qs[_0x5ee1('0x45')](_0x2a581f[_0x5ee1('0x41')][_0x5ee1('0x45')]));_0x32242e[_0x5ee1('0x44')]=_0x32242e[_0x5ee1('0x44')][_0x5ee1('0x61')]?_0x32242e[_0x5ee1('0x44')]:_0x39fcb2['model'];_0x32242e[_0x5ee1('0x47')]=qs[_0x5ee1('0x48')](_0x2a581f[_0x5ee1('0x41')]['sort']);_0x32242e[_0x5ee1('0x49')]=qs[_0x5ee1('0x4a')](_[_0x5ee1('0x4b')](_0x2a581f[_0x5ee1('0x41')],_0x39fcb2[_0x5ee1('0x4a')]));if(_0x2a581f[_0x5ee1('0x41')][_0x5ee1('0x4f')]){_0x32242e['where']=_[_0x5ee1('0x4c')](_0x32242e['where'],{'$or':_[_0x5ee1('0x3b')](_0x32242e[_0x5ee1('0x44')],function(_0x5ad6e8){var _0x532603={};_0x532603[_0x5ad6e8]={'$like':'%'+_0x2a581f[_0x5ee1('0x41')]['filter']+'%'};return _0x532603;})});}_0x32242e=_[_0x5ee1('0x4c')]({},_0x32242e,_0x2a581f[_0x5ee1('0x63')]);return _0x553a4d['getAgents'](_0x32242e);}})[_0x5ee1('0x22')](function(_0x5e2dd7){if(_0x5e2dd7){_0x310987=_0x5e2dd7[_0x5ee1('0x61')];if(!_0x2a581f[_0x5ee1('0x41')][_0x5ee1('0x94')](_0x5ee1('0x46'))){_0x32242e[_0x5ee1('0x32')]=qs['limit'](_0x2a581f[_0x5ee1('0x41')][_0x5ee1('0x32')]);_0x32242e[_0x5ee1('0x30')]=qs[_0x5ee1('0x30')](_0x2a581f[_0x5ee1('0x41')][_0x5ee1('0x30')]);}return _0x553a4d[_0x5ee1('0x93')](_0x32242e);}})[_0x5ee1('0x22')](function(_0x10144a){if(_0x10144a){return _0x10144a?{'count':_0x310987,'rows':_0x10144a}:null;}})[_0x5ee1('0x22')](respondWithResult(_0x188bf5,null))[_0x5ee1('0x2b')](handleError(_0x188bf5,null));};