8cc8990b0cfeee8ce8593046d92cbc4b2e635f42
[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 _0x4312=['then','get','ChatQueues','UserProfileResource','end','error','stack','name','send','ChatQueue','rawAttributes','fieldName','type','key','getOptions','include','query','rows','catch','show','model','keys','filters','attributes','intersection','fields','length','includeAll','merge','options','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','findOne','nolimit','limit','sort','where','ChatQueueId','map','filter','UserChatQueue','findAll','findAndCountAll','agent','chatPause','createdAt','format','updatedAt','getTeams','order','hasOwnProperty','addTeams','ids','Team','Agents','voicePause','interface','flatMap','sequelize','transaction','findOrCreate','forEach','emit','userChatQueue:save','User','select','tq.TeamId','from','team_has_chat_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','includes','union','compact','value','removeTeams','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','./chatQueue.socket','register','sendStatus','status','json','offset','undefined','count','set','Content-Range','destroy'];(function(_0x5730a9,_0x22d1a5){var _0x25b913=function(_0x559e35){while(--_0x559e35){_0x5730a9['push'](_0x5730a9['shift']());}};_0x25b913(++_0x22d1a5);}(_0x4312,0xdb));var _0x2431=function(_0x593576,_0x8629f2){_0x593576=_0x593576-0x0;var _0x2bcd63=_0x4312[_0x593576];return _0x2bcd63;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require('lodash');var squel=require('squel');var Redis=require(_0x2431('0x0'));var qs=require(_0x2431('0x1'));var logger=require(_0x2431('0x2'))(_0x2431('0x3'));var config=require(_0x2431('0x4'));var db=require(_0x2431('0x5'))['db'];config[_0x2431('0x6')]=_['defaults'](config[_0x2431('0x6')],{'host':_0x2431('0x7'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x2431('0x8'))[_0x2431('0x9')](socket);function respondWithStatusCode(_0x548402,_0xd5b9ef){_0xd5b9ef=_0xd5b9ef||0xcc;return function(_0x4a6c8f){if(_0x4a6c8f){return _0x548402[_0x2431('0xa')](_0xd5b9ef);}return _0x548402[_0x2431('0xb')](_0xd5b9ef)['end']();};}function respondWithResult(_0x530a67,_0x512e1c){_0x512e1c=_0x512e1c||0xc8;return function(_0x8526a7){if(_0x8526a7){return _0x530a67[_0x2431('0xb')](_0x512e1c)[_0x2431('0xc')](_0x8526a7);}};}function respondWithFilteredResult(_0x4e3f21,_0x4497b0){return function(_0x4e1392){if(_0x4e1392){var _0x82fc80=typeof _0x4497b0[_0x2431('0xd')]===_0x2431('0xe')&&typeof _0x4497b0['limit']===_0x2431('0xe');var _0x482fdb=_0x4e1392['count'];var _0x56e4ea=_0x82fc80?0x0:_0x4497b0[_0x2431('0xd')];var _0x557b9a=_0x82fc80?_0x4e1392[_0x2431('0xf')]:_0x4497b0[_0x2431('0xd')]+_0x4497b0['limit'];var _0x162dd6;if(_0x557b9a>=_0x482fdb){_0x557b9a=_0x482fdb;_0x162dd6=0xc8;}else{_0x162dd6=0xce;}_0x4e3f21[_0x2431('0xb')](_0x162dd6);return _0x4e3f21[_0x2431('0x10')](_0x2431('0x11'),_0x56e4ea+'-'+_0x557b9a+'/'+_0x482fdb)['json'](_0x4e1392);}return null;};}function saveUpdates(_0xc8d93e){return function(_0x212914){if(_0x212914){return _0x212914['update'](_0xc8d93e)['then'](function(_0x4d1029){return _0x4d1029;});}return null;};}function removeEntity(_0x1cc458){return function(_0x32ad63){if(_0x32ad63){return _0x32ad63[_0x2431('0x12')]()[_0x2431('0x13')](function(){var _0x59f8fc=_0x32ad63[_0x2431('0x14')]({'plain':!![]});var _0x30ee12=_0x2431('0x15');return db[_0x2431('0x16')]['destroy']({'where':{'type':_0x30ee12,'resourceId':_0x59f8fc['id']}})['then'](function(){return _0x32ad63;});})[_0x2431('0x13')](function(){_0x1cc458[_0x2431('0xb')](0xcc)[_0x2431('0x17')]();});}};}function handleEntityNotFound(_0xc8c754){return function(_0x569550){if(!_0x569550){_0xc8c754[_0x2431('0xa')](0x194);}return _0x569550;};}function handleError(_0x4aab56,_0x27b83f){_0x27b83f=_0x27b83f||0x1f4;return function(_0x4563dd){logger[_0x2431('0x18')](_0x4563dd[_0x2431('0x19')]);if(_0x4563dd[_0x2431('0x1a')]){delete _0x4563dd[_0x2431('0x1a')];}_0x4aab56[_0x2431('0xb')](_0x27b83f)[_0x2431('0x1b')](_0x4563dd);};}exports['index']=function(_0x1f5c8b,_0x5c6231){var _0x2fa64a={};var _0x32ea4d={'count':0x0,'rows':[]};var _0x181b34=_['map'](db[_0x2431('0x1c')][_0x2431('0x1d')],function(_0x3b4884){return{'name':_0x3b4884[_0x2431('0x1e')],'type':_0x3b4884[_0x2431('0x1f')][_0x2431('0x20')]};});_0x2fa64a=qs[_0x2431('0x21')](_0x181b34,_0x1f5c8b);var _0xaeb041={'where':_0x2fa64a['where']};return db[_0x2431('0x1c')]['count'](_0xaeb041)[_0x2431('0x13')](function(_0x4d40e9){_0x32ea4d[_0x2431('0xf')]=_0x4d40e9;_0x2fa64a['include']=qs[_0x2431('0x22')](_0x1f5c8b[_0x2431('0x23')]);return db['ChatQueue']['findAll'](_0x2fa64a);})[_0x2431('0x13')](function(_0x4d721f){_0x32ea4d[_0x2431('0x24')]=_0x4d721f;return _0x32ea4d;})[_0x2431('0x13')](respondWithFilteredResult(_0x5c6231,_0x2fa64a))[_0x2431('0x25')](handleError(_0x5c6231,null));};exports[_0x2431('0x26')]=function(_0x3812e5,_0xb3e3a5){var _0x583efe={'raw':!![],'where':{'id':_0x3812e5['params']['id']}},_0x36584a={};_0x36584a[_0x2431('0x27')]=_[_0x2431('0x28')](db[_0x2431('0x1c')][_0x2431('0x1d')]);_0x36584a[_0x2431('0x23')]=_[_0x2431('0x28')](_0x3812e5[_0x2431('0x23')]);_0x36584a[_0x2431('0x29')]=_['intersection'](_0x36584a[_0x2431('0x27')],_0x36584a[_0x2431('0x23')]);_0x583efe[_0x2431('0x2a')]=_[_0x2431('0x2b')](_0x36584a[_0x2431('0x27')],qs[_0x2431('0x2c')](_0x3812e5['query'][_0x2431('0x2c')]));_0x583efe[_0x2431('0x2a')]=_0x583efe['attributes'][_0x2431('0x2d')]?_0x583efe[_0x2431('0x2a')]:_0x36584a['model'];if(_0x3812e5['query'][_0x2431('0x2e')]){_0x583efe[_0x2431('0x22')]=[{'all':!![]}];}_0x583efe=_[_0x2431('0x2f')]({},_0x583efe,_0x3812e5[_0x2431('0x30')]);return db[_0x2431('0x1c')][_0x2431('0x31')](_0x583efe)[_0x2431('0x13')](handleEntityNotFound(_0xb3e3a5,null))['then'](respondWithResult(_0xb3e3a5,null))[_0x2431('0x25')](handleError(_0xb3e3a5,null));};exports[_0x2431('0x32')]=function(_0x4ed61c,_0x1d7bfc){return db[_0x2431('0x1c')]['create'](_0x4ed61c[_0x2431('0x33')],{})[_0x2431('0x13')](function(_0x31caed){var _0x15d14a=_0x4ed61c[_0x2431('0x34')][_0x2431('0x14')]({'plain':!![]});if(!_0x15d14a)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x15d14a[_0x2431('0x35')]==='user'){var _0x4aba06=_0x31caed[_0x2431('0x14')]({'plain':!![]});var _0x4a87ca='ChatQueues';return db[_0x2431('0x36')][_0x2431('0x31')]({'where':{'name':_0x4a87ca,'userProfileId':_0x15d14a[_0x2431('0x37')]},'raw':!![]})['then'](function(_0x169540){if(_0x169540&&_0x169540[_0x2431('0x38')]===0x0){return db['UserProfileResource'][_0x2431('0x32')]({'name':_0x4aba06[_0x2431('0x1a')],'resourceId':_0x4aba06['id'],'type':_0x169540[_0x2431('0x1a')],'sectionId':_0x169540['id']},{})[_0x2431('0x13')](function(){return _0x31caed;});}else{return _0x31caed;}})[_0x2431('0x25')](function(_0x347ed5){logger[_0x2431('0x18')](_0x2431('0x39'),_0x347ed5);throw _0x347ed5;});}return _0x31caed;})[_0x2431('0x13')](respondWithResult(_0x1d7bfc,0xc9))['catch'](handleError(_0x1d7bfc,null));};exports['update']=function(_0x51551f,_0x55f0c1){if(_0x51551f[_0x2431('0x33')]['id']){delete _0x51551f[_0x2431('0x33')]['id'];}return db[_0x2431('0x1c')]['find']({'where':{'id':_0x51551f[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x55f0c1,null))[_0x2431('0x13')](saveUpdates(_0x51551f[_0x2431('0x33')],null))[_0x2431('0x13')](respondWithResult(_0x55f0c1,null))[_0x2431('0x25')](handleError(_0x55f0c1,null));};exports[_0x2431('0x12')]=function(_0x32d3e3,_0x593cc8){return db[_0x2431('0x1c')][_0x2431('0x31')]({'where':{'id':_0x32d3e3['params']['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x593cc8,null))[_0x2431('0x13')](removeEntity(_0x593cc8,null))['catch'](handleError(_0x593cc8,null));};exports['describe']=function(_0x1682d4,_0x3c5872){return db['ChatQueue'][_0x2431('0x3b')]()['then'](respondWithResult(_0x3c5872,null))[_0x2431('0x25')](handleError(_0x3c5872,null));};exports['getMembers']=function(_0x2eb8cf,_0x29890f){var _0x3acba4={'raw':!![],'where':{}},_0x38ca00={},_0xca8677;return db[_0x2431('0x1c')][_0x2431('0x3c')]({'where':{'id':_0x2eb8cf['params']['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x29890f,null))['then'](function(_0x3757da){if(_0x3757da){_0xca8677=_0x3757da[_0x2431('0x14')]({'plain':!![]});_0x38ca00[_0x2431('0x27')]=_[_0x2431('0x28')](db['UserChatQueue']['rawAttributes']);_0x38ca00['query']=_[_0x2431('0x28')](_0x2eb8cf[_0x2431('0x23')]);_0x38ca00['filters']=_[_0x2431('0x2b')](_0x38ca00[_0x2431('0x27')],_0x38ca00['query']);_0x3acba4[_0x2431('0x2a')]=_[_0x2431('0x2b')](_0x38ca00[_0x2431('0x27')],qs['fields'](_0x2eb8cf[_0x2431('0x23')][_0x2431('0x2c')]));_0x3acba4['attributes']=_0x3acba4['attributes'][_0x2431('0x2d')]?_0x3acba4[_0x2431('0x2a')]:_0x38ca00[_0x2431('0x27')];if(!_0x2eb8cf[_0x2431('0x23')]['hasOwnProperty'](_0x2431('0x3d'))){_0x3acba4[_0x2431('0x3e')]=qs['limit'](_0x2eb8cf[_0x2431('0x23')][_0x2431('0x3e')]);_0x3acba4[_0x2431('0xd')]=qs[_0x2431('0xd')](_0x2eb8cf[_0x2431('0x23')][_0x2431('0xd')]);}_0x3acba4['order']=qs[_0x2431('0x3f')](_0x2eb8cf[_0x2431('0x23')]['sort']);_0x3acba4['where']=qs[_0x2431('0x29')](_['pick'](_0x2eb8cf[_0x2431('0x23')],_0x38ca00[_0x2431('0x29')]));_0x3acba4[_0x2431('0x40')][_0x2431('0x41')]=_0x3757da['id'];if(_0x2eb8cf[_0x2431('0x23')]['filter']){_0x3acba4[_0x2431('0x40')]=_[_0x2431('0x2f')](_0x3acba4['where'],{'$or':_[_0x2431('0x42')](_0x3acba4[_0x2431('0x2a')],function(_0x43f65f){var _0x271996={};_0x271996[_0x43f65f]={'$like':'%'+_0x2eb8cf['query'][_0x2431('0x43')]+'%'};return _0x271996;})});}_0x3acba4=_[_0x2431('0x2f')]({},_0x3acba4,_0x2eb8cf[_0x2431('0x30')]);return db[_0x2431('0x44')][_0x2431('0x45')](_0x3acba4);}})['then'](function(_0x4fc07b){if(_0x4fc07b){return db['User'][_0x2431('0x46')]({'where':{'id':_[_0x2431('0x42')](_0x4fc07b,'UserId'),'role':_0x2431('0x47')},'attributes':['id',_0x2431('0x1a'),_0x2431('0x48'),'updatedAt',_0x2431('0x49')]});}})[_0x2431('0x13')](function(_0x1ca705){if(_0x1ca705){return{'count':_0x1ca705[_0x2431('0xf')],'rows':_['map'](_0x1ca705[_0x2431('0x24')],function(_0x4ec19e){return{'membername':_0x4ec19e[_0x2431('0x1a')],'UserId':_0x4ec19e['id'],'queue_name':_0xca8677['name'],'ChatQueueId':_0xca8677['id'],'interface':util[_0x2431('0x4a')]('%s/%s','SIP',_0x4ec19e[_0x2431('0x1a')]),'penalty':0x0,'paused':_0x4ec19e[_0x2431('0x48')],'createdAt':_0x4ec19e['createdAt'],'updatedAt':_0x4ec19e[_0x2431('0x4b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x2431('0x13')](respondWithFilteredResult(_0x29890f,_0x3acba4))[_0x2431('0x25')](handleError(_0x29890f,null));};exports[_0x2431('0x4c')]=function(_0x54ecd8,_0x2d9b61){var _0x396b9b={};var _0x130eb5={};var _0x2852d8;var _0x106ad1;return db['ChatQueue'][_0x2431('0x3c')]({'where':{'id':_0x54ecd8['params']['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x2d9b61,null))[_0x2431('0x13')](function(_0x7e5d33){if(_0x7e5d33){_0x2852d8=_0x7e5d33;_0x130eb5[_0x2431('0x27')]=_[_0x2431('0x28')](db['Team'][_0x2431('0x1d')]);_0x130eb5[_0x2431('0x23')]=_['keys'](_0x54ecd8[_0x2431('0x23')]);_0x130eb5['filters']=_['intersection'](_0x130eb5['model'],_0x130eb5['query']);_0x396b9b[_0x2431('0x2a')]=_[_0x2431('0x2b')](_0x130eb5['model'],qs[_0x2431('0x2c')](_0x54ecd8[_0x2431('0x23')][_0x2431('0x2c')]));_0x396b9b[_0x2431('0x2a')]=_0x396b9b[_0x2431('0x2a')]['length']?_0x396b9b[_0x2431('0x2a')]:_0x130eb5[_0x2431('0x27')];_0x396b9b[_0x2431('0x4d')]=qs[_0x2431('0x3f')](_0x54ecd8[_0x2431('0x23')][_0x2431('0x3f')]);_0x396b9b[_0x2431('0x40')]=qs[_0x2431('0x29')](_['pick'](_0x54ecd8[_0x2431('0x23')],_0x130eb5[_0x2431('0x29')]));if(_0x54ecd8[_0x2431('0x23')][_0x2431('0x43')]){_0x396b9b[_0x2431('0x40')]=_[_0x2431('0x2f')](_0x396b9b[_0x2431('0x40')],{'$or':_[_0x2431('0x42')](_0x396b9b[_0x2431('0x2a')],function(_0x570a19){var _0x3f564f={};_0x3f564f[_0x570a19]={'$like':'%'+_0x54ecd8[_0x2431('0x23')][_0x2431('0x43')]+'%'};return _0x3f564f;})});}_0x396b9b=_[_0x2431('0x2f')]({},_0x396b9b,_0x54ecd8[_0x2431('0x30')]);return _0x2852d8[_0x2431('0x4c')](_0x396b9b);}})[_0x2431('0x13')](function(_0x451b3c){if(_0x451b3c){_0x106ad1=_0x451b3c[_0x2431('0x2d')];if(!_0x54ecd8[_0x2431('0x23')][_0x2431('0x4e')](_0x2431('0x3d'))){_0x396b9b['limit']=qs['limit'](_0x54ecd8[_0x2431('0x23')][_0x2431('0x3e')]);_0x396b9b['offset']=qs[_0x2431('0xd')](_0x54ecd8[_0x2431('0x23')]['offset']);}return _0x2852d8[_0x2431('0x4c')](_0x396b9b);}})['then'](function(_0x2fa746){if(_0x2fa746){return _0x2fa746?{'count':_0x106ad1,'rows':_0x2fa746}:null;}})[_0x2431('0x13')](respondWithResult(_0x2d9b61,null))[_0x2431('0x25')](handleError(_0x2d9b61,null));};exports[_0x2431('0x4f')]=function(_0x989168,_0x49635d){var _0x1ad009=_0x989168[_0x2431('0x33')][_0x2431('0x50')];return db[_0x2431('0x51')][_0x2431('0x45')]({'where':{'id':_0x1ad009},'attributes':['id'],'include':[{'model':db['User'],'as':_0x2431('0x52'),'attributes':['id','name','online',_0x2431('0x53'),_0x2431('0x54')],'raw':!![]}]})[_0x2431('0x13')](function(_0x2a61df){if(_0x2a61df){var _0x322db0=_[_0x2431('0x55')](_0x2a61df,function(_0x110c68){var _0x21a186=_0x110c68['get']({'plain':!![]});return _0x21a186['Agents'];});return db[_0x2431('0x1c')][_0x2431('0x31')]({'where':{'id':_0x989168[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](function(_0x48a7cc){return db[_0x2431('0x56')][_0x2431('0x57')](function(_0x286c8c){return _0x48a7cc[_0x2431('0x4f')](_0x1ad009,{'transaction':_0x286c8c})[_0x2431('0x13')](function(){return BPromise['each'](_0x322db0,function(_0x4bd7e5){return db[_0x2431('0x44')][_0x2431('0x58')]({'where':{'UserId':_0x4bd7e5['id'],'ChatQueueId':_0x989168[_0x2431('0x3a')]['id']},'transaction':_0x286c8c});});})[_0x2431('0x13')](function(){_0x322db0[_0x2431('0x59')](function(_0x556bed){socket[_0x2431('0x5a')](_0x2431('0x5b'),{'UserId':_0x556bed['id'],'ChatQueueId':_0x48a7cc['id']});});});});});}})['then'](respondWithStatusCode(_0x49635d,null))[_0x2431('0x25')](handleError(_0x49635d,null));};exports['removeTeams']=function(_0x105864,_0x16b883){return db[_0x2431('0x51')][_0x2431('0x45')]({'where':{'id':_0x105864['query'][_0x2431('0x50')]},'attributes':['id'],'include':[{'model':db[_0x2431('0x5c')],'as':_0x2431('0x52'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x16b883,null))[_0x2431('0x13')](function(_0x1dcbb7){var _0x32da14=_[_0x2431('0x42')](_0x1dcbb7,'id');var _0x1f3def=[];var _0x23ffc6=[];var _0x4bd2b8=squel[_0x2431('0x5d')]();_0x4bd2b8['field'](_0x2431('0x5e'))[_0x2431('0x5f')](_0x2431('0x60'),'tq')['join'](_0x2431('0x61'),'ut',_0x2431('0x62'))[_0x2431('0x40')](_0x2431('0x63'),_0x105864['params']['id']);for(var _0x1d58a3=0x0;_0x1d58a3<_0x1dcbb7[_0x2431('0x2d')];_0x1d58a3+=0x1){let _0x344a93=_0x1dcbb7[_0x1d58a3];for(var _0x2e0173=0x0;_0x2e0173<_0x344a93[_0x2431('0x52')][_0x2431('0x2d')];_0x2e0173+=0x1){let _0x2d6f3e=_0x344a93['Agents'][_0x2e0173];var _0x5578ab=_0x4bd2b8[_0x2431('0x64')]();_0x5578ab[_0x2431('0x40')](_0x2431('0x65'),_0x2d6f3e['id']);_0x23ffc6[_0x2431('0x66')](db[_0x2431('0x56')][_0x2431('0x23')](_0x5578ab[_0x2431('0x67')](),{'type':db[_0x2431('0x56')][_0x2431('0x68')][_0x2431('0x69')]})[_0x2431('0x13')](function(_0xc5cfa2){if(_0xc5cfa2['length']===0x1){return _0x2d6f3e['id'];}else{var _0x334d0c=_['every'](_[_0x2431('0x42')](_0xc5cfa2,'TeamId'),function(_0x2024ef){return _[_0x2431('0x6a')](_0x32da14,_0x2024ef);});if(_0x334d0c){return _0x2d6f3e['id'];}}}));}}return BPromise['all'](_0x23ffc6)['then'](function(_0x22dca8){_0x1f3def=_(_0x1f3def)[_0x2431('0x6b')](_0x22dca8)[_0x2431('0x6c')]()[_0x2431('0x6d')]();return db[_0x2431('0x1c')][_0x2431('0x31')]({'where':{'id':_0x105864[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](function(_0x55b15e){return db[_0x2431('0x56')]['transaction'](function(_0x4391f2){return _0x55b15e[_0x2431('0x6e')](_0x105864[_0x2431('0x23')]['ids'],{'transaction':_0x4391f2})[_0x2431('0x13')](function(){if(!_[_0x2431('0x6f')](_0x1f3def)){return _0x55b15e[_0x2431('0x70')](_0x1f3def,{'transaction':_0x4391f2});}})[_0x2431('0x13')](function(){_0x1f3def['forEach'](function(_0x2d2586){socket[_0x2431('0x5a')](_0x2431('0x71'),{'UserId':_0x2d2586,'ChatQueueId':_0x55b15e['id']});});});});});});})[_0x2431('0x13')](respondWithStatusCode(_0x16b883,null))[_0x2431('0x25')](handleError(_0x16b883,null));};exports[_0x2431('0x72')]=function(_0x5acfb3,_0x196fd8){return db[_0x2431('0x1c')][_0x2431('0x31')]({'where':{'id':_0x5acfb3[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x196fd8,null))[_0x2431('0x13')](function(_0x4196ac){if(_0x4196ac){return _0x4196ac[_0x2431('0x72')](_0x5acfb3[_0x2431('0x33')]['ids'],_[_0x2431('0x73')](_0x5acfb3[_0x2431('0x33')],[_0x2431('0x50'),'id'])||{})[_0x2431('0x74')](function(_0x228879){for(var _0x3ac587=0x0;_0x3ac587<_0x5acfb3['body'][_0x2431('0x50')][_0x2431('0x2d')];_0x3ac587+=0x1){socket[_0x2431('0x5a')](_0x2431('0x5b'),{'UserId':Number(_0x5acfb3['body'][_0x2431('0x50')][_0x3ac587]),'ChatQueueId':Number(_0x5acfb3[_0x2431('0x3a')]['id'])});}return _0x228879;});}})['then'](respondWithResult(_0x196fd8,null))[_0x2431('0x25')](handleError(_0x196fd8,null));};exports[_0x2431('0x70')]=function(_0x4d8a18,_0x4e7e47){return db[_0x2431('0x1c')][_0x2431('0x31')]({'where':{'id':_0x4d8a18[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x4e7e47,null))[_0x2431('0x13')](function(_0x370c38){if(_0x370c38){return _0x370c38[_0x2431('0x70')](_0x4d8a18[_0x2431('0x23')][_0x2431('0x50')])['then'](function(){if(_[_0x2431('0x75')](_0x4d8a18[_0x2431('0x23')][_0x2431('0x50')])){for(var _0x5cbb2d=0x0;_0x5cbb2d<_0x4d8a18[_0x2431('0x23')][_0x2431('0x50')][_0x2431('0x2d')];_0x5cbb2d+=0x1){socket[_0x2431('0x5a')]('userChatQueue:remove',{'UserId':Number(_0x4d8a18[_0x2431('0x23')][_0x2431('0x50')][_0x5cbb2d]),'ChatQueueId':Number(_0x4d8a18[_0x2431('0x3a')]['id'])});}}else{socket[_0x2431('0x5a')](_0x2431('0x71'),{'UserId':Number(_0x4d8a18[_0x2431('0x23')][_0x2431('0x50')]),'ChatQueueId':Number(_0x4d8a18[_0x2431('0x3a')]['id'])});}});}})[_0x2431('0x13')](respondWithStatusCode(_0x4e7e47,null))[_0x2431('0x25')](handleError(_0x4e7e47,null));};exports[_0x2431('0x76')]=function(_0x1d57a2,_0x5977d9){var _0x4998b8={};var _0x1f85fa={};var _0x2b510c;var _0x36e16a;return db[_0x2431('0x1c')][_0x2431('0x3c')]({'where':{'id':_0x1d57a2[_0x2431('0x3a')]['id']}})[_0x2431('0x13')](handleEntityNotFound(_0x5977d9,null))[_0x2431('0x13')](function(_0x1281d5){if(_0x1281d5){_0x2b510c=_0x1281d5;_0x1f85fa['model']=_[_0x2431('0x28')](db['User'][_0x2431('0x1d')]);_0x1f85fa['query']=_[_0x2431('0x28')](_0x1d57a2[_0x2431('0x23')]);_0x1f85fa[_0x2431('0x29')]=_[_0x2431('0x2b')](_0x1f85fa['model'],_0x1f85fa[_0x2431('0x23')]);_0x4998b8['attributes']=_[_0x2431('0x2b')](_0x1f85fa['model'],qs['fields'](_0x1d57a2[_0x2431('0x23')][_0x2431('0x2c')]));_0x4998b8[_0x2431('0x2a')]=_0x4998b8[_0x2431('0x2a')][_0x2431('0x2d')]?_0x4998b8[_0x2431('0x2a')]:_0x1f85fa['model'];_0x4998b8[_0x2431('0x4d')]=qs[_0x2431('0x3f')](_0x1d57a2[_0x2431('0x23')][_0x2431('0x3f')]);_0x4998b8[_0x2431('0x40')]=qs['filters'](_['pick'](_0x1d57a2['query'],_0x1f85fa[_0x2431('0x29')]));if(_0x1d57a2[_0x2431('0x23')]['filter']){_0x4998b8[_0x2431('0x40')]=_['merge'](_0x4998b8['where'],{'$or':_['map'](_0x4998b8[_0x2431('0x2a')],function(_0x7aeba9){var _0x8f9b5b={};_0x8f9b5b[_0x7aeba9]={'$like':'%'+_0x1d57a2[_0x2431('0x23')][_0x2431('0x43')]+'%'};return _0x8f9b5b;})});}_0x4998b8=_['merge']({},_0x4998b8,_0x1d57a2[_0x2431('0x30')]);return _0x2b510c[_0x2431('0x76')](_0x4998b8);}})[_0x2431('0x13')](function(_0x485b65){if(_0x485b65){_0x36e16a=_0x485b65['length'];if(!_0x1d57a2[_0x2431('0x23')][_0x2431('0x4e')](_0x2431('0x3d'))){_0x4998b8[_0x2431('0x3e')]=qs['limit'](_0x1d57a2['query'][_0x2431('0x3e')]);_0x4998b8['offset']=qs[_0x2431('0xd')](_0x1d57a2[_0x2431('0x23')][_0x2431('0xd')]);}return _0x2b510c['getAgents'](_0x4998b8);}})[_0x2431('0x13')](function(_0xb32e92){if(_0xb32e92){return _0xb32e92?{'count':_0x36e16a,'rows':_0xb32e92}:null;}})['then'](respondWithResult(_0x5977d9,null))[_0x2431('0x25')](handleError(_0x5977d9,null));};