f66786305b0df5c4b546a27ace8cef437c4ba0ec
[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 _0x8bda=['merge','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','describe','findOne','hasOwnProperty','nolimit','sort','pick','ChatQueueId','filter','options','UserChatQueue','User','agent','chatPause','createdAt','%s/%s','SIP','updatedAt','Team','getTeams','addTeams','ids','Agents','voicePause','interface','sequelize','transaction','findOrCreate','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','all','union','value','isEmpty','removeAgents','forEach','addAgents','omit','spread','isArray','userChatQueue:remove','getAgents','order','lodash','squel','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','localhost','socket.io-emitter','./chatQueue.socket','register','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','then','destroy','get','ChatQueues','UserProfileResource','error','stack','name','send','map','rawAttributes','fieldName','type','key','getOptions','where','include','query','ChatQueue','findAll','rows','catch','show','params','model','keys','filters','intersection','fields','attributes','length','includeAll'];(function(_0x28d1dc,_0x5a3d14){var _0x4ebcae=function(_0x48e8ec){while(--_0x48e8ec){_0x28d1dc['push'](_0x28d1dc['shift']());}};_0x4ebcae(++_0x5a3d14);}(_0x8bda,0x1b3));var _0xa8bd=function(_0x4d8dc3,_0x585fd1){_0x4d8dc3=_0x4d8dc3-0x0;var _0x9b03d9=_0x8bda[_0x4d8dc3];return _0x9b03d9;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0xa8bd('0x0'));var squel=require(_0xa8bd('0x1'));var Redis=require(_0xa8bd('0x2'));var qs=require(_0xa8bd('0x3'));var logger=require(_0xa8bd('0x4'))(_0xa8bd('0x5'));var config=require('../../config/environment');var db=require(_0xa8bd('0x6'))['db'];config[_0xa8bd('0x7')]=_['defaults'](config[_0xa8bd('0x7')],{'host':_0xa8bd('0x8'),'port':0x18eb});var socket=require(_0xa8bd('0x9'))(new Redis(config[_0xa8bd('0x7')]));require(_0xa8bd('0xa'))[_0xa8bd('0xb')](socket);function respondWithStatusCode(_0x10fc36,_0x50aa4f){_0x50aa4f=_0x50aa4f||0xcc;return function(_0x2f2e50){if(_0x2f2e50){return _0x10fc36[_0xa8bd('0xc')](_0x50aa4f);}return _0x10fc36[_0xa8bd('0xd')](_0x50aa4f)['end']();};}function respondWithResult(_0x42ba4c,_0x5d1383){_0x5d1383=_0x5d1383||0xc8;return function(_0x490585){if(_0x490585){return _0x42ba4c[_0xa8bd('0xd')](_0x5d1383)[_0xa8bd('0xe')](_0x490585);}};}function respondWithFilteredResult(_0x561655,_0x2042ea){return function(_0x35e6c9){if(_0x35e6c9){var _0x40d3ad=typeof _0x2042ea['offset']==='undefined'&&typeof _0x2042ea['limit']===_0xa8bd('0xf');var _0x2e4bef=_0x35e6c9[_0xa8bd('0x10')];var _0x231bf1=_0x40d3ad?0x0:_0x2042ea[_0xa8bd('0x11')];var _0x40ffc0=_0x40d3ad?_0x35e6c9[_0xa8bd('0x10')]:_0x2042ea['offset']+_0x2042ea[_0xa8bd('0x12')];var _0x51fa8e;if(_0x40ffc0>=_0x2e4bef){_0x40ffc0=_0x2e4bef;_0x51fa8e=0xc8;}else{_0x51fa8e=0xce;}_0x561655['status'](_0x51fa8e);return _0x561655[_0xa8bd('0x13')](_0xa8bd('0x14'),_0x231bf1+'-'+_0x40ffc0+'/'+_0x2e4bef)['json'](_0x35e6c9);}return null;};}function saveUpdates(_0x5f1622){return function(_0x4fc4d9){if(_0x4fc4d9){return _0x4fc4d9['update'](_0x5f1622)[_0xa8bd('0x15')](function(_0x5e5d70){return _0x5e5d70;});}return null;};}function removeEntity(_0x48788f){return function(_0x38b723){if(_0x38b723){return _0x38b723[_0xa8bd('0x16')]()['then'](function(){var _0x5397b2=_0x38b723[_0xa8bd('0x17')]({'plain':!![]});var _0x1729cc=_0xa8bd('0x18');return db[_0xa8bd('0x19')]['destroy']({'where':{'type':_0x1729cc,'resourceId':_0x5397b2['id']}})[_0xa8bd('0x15')](function(){return _0x38b723;});})['then'](function(){_0x48788f[_0xa8bd('0xd')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4efe59){return function(_0x50caf3){if(!_0x50caf3){_0x4efe59[_0xa8bd('0xc')](0x194);}return _0x50caf3;};}function handleError(_0x474071,_0x1596d5){_0x1596d5=_0x1596d5||0x1f4;return function(_0xaf6617){logger[_0xa8bd('0x1a')](_0xaf6617[_0xa8bd('0x1b')]);if(_0xaf6617[_0xa8bd('0x1c')]){delete _0xaf6617['name'];}_0x474071[_0xa8bd('0xd')](_0x1596d5)[_0xa8bd('0x1d')](_0xaf6617);};}exports['index']=function(_0x338bdb,_0x27020c){var _0x36fc92={};var _0x1a2968={'count':0x0,'rows':[]};var _0x287d4b=_[_0xa8bd('0x1e')](db['ChatQueue'][_0xa8bd('0x1f')],function(_0x204941){return{'name':_0x204941[_0xa8bd('0x20')],'type':_0x204941[_0xa8bd('0x21')][_0xa8bd('0x22')]};});_0x36fc92=qs[_0xa8bd('0x23')](_0x287d4b,_0x338bdb);var _0x1d513c={'where':_0x36fc92[_0xa8bd('0x24')]};return db['ChatQueue'][_0xa8bd('0x10')](_0x1d513c)['then'](function(_0x4b22eb){_0x1a2968['count']=_0x4b22eb;_0x36fc92[_0xa8bd('0x25')]=qs['include'](_0x338bdb[_0xa8bd('0x26')]);return db[_0xa8bd('0x27')][_0xa8bd('0x28')](_0x36fc92);})[_0xa8bd('0x15')](function(_0x23c5fb){_0x1a2968[_0xa8bd('0x29')]=_0x23c5fb;return _0x1a2968;})['then'](respondWithFilteredResult(_0x27020c,_0x36fc92))[_0xa8bd('0x2a')](handleError(_0x27020c,null));};exports[_0xa8bd('0x2b')]=function(_0x2024df,_0x2d2c73){var _0x141503={'raw':!![],'where':{'id':_0x2024df[_0xa8bd('0x2c')]['id']}},_0x3517de={};_0x3517de[_0xa8bd('0x2d')]=_['keys'](db['ChatQueue'][_0xa8bd('0x1f')]);_0x3517de[_0xa8bd('0x26')]=_[_0xa8bd('0x2e')](_0x2024df[_0xa8bd('0x26')]);_0x3517de[_0xa8bd('0x2f')]=_[_0xa8bd('0x30')](_0x3517de[_0xa8bd('0x2d')],_0x3517de['query']);_0x141503['attributes']=_[_0xa8bd('0x30')](_0x3517de[_0xa8bd('0x2d')],qs[_0xa8bd('0x31')](_0x2024df['query']['fields']));_0x141503[_0xa8bd('0x32')]=_0x141503['attributes'][_0xa8bd('0x33')]?_0x141503[_0xa8bd('0x32')]:_0x3517de['model'];if(_0x2024df[_0xa8bd('0x26')][_0xa8bd('0x34')]){_0x141503['include']=[{'all':!![]}];}_0x141503=_[_0xa8bd('0x35')]({},_0x141503,_0x2024df['options']);return db[_0xa8bd('0x27')]['find'](_0x141503)[_0xa8bd('0x15')](handleEntityNotFound(_0x2d2c73,null))[_0xa8bd('0x15')](respondWithResult(_0x2d2c73,null))[_0xa8bd('0x2a')](handleError(_0x2d2c73,null));};exports[_0xa8bd('0x36')]=function(_0x573b90,_0x40efa5){return db[_0xa8bd('0x27')][_0xa8bd('0x36')](_0x573b90[_0xa8bd('0x37')],{})['then'](function(_0xdfa0d){var _0x24668d=_0x573b90['user'][_0xa8bd('0x17')]({'plain':!![]});if(!_0x24668d)throw new Error(_0xa8bd('0x38'));if(_0x24668d[_0xa8bd('0x39')]===_0xa8bd('0x3a')){var _0x26c1db=_0xdfa0d[_0xa8bd('0x17')]({'plain':!![]});var _0x2e4c01=_0xa8bd('0x18');return db['UserProfileSection']['find']({'where':{'name':_0x2e4c01,'userProfileId':_0x24668d['userProfileId']},'raw':!![]})[_0xa8bd('0x15')](function(_0x325190){if(_0x325190&&_0x325190[_0xa8bd('0x3b')]===0x0){return db['UserProfileResource']['create']({'name':_0x26c1db[_0xa8bd('0x1c')],'resourceId':_0x26c1db['id'],'type':_0x325190['name'],'sectionId':_0x325190['id']},{})[_0xa8bd('0x15')](function(){return _0xdfa0d;});}else{return _0xdfa0d;}})['catch'](function(_0xaf9c88){logger['error'](_0xa8bd('0x3c'),_0xaf9c88);throw _0xaf9c88;});}return _0xdfa0d;})['then'](respondWithResult(_0x40efa5,0xc9))[_0xa8bd('0x2a')](handleError(_0x40efa5,null));};exports['update']=function(_0x4373dd,_0x1941ae){if(_0x4373dd[_0xa8bd('0x37')]['id']){delete _0x4373dd['body']['id'];}return db[_0xa8bd('0x27')][_0xa8bd('0x3d')]({'where':{'id':_0x4373dd[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x1941ae,null))[_0xa8bd('0x15')](saveUpdates(_0x4373dd['body'],null))['then'](respondWithResult(_0x1941ae,null))[_0xa8bd('0x2a')](handleError(_0x1941ae,null));};exports[_0xa8bd('0x16')]=function(_0x1added,_0x2b2a62){return db[_0xa8bd('0x27')][_0xa8bd('0x3d')]({'where':{'id':_0x1added[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x2b2a62,null))[_0xa8bd('0x15')](removeEntity(_0x2b2a62,null))['catch'](handleError(_0x2b2a62,null));};exports[_0xa8bd('0x3e')]=function(_0x562397,_0x2a29cb){return db['ChatQueue']['describe']()[_0xa8bd('0x15')](respondWithResult(_0x2a29cb,null))[_0xa8bd('0x2a')](handleError(_0x2a29cb,null));};exports['getMembers']=function(_0x121b73,_0x51bb01){var _0x4c50b0={'raw':!![],'where':{}},_0x5e3f59={},_0x5f12f8;return db[_0xa8bd('0x27')][_0xa8bd('0x3f')]({'where':{'id':_0x121b73[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x51bb01,null))[_0xa8bd('0x15')](function(_0x5d8fcb){if(_0x5d8fcb){_0x5f12f8=_0x5d8fcb[_0xa8bd('0x17')]({'plain':!![]});_0x5e3f59[_0xa8bd('0x2d')]=_[_0xa8bd('0x2e')](db['UserChatQueue'][_0xa8bd('0x1f')]);_0x5e3f59[_0xa8bd('0x26')]=_[_0xa8bd('0x2e')](_0x121b73[_0xa8bd('0x26')]);_0x5e3f59[_0xa8bd('0x2f')]=_[_0xa8bd('0x30')](_0x5e3f59['model'],_0x5e3f59[_0xa8bd('0x26')]);_0x4c50b0[_0xa8bd('0x32')]=_['intersection'](_0x5e3f59[_0xa8bd('0x2d')],qs[_0xa8bd('0x31')](_0x121b73[_0xa8bd('0x26')][_0xa8bd('0x31')]));_0x4c50b0['attributes']=_0x4c50b0[_0xa8bd('0x32')][_0xa8bd('0x33')]?_0x4c50b0[_0xa8bd('0x32')]:_0x5e3f59[_0xa8bd('0x2d')];if(!_0x121b73[_0xa8bd('0x26')][_0xa8bd('0x40')](_0xa8bd('0x41'))){_0x4c50b0['limit']=qs[_0xa8bd('0x12')](_0x121b73['query'][_0xa8bd('0x12')]);_0x4c50b0[_0xa8bd('0x11')]=qs[_0xa8bd('0x11')](_0x121b73['query'][_0xa8bd('0x11')]);}_0x4c50b0['order']=qs[_0xa8bd('0x42')](_0x121b73['query'][_0xa8bd('0x42')]);_0x4c50b0[_0xa8bd('0x24')]=qs['filters'](_[_0xa8bd('0x43')](_0x121b73[_0xa8bd('0x26')],_0x5e3f59['filters']));_0x4c50b0[_0xa8bd('0x24')][_0xa8bd('0x44')]=_0x5d8fcb['id'];if(_0x121b73['query']['filter']){_0x4c50b0[_0xa8bd('0x24')]=_[_0xa8bd('0x35')](_0x4c50b0[_0xa8bd('0x24')],{'$or':_['map'](_0x4c50b0[_0xa8bd('0x32')],function(_0x25b3d5){var _0xc81d3f={};_0xc81d3f[_0x25b3d5]={'$like':'%'+_0x121b73['query'][_0xa8bd('0x45')]+'%'};return _0xc81d3f;})});}_0x4c50b0=_['merge']({},_0x4c50b0,_0x121b73[_0xa8bd('0x46')]);return db[_0xa8bd('0x47')][_0xa8bd('0x28')](_0x4c50b0);}})['then'](function(_0x560da6){if(_0x560da6){return db[_0xa8bd('0x48')]['findAndCountAll']({'where':{'id':_[_0xa8bd('0x1e')](_0x560da6,'UserId'),'role':_0xa8bd('0x49')},'attributes':['id','name',_0xa8bd('0x4a'),'updatedAt',_0xa8bd('0x4b')]});}})[_0xa8bd('0x15')](function(_0x2b7fcc){if(_0x2b7fcc){return{'count':_0x2b7fcc[_0xa8bd('0x10')],'rows':_['map'](_0x2b7fcc[_0xa8bd('0x29')],function(_0x27c1cc){return{'membername':_0x27c1cc[_0xa8bd('0x1c')],'UserId':_0x27c1cc['id'],'queue_name':_0x5f12f8[_0xa8bd('0x1c')],'ChatQueueId':_0x5f12f8['id'],'interface':util['format'](_0xa8bd('0x4c'),_0xa8bd('0x4d'),_0x27c1cc[_0xa8bd('0x1c')]),'penalty':0x0,'paused':_0x27c1cc[_0xa8bd('0x4a')],'createdAt':_0x27c1cc[_0xa8bd('0x4b')],'updatedAt':_0x27c1cc[_0xa8bd('0x4e')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xa8bd('0x15')](respondWithFilteredResult(_0x51bb01,_0x4c50b0))[_0xa8bd('0x2a')](handleError(_0x51bb01,null));};exports['getTeams']=function(_0x960221,_0xce52c1){var _0x1fadbb={};var _0x53a0f1={};var _0x3804ad;var _0x6cab95;return db[_0xa8bd('0x27')]['findOne']({'where':{'id':_0x960221['params']['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0xce52c1,null))[_0xa8bd('0x15')](function(_0x19b207){if(_0x19b207){_0x3804ad=_0x19b207;_0x53a0f1[_0xa8bd('0x2d')]=_['keys'](db[_0xa8bd('0x4f')][_0xa8bd('0x1f')]);_0x53a0f1[_0xa8bd('0x26')]=_[_0xa8bd('0x2e')](_0x960221[_0xa8bd('0x26')]);_0x53a0f1['filters']=_['intersection'](_0x53a0f1[_0xa8bd('0x2d')],_0x53a0f1['query']);_0x1fadbb[_0xa8bd('0x32')]=_[_0xa8bd('0x30')](_0x53a0f1[_0xa8bd('0x2d')],qs[_0xa8bd('0x31')](_0x960221[_0xa8bd('0x26')]['fields']));_0x1fadbb[_0xa8bd('0x32')]=_0x1fadbb['attributes'][_0xa8bd('0x33')]?_0x1fadbb[_0xa8bd('0x32')]:_0x53a0f1[_0xa8bd('0x2d')];_0x1fadbb['order']=qs['sort'](_0x960221[_0xa8bd('0x26')]['sort']);_0x1fadbb[_0xa8bd('0x24')]=qs['filters'](_[_0xa8bd('0x43')](_0x960221['query'],_0x53a0f1[_0xa8bd('0x2f')]));if(_0x960221['query'][_0xa8bd('0x45')]){_0x1fadbb[_0xa8bd('0x24')]=_['merge'](_0x1fadbb[_0xa8bd('0x24')],{'$or':_['map'](_0x1fadbb['attributes'],function(_0x474881){var _0x5cad5d={};_0x5cad5d[_0x474881]={'$like':'%'+_0x960221[_0xa8bd('0x26')][_0xa8bd('0x45')]+'%'};return _0x5cad5d;})});}_0x1fadbb=_[_0xa8bd('0x35')]({},_0x1fadbb,_0x960221['options']);return _0x3804ad[_0xa8bd('0x50')](_0x1fadbb);}})[_0xa8bd('0x15')](function(_0x2c30a4){if(_0x2c30a4){_0x6cab95=_0x2c30a4[_0xa8bd('0x33')];if(!_0x960221[_0xa8bd('0x26')][_0xa8bd('0x40')]('nolimit')){_0x1fadbb[_0xa8bd('0x12')]=qs[_0xa8bd('0x12')](_0x960221['query']['limit']);_0x1fadbb[_0xa8bd('0x11')]=qs['offset'](_0x960221['query']['offset']);}return _0x3804ad['getTeams'](_0x1fadbb);}})[_0xa8bd('0x15')](function(_0x4b80ad){if(_0x4b80ad){return _0x4b80ad?{'count':_0x6cab95,'rows':_0x4b80ad}:null;}})[_0xa8bd('0x15')](respondWithResult(_0xce52c1,null))['catch'](handleError(_0xce52c1,null));};exports[_0xa8bd('0x51')]=function(_0x1bb5cf,_0x413d90){var _0x380577=_0x1bb5cf[_0xa8bd('0x37')][_0xa8bd('0x52')];return db[_0xa8bd('0x4f')][_0xa8bd('0x28')]({'where':{'id':_0x380577},'attributes':['id'],'include':[{'model':db['User'],'as':_0xa8bd('0x53'),'attributes':['id','name','online',_0xa8bd('0x54'),_0xa8bd('0x55')],'raw':!![]}]})['then'](function(_0x1096d8){if(_0x1096d8){var _0x22b14e=_['flatMap'](_0x1096d8,function(_0xf6bc15){var _0x83ac75=_0xf6bc15[_0xa8bd('0x17')]({'plain':!![]});return _0x83ac75['Agents'];});return db[_0xa8bd('0x27')][_0xa8bd('0x3d')]({'where':{'id':_0x1bb5cf['params']['id']}})[_0xa8bd('0x15')](function(_0x4eb2eb){return db[_0xa8bd('0x56')][_0xa8bd('0x57')](function(_0x397c47){return _0x4eb2eb[_0xa8bd('0x51')](_0x380577,{'transaction':_0x397c47})['then'](function(){return BPromise['each'](_0x22b14e,function(_0x16ad7d){return db[_0xa8bd('0x47')][_0xa8bd('0x58')]({'where':{'UserId':_0x16ad7d['id'],'ChatQueueId':_0x1bb5cf[_0xa8bd('0x2c')]['id']},'transaction':_0x397c47});});})[_0xa8bd('0x15')](function(){_0x22b14e['forEach'](function(_0x246f34){socket[_0xa8bd('0x59')](_0xa8bd('0x5a'),{'UserId':_0x246f34['id'],'ChatQueueId':_0x4eb2eb['id']});});});});});}})['then'](respondWithStatusCode(_0x413d90,null))[_0xa8bd('0x2a')](handleError(_0x413d90,null));};exports[_0xa8bd('0x5b')]=function(_0x110cd2,_0x714565){return db['Team'][_0xa8bd('0x28')]({'where':{'id':_0x110cd2[_0xa8bd('0x26')]['ids']},'attributes':['id'],'include':[{'model':db[_0xa8bd('0x48')],'as':_0xa8bd('0x53'),'attributes':['id'],'raw':!![]}]})[_0xa8bd('0x15')](handleEntityNotFound(_0x714565,null))[_0xa8bd('0x15')](function(_0x505d3b){var _0x1a76af=_[_0xa8bd('0x1e')](_0x505d3b,'id');var _0x4c9b6a=[];var _0x4c3a47=[];var _0x25d837=squel[_0xa8bd('0x5c')]();_0x25d837[_0xa8bd('0x5d')](_0xa8bd('0x5e'))[_0xa8bd('0x5f')](_0xa8bd('0x60'),'tq')[_0xa8bd('0x61')](_0xa8bd('0x62'),'ut',_0xa8bd('0x63'))[_0xa8bd('0x24')](_0xa8bd('0x64'),_0x110cd2[_0xa8bd('0x2c')]['id']);for(var _0x203a00=0x0;_0x203a00<_0x505d3b['length'];_0x203a00+=0x1){let _0x3777dc=_0x505d3b[_0x203a00];for(var _0xc76191=0x0;_0xc76191<_0x3777dc['Agents'][_0xa8bd('0x33')];_0xc76191+=0x1){let _0x364927=_0x3777dc[_0xa8bd('0x53')][_0xc76191];var _0x44195a=_0x25d837[_0xa8bd('0x65')]();_0x44195a['where'](_0xa8bd('0x66'),_0x364927['id']);_0x4c3a47[_0xa8bd('0x67')](db[_0xa8bd('0x56')][_0xa8bd('0x26')](_0x44195a[_0xa8bd('0x68')](),{'type':db[_0xa8bd('0x56')][_0xa8bd('0x69')][_0xa8bd('0x6a')]})[_0xa8bd('0x15')](function(_0x1ab6e5){if(_0x1ab6e5['length']===0x1){return _0x364927['id'];}else{var _0x11b83e=_[_0xa8bd('0x6b')](_['map'](_0x1ab6e5,'TeamId'),function(_0x42e38b){return _[_0xa8bd('0x6c')](_0x1a76af,_0x42e38b);});if(_0x11b83e){return _0x364927['id'];}}}));}}return BPromise[_0xa8bd('0x6d')](_0x4c3a47)[_0xa8bd('0x15')](function(_0x25b5ad){_0x4c9b6a=_(_0x4c9b6a)[_0xa8bd('0x6e')](_0x25b5ad)['compact']()[_0xa8bd('0x6f')]();return db[_0xa8bd('0x27')][_0xa8bd('0x3d')]({'where':{'id':_0x110cd2['params']['id']}})['then'](function(_0x3fbf5e){return db[_0xa8bd('0x56')][_0xa8bd('0x57')](function(_0x42eeb9){return _0x3fbf5e[_0xa8bd('0x5b')](_0x110cd2['query'][_0xa8bd('0x52')],{'transaction':_0x42eeb9})[_0xa8bd('0x15')](function(){if(!_[_0xa8bd('0x70')](_0x4c9b6a)){return _0x3fbf5e[_0xa8bd('0x71')](_0x4c9b6a,{'transaction':_0x42eeb9});}})['then'](function(){_0x4c9b6a[_0xa8bd('0x72')](function(_0x127436){socket[_0xa8bd('0x59')]('userChatQueue:remove',{'UserId':_0x127436,'ChatQueueId':_0x3fbf5e['id']});});});});});});})[_0xa8bd('0x15')](respondWithStatusCode(_0x714565,null))['catch'](handleError(_0x714565,null));};exports[_0xa8bd('0x73')]=function(_0x4a85c8,_0x276270){return db['ChatQueue'][_0xa8bd('0x3d')]({'where':{'id':_0x4a85c8[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x276270,null))[_0xa8bd('0x15')](function(_0x10e116){if(_0x10e116){return _0x10e116['addAgents'](_0x4a85c8[_0xa8bd('0x37')]['ids'],_[_0xa8bd('0x74')](_0x4a85c8[_0xa8bd('0x37')],[_0xa8bd('0x52'),'id'])||{})[_0xa8bd('0x75')](function(_0x3b87d9){for(var _0x31601d=0x0;_0x31601d<_0x4a85c8['body'][_0xa8bd('0x52')]['length'];_0x31601d+=0x1){socket[_0xa8bd('0x59')](_0xa8bd('0x5a'),{'UserId':Number(_0x4a85c8[_0xa8bd('0x37')][_0xa8bd('0x52')][_0x31601d]),'ChatQueueId':Number(_0x4a85c8[_0xa8bd('0x2c')]['id'])});}return _0x3b87d9;});}})[_0xa8bd('0x15')](respondWithResult(_0x276270,null))[_0xa8bd('0x2a')](handleError(_0x276270,null));};exports[_0xa8bd('0x71')]=function(_0x438226,_0x5b971b){return db[_0xa8bd('0x27')][_0xa8bd('0x3d')]({'where':{'id':_0x438226[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x5b971b,null))[_0xa8bd('0x15')](function(_0x7a720c){if(_0x7a720c){return _0x7a720c['removeAgents'](_0x438226[_0xa8bd('0x26')]['ids'])[_0xa8bd('0x15')](function(){if(_[_0xa8bd('0x76')](_0x438226[_0xa8bd('0x26')][_0xa8bd('0x52')])){for(var _0x36948d=0x0;_0x36948d<_0x438226['query'][_0xa8bd('0x52')][_0xa8bd('0x33')];_0x36948d+=0x1){socket[_0xa8bd('0x59')](_0xa8bd('0x77'),{'UserId':Number(_0x438226[_0xa8bd('0x26')][_0xa8bd('0x52')][_0x36948d]),'ChatQueueId':Number(_0x438226['params']['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x438226['query'][_0xa8bd('0x52')]),'ChatQueueId':Number(_0x438226[_0xa8bd('0x2c')]['id'])});}});}})['then'](respondWithStatusCode(_0x5b971b,null))['catch'](handleError(_0x5b971b,null));};exports[_0xa8bd('0x78')]=function(_0x34161d,_0x5ce157){var _0x532a9c={};var _0x20c2b8={};var _0x51a8ef;var _0x12e446;return db['ChatQueue'][_0xa8bd('0x3f')]({'where':{'id':_0x34161d[_0xa8bd('0x2c')]['id']}})[_0xa8bd('0x15')](handleEntityNotFound(_0x5ce157,null))[_0xa8bd('0x15')](function(_0x431b2a){if(_0x431b2a){_0x51a8ef=_0x431b2a;_0x20c2b8[_0xa8bd('0x2d')]=_['keys'](db[_0xa8bd('0x48')][_0xa8bd('0x1f')]);_0x20c2b8[_0xa8bd('0x26')]=_[_0xa8bd('0x2e')](_0x34161d[_0xa8bd('0x26')]);_0x20c2b8[_0xa8bd('0x2f')]=_[_0xa8bd('0x30')](_0x20c2b8[_0xa8bd('0x2d')],_0x20c2b8[_0xa8bd('0x26')]);_0x532a9c[_0xa8bd('0x32')]=_[_0xa8bd('0x30')](_0x20c2b8[_0xa8bd('0x2d')],qs[_0xa8bd('0x31')](_0x34161d[_0xa8bd('0x26')][_0xa8bd('0x31')]));_0x532a9c[_0xa8bd('0x32')]=_0x532a9c[_0xa8bd('0x32')][_0xa8bd('0x33')]?_0x532a9c[_0xa8bd('0x32')]:_0x20c2b8[_0xa8bd('0x2d')];_0x532a9c[_0xa8bd('0x79')]=qs[_0xa8bd('0x42')](_0x34161d[_0xa8bd('0x26')][_0xa8bd('0x42')]);_0x532a9c[_0xa8bd('0x24')]=qs[_0xa8bd('0x2f')](_[_0xa8bd('0x43')](_0x34161d[_0xa8bd('0x26')],_0x20c2b8['filters']));if(_0x34161d[_0xa8bd('0x26')][_0xa8bd('0x45')]){_0x532a9c['where']=_['merge'](_0x532a9c[_0xa8bd('0x24')],{'$or':_[_0xa8bd('0x1e')](_0x532a9c[_0xa8bd('0x32')],function(_0x49cd57){var _0x28bee2={};_0x28bee2[_0x49cd57]={'$like':'%'+_0x34161d['query'][_0xa8bd('0x45')]+'%'};return _0x28bee2;})});}_0x532a9c=_['merge']({},_0x532a9c,_0x34161d['options']);return _0x51a8ef[_0xa8bd('0x78')](_0x532a9c);}})[_0xa8bd('0x15')](function(_0x8b0457){if(_0x8b0457){_0x12e446=_0x8b0457[_0xa8bd('0x33')];if(!_0x34161d[_0xa8bd('0x26')][_0xa8bd('0x40')](_0xa8bd('0x41'))){_0x532a9c[_0xa8bd('0x12')]=qs[_0xa8bd('0x12')](_0x34161d['query'][_0xa8bd('0x12')]);_0x532a9c[_0xa8bd('0x11')]=qs[_0xa8bd('0x11')](_0x34161d[_0xa8bd('0x26')]['offset']);}return _0x51a8ef[_0xa8bd('0x78')](_0x532a9c);}})['then'](function(_0x437741){if(_0x437741){return _0x437741?{'count':_0x12e446,'rows':_0x437741}:null;}})['then'](respondWithResult(_0x5ce157,null))[_0xa8bd('0x2a')](handleError(_0x5ce157,null));};