d1126401b31be11dc6f15997e33abee44ea029a7
[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 _0xe81b=['name','send','map','rawAttributes','fieldName','key','getOptions','ChatQueue','include','query','findAll','show','params','model','keys','filters','intersection','attributes','fields','length','includeAll','merge','options','find','catch','create','user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','getMembers','findOne','sort','where','ChatQueueId','filter','UserChatQueue','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','order','pick','hasOwnProperty','addTeams','ids','Agents','online','voicePause','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','field','from','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','push','toString','SELECT','every','TeamId','includes','all','union','compact','value','removeTeams','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','getAgents','nolimit','lodash','squel','../../config/logger','api','../../mysqldb','redis','defaults','socket.io-emitter','./chatQueue.socket','sendStatus','status','end','offset','undefined','limit','count','set','json','update','then','destroy','get','ChatQueues','UserProfileResource','error','stack'];(function(_0x587bd8,_0x598772){var _0x57cf30=function(_0x544d42){while(--_0x544d42){_0x587bd8['push'](_0x587bd8['shift']());}};_0x57cf30(++_0x598772);}(_0xe81b,0xd2));var _0xbe81=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0xe81b[_0x42bdad];return _0x122626;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0xbe81('0x0'));var squel=require(_0xbe81('0x1'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var logger=require(_0xbe81('0x2'))(_0xbe81('0x3'));var config=require('../../config/environment');var db=require(_0xbe81('0x4'))['db'];config[_0xbe81('0x5')]=_[_0xbe81('0x6')](config[_0xbe81('0x5')],{'host':'localhost','port':0x18eb});var socket=require(_0xbe81('0x7'))(new Redis(config[_0xbe81('0x5')]));require(_0xbe81('0x8'))['register'](socket);function respondWithStatusCode(_0x11bbf7,_0x2ae964){_0x2ae964=_0x2ae964||0xcc;return function(_0xee8605){if(_0xee8605){return _0x11bbf7[_0xbe81('0x9')](_0x2ae964);}return _0x11bbf7[_0xbe81('0xa')](_0x2ae964)[_0xbe81('0xb')]();};}function respondWithResult(_0x3bacf1,_0x2d0939){_0x2d0939=_0x2d0939||0xc8;return function(_0x2533c9){if(_0x2533c9){return _0x3bacf1[_0xbe81('0xa')](_0x2d0939)['json'](_0x2533c9);}};}function respondWithFilteredResult(_0x532609,_0x595cdb){return function(_0x45e187){if(_0x45e187){var _0x5c987e=typeof _0x595cdb[_0xbe81('0xc')]===_0xbe81('0xd')&&typeof _0x595cdb[_0xbe81('0xe')]===_0xbe81('0xd');var _0x28e9d1=_0x45e187[_0xbe81('0xf')];var _0x531131=_0x5c987e?0x0:_0x595cdb[_0xbe81('0xc')];var _0x505dbc=_0x5c987e?_0x45e187[_0xbe81('0xf')]:_0x595cdb['offset']+_0x595cdb[_0xbe81('0xe')];var _0x43ffb7;if(_0x505dbc>=_0x28e9d1){_0x505dbc=_0x28e9d1;_0x43ffb7=0xc8;}else{_0x43ffb7=0xce;}_0x532609[_0xbe81('0xa')](_0x43ffb7);return _0x532609[_0xbe81('0x10')]('Content-Range',_0x531131+'-'+_0x505dbc+'/'+_0x28e9d1)[_0xbe81('0x11')](_0x45e187);}return null;};}function saveUpdates(_0x418709){return function(_0x197f10){if(_0x197f10){return _0x197f10[_0xbe81('0x12')](_0x418709)[_0xbe81('0x13')](function(_0x297115){return _0x297115;});}return null;};}function removeEntity(_0x2f7dcc){return function(_0xaa1db2){if(_0xaa1db2){return _0xaa1db2[_0xbe81('0x14')]()[_0xbe81('0x13')](function(){var _0x53e84e=_0xaa1db2[_0xbe81('0x15')]({'plain':!![]});var _0x4c3d39=_0xbe81('0x16');return db[_0xbe81('0x17')][_0xbe81('0x14')]({'where':{'type':_0x4c3d39,'resourceId':_0x53e84e['id']}})[_0xbe81('0x13')](function(){return _0xaa1db2;});})[_0xbe81('0x13')](function(){_0x2f7dcc[_0xbe81('0xa')](0xcc)[_0xbe81('0xb')]();});}};}function handleEntityNotFound(_0x53ecc8){return function(_0x372df4){if(!_0x372df4){_0x53ecc8['sendStatus'](0x194);}return _0x372df4;};}function handleError(_0x5b3da6,_0x5eff54){_0x5eff54=_0x5eff54||0x1f4;return function(_0x26ae7a){logger[_0xbe81('0x18')](_0x26ae7a[_0xbe81('0x19')]);if(_0x26ae7a[_0xbe81('0x1a')]){delete _0x26ae7a[_0xbe81('0x1a')];}_0x5b3da6[_0xbe81('0xa')](_0x5eff54)[_0xbe81('0x1b')](_0x26ae7a);};}exports['index']=function(_0x23a62f,_0x55bae1){var _0x3ea815={};var _0x219dce={'count':0x0,'rows':[]};var _0x576f24=_[_0xbe81('0x1c')](db['ChatQueue'][_0xbe81('0x1d')],function(_0x121f4d){return{'name':_0x121f4d[_0xbe81('0x1e')],'type':_0x121f4d['type'][_0xbe81('0x1f')]};});_0x3ea815=qs[_0xbe81('0x20')](_0x576f24,_0x23a62f);var _0x5de6a7={'where':_0x3ea815['where']};return db[_0xbe81('0x21')][_0xbe81('0xf')](_0x5de6a7)[_0xbe81('0x13')](function(_0xea1e1b){_0x219dce['count']=_0xea1e1b;_0x3ea815[_0xbe81('0x22')]=qs[_0xbe81('0x22')](_0x23a62f[_0xbe81('0x23')]);return db['ChatQueue'][_0xbe81('0x24')](_0x3ea815);})[_0xbe81('0x13')](function(_0x2e56d4){_0x219dce['rows']=_0x2e56d4;return _0x219dce;})[_0xbe81('0x13')](respondWithFilteredResult(_0x55bae1,_0x3ea815))['catch'](handleError(_0x55bae1,null));};exports[_0xbe81('0x25')]=function(_0x1c50db,_0x401291){var _0x5bf694={'raw':!![],'where':{'id':_0x1c50db[_0xbe81('0x26')]['id']}},_0x3012e1={};_0x3012e1[_0xbe81('0x27')]=_[_0xbe81('0x28')](db[_0xbe81('0x21')][_0xbe81('0x1d')]);_0x3012e1[_0xbe81('0x23')]=_[_0xbe81('0x28')](_0x1c50db[_0xbe81('0x23')]);_0x3012e1[_0xbe81('0x29')]=_[_0xbe81('0x2a')](_0x3012e1['model'],_0x3012e1[_0xbe81('0x23')]);_0x5bf694[_0xbe81('0x2b')]=_[_0xbe81('0x2a')](_0x3012e1['model'],qs[_0xbe81('0x2c')](_0x1c50db[_0xbe81('0x23')]['fields']));_0x5bf694[_0xbe81('0x2b')]=_0x5bf694[_0xbe81('0x2b')][_0xbe81('0x2d')]?_0x5bf694[_0xbe81('0x2b')]:_0x3012e1['model'];if(_0x1c50db['query'][_0xbe81('0x2e')]){_0x5bf694[_0xbe81('0x22')]=[{'all':!![]}];}_0x5bf694=_[_0xbe81('0x2f')]({},_0x5bf694,_0x1c50db[_0xbe81('0x30')]);return db['ChatQueue'][_0xbe81('0x31')](_0x5bf694)[_0xbe81('0x13')](handleEntityNotFound(_0x401291,null))['then'](respondWithResult(_0x401291,null))[_0xbe81('0x32')](handleError(_0x401291,null));};exports[_0xbe81('0x33')]=function(_0x35e519,_0x1d2122){return db['ChatQueue'][_0xbe81('0x33')](_0x35e519['body'],{})[_0xbe81('0x13')](function(_0x513fc6){var _0x5b2a11=_0x35e519[_0xbe81('0x34')][_0xbe81('0x15')]({'plain':!![]});if(!_0x5b2a11)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5b2a11[_0xbe81('0x35')]==='user'){var _0x57cefb=_0x513fc6[_0xbe81('0x15')]({'plain':!![]});var _0x19632f=_0xbe81('0x16');return db[_0xbe81('0x36')][_0xbe81('0x31')]({'where':{'name':_0x19632f,'userProfileId':_0x5b2a11[_0xbe81('0x37')]},'raw':!![]})['then'](function(_0x58dea7){if(_0x58dea7&&_0x58dea7['autoAssociation']===0x0){return db[_0xbe81('0x17')][_0xbe81('0x33')]({'name':_0x57cefb[_0xbe81('0x1a')],'resourceId':_0x57cefb['id'],'type':_0x58dea7[_0xbe81('0x1a')],'sectionId':_0x58dea7['id']},{})[_0xbe81('0x13')](function(){return _0x513fc6;});}else{return _0x513fc6;}})[_0xbe81('0x32')](function(_0x119c78){logger['error'](_0xbe81('0x38'),_0x119c78);throw _0x119c78;});}return _0x513fc6;})['then'](respondWithResult(_0x1d2122,0xc9))[_0xbe81('0x32')](handleError(_0x1d2122,null));};exports[_0xbe81('0x12')]=function(_0x47f2f0,_0x5d5488){if(_0x47f2f0['body']['id']){delete _0x47f2f0[_0xbe81('0x39')]['id'];}return db[_0xbe81('0x21')][_0xbe81('0x31')]({'where':{'id':_0x47f2f0[_0xbe81('0x26')]['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x5d5488,null))[_0xbe81('0x13')](saveUpdates(_0x47f2f0[_0xbe81('0x39')],null))[_0xbe81('0x13')](respondWithResult(_0x5d5488,null))[_0xbe81('0x32')](handleError(_0x5d5488,null));};exports[_0xbe81('0x14')]=function(_0x46bcdb,_0x4052f6){return db[_0xbe81('0x21')][_0xbe81('0x31')]({'where':{'id':_0x46bcdb[_0xbe81('0x26')]['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x4052f6,null))[_0xbe81('0x13')](removeEntity(_0x4052f6,null))[_0xbe81('0x32')](handleError(_0x4052f6,null));};exports[_0xbe81('0x3a')]=function(_0x27ddcc,_0x2824f9){return db['ChatQueue'][_0xbe81('0x3a')]()['then'](respondWithResult(_0x2824f9,null))[_0xbe81('0x32')](handleError(_0x2824f9,null));};exports[_0xbe81('0x3b')]=function(_0x1158b2,_0x154ad5){var _0x25a24e={'raw':!![],'where':{}},_0x210060={},_0x4053a9;return db[_0xbe81('0x21')][_0xbe81('0x3c')]({'where':{'id':_0x1158b2[_0xbe81('0x26')]['id']}})['then'](handleEntityNotFound(_0x154ad5,null))[_0xbe81('0x13')](function(_0x5e67b1){if(_0x5e67b1){_0x4053a9=_0x5e67b1[_0xbe81('0x15')]({'plain':!![]});_0x210060['model']=_['keys'](db['UserChatQueue'][_0xbe81('0x1d')]);_0x210060[_0xbe81('0x23')]=_['keys'](_0x1158b2['query']);_0x210060['filters']=_['intersection'](_0x210060['model'],_0x210060[_0xbe81('0x23')]);_0x25a24e[_0xbe81('0x2b')]=_[_0xbe81('0x2a')](_0x210060[_0xbe81('0x27')],qs[_0xbe81('0x2c')](_0x1158b2[_0xbe81('0x23')][_0xbe81('0x2c')]));_0x25a24e[_0xbe81('0x2b')]=_0x25a24e['attributes']['length']?_0x25a24e[_0xbe81('0x2b')]:_0x210060[_0xbe81('0x27')];if(!_0x1158b2['query']['hasOwnProperty']('nolimit')){_0x25a24e['limit']=qs[_0xbe81('0xe')](_0x1158b2[_0xbe81('0x23')][_0xbe81('0xe')]);_0x25a24e[_0xbe81('0xc')]=qs[_0xbe81('0xc')](_0x1158b2[_0xbe81('0x23')][_0xbe81('0xc')]);}_0x25a24e['order']=qs[_0xbe81('0x3d')](_0x1158b2[_0xbe81('0x23')][_0xbe81('0x3d')]);_0x25a24e[_0xbe81('0x3e')]=qs['filters'](_['pick'](_0x1158b2[_0xbe81('0x23')],_0x210060[_0xbe81('0x29')]));_0x25a24e['where'][_0xbe81('0x3f')]=_0x5e67b1['id'];if(_0x1158b2[_0xbe81('0x23')]['filter']){_0x25a24e[_0xbe81('0x3e')]=_[_0xbe81('0x2f')](_0x25a24e[_0xbe81('0x3e')],{'$or':_[_0xbe81('0x1c')](_0x25a24e[_0xbe81('0x2b')],function(_0x524fd1){var _0x1c0820={};_0x1c0820[_0x524fd1]={'$like':'%'+_0x1158b2[_0xbe81('0x23')][_0xbe81('0x40')]+'%'};return _0x1c0820;})});}_0x25a24e=_['merge']({},_0x25a24e,_0x1158b2[_0xbe81('0x30')]);return db[_0xbe81('0x41')][_0xbe81('0x24')](_0x25a24e);}})['then'](function(_0x50475a){if(_0x50475a){return db[_0xbe81('0x42')][_0xbe81('0x43')]({'where':{'id':_['map'](_0x50475a,_0xbe81('0x44')),'role':_0xbe81('0x45')},'attributes':['id',_0xbe81('0x1a'),_0xbe81('0x46'),_0xbe81('0x47'),_0xbe81('0x48')]});}})[_0xbe81('0x13')](function(_0x103ada){if(_0x103ada){return{'count':_0x103ada[_0xbe81('0xf')],'rows':_[_0xbe81('0x1c')](_0x103ada['rows'],function(_0x42438e){return{'membername':_0x42438e[_0xbe81('0x1a')],'UserId':_0x42438e['id'],'queue_name':_0x4053a9[_0xbe81('0x1a')],'ChatQueueId':_0x4053a9['id'],'interface':util[_0xbe81('0x49')](_0xbe81('0x4a'),_0xbe81('0x4b'),_0x42438e[_0xbe81('0x1a')]),'penalty':0x0,'paused':_0x42438e[_0xbe81('0x46')],'createdAt':_0x42438e[_0xbe81('0x48')],'updatedAt':_0x42438e[_0xbe81('0x47')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xbe81('0x13')](respondWithFilteredResult(_0x154ad5,_0x25a24e))[_0xbe81('0x32')](handleError(_0x154ad5,null));};exports[_0xbe81('0x4c')]=function(_0x53072c,_0x5f2783){var _0x1f68dd={};var _0x287d6d={};var _0x41120e;var _0x34dd1f;return db[_0xbe81('0x21')][_0xbe81('0x3c')]({'where':{'id':_0x53072c[_0xbe81('0x26')]['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x5f2783,null))[_0xbe81('0x13')](function(_0x5135a8){if(_0x5135a8){_0x41120e=_0x5135a8;_0x287d6d[_0xbe81('0x27')]=_[_0xbe81('0x28')](db[_0xbe81('0x4d')][_0xbe81('0x1d')]);_0x287d6d['query']=_['keys'](_0x53072c[_0xbe81('0x23')]);_0x287d6d[_0xbe81('0x29')]=_['intersection'](_0x287d6d[_0xbe81('0x27')],_0x287d6d[_0xbe81('0x23')]);_0x1f68dd['attributes']=_[_0xbe81('0x2a')](_0x287d6d[_0xbe81('0x27')],qs[_0xbe81('0x2c')](_0x53072c['query'][_0xbe81('0x2c')]));_0x1f68dd[_0xbe81('0x2b')]=_0x1f68dd[_0xbe81('0x2b')][_0xbe81('0x2d')]?_0x1f68dd[_0xbe81('0x2b')]:_0x287d6d[_0xbe81('0x27')];_0x1f68dd[_0xbe81('0x4e')]=qs[_0xbe81('0x3d')](_0x53072c['query'][_0xbe81('0x3d')]);_0x1f68dd[_0xbe81('0x3e')]=qs['filters'](_[_0xbe81('0x4f')](_0x53072c['query'],_0x287d6d[_0xbe81('0x29')]));if(_0x53072c[_0xbe81('0x23')][_0xbe81('0x40')]){_0x1f68dd['where']=_[_0xbe81('0x2f')](_0x1f68dd[_0xbe81('0x3e')],{'$or':_[_0xbe81('0x1c')](_0x1f68dd[_0xbe81('0x2b')],function(_0x2f5891){var _0x536e5a={};_0x536e5a[_0x2f5891]={'$like':'%'+_0x53072c[_0xbe81('0x23')][_0xbe81('0x40')]+'%'};return _0x536e5a;})});}_0x1f68dd=_[_0xbe81('0x2f')]({},_0x1f68dd,_0x53072c[_0xbe81('0x30')]);return _0x41120e['getTeams'](_0x1f68dd);}})['then'](function(_0xfb04d7){if(_0xfb04d7){_0x34dd1f=_0xfb04d7[_0xbe81('0x2d')];if(!_0x53072c[_0xbe81('0x23')][_0xbe81('0x50')]('nolimit')){_0x1f68dd[_0xbe81('0xe')]=qs['limit'](_0x53072c[_0xbe81('0x23')][_0xbe81('0xe')]);_0x1f68dd[_0xbe81('0xc')]=qs[_0xbe81('0xc')](_0x53072c[_0xbe81('0x23')][_0xbe81('0xc')]);}return _0x41120e[_0xbe81('0x4c')](_0x1f68dd);}})[_0xbe81('0x13')](function(_0x47f948){if(_0x47f948){return _0x47f948?{'count':_0x34dd1f,'rows':_0x47f948}:null;}})[_0xbe81('0x13')](respondWithResult(_0x5f2783,null))[_0xbe81('0x32')](handleError(_0x5f2783,null));};exports[_0xbe81('0x51')]=function(_0x2f1554,_0xb6361a){var _0x3bc3e9=_0x2f1554[_0xbe81('0x39')][_0xbe81('0x52')];return db[_0xbe81('0x4d')][_0xbe81('0x24')]({'where':{'id':_0x3bc3e9},'attributes':['id'],'include':[{'model':db[_0xbe81('0x42')],'as':_0xbe81('0x53'),'attributes':['id','name',_0xbe81('0x54'),_0xbe81('0x55'),'interface'],'raw':!![]}]})[_0xbe81('0x13')](function(_0x15e855){if(_0x15e855){var _0x3e4f4d=_[_0xbe81('0x56')](_0x15e855,function(_0x26c117){var _0x3393c6=_0x26c117[_0xbe81('0x15')]({'plain':!![]});return _0x3393c6[_0xbe81('0x53')];});return db[_0xbe81('0x21')]['find']({'where':{'id':_0x2f1554[_0xbe81('0x26')]['id']}})['then'](function(_0x31be90){return db[_0xbe81('0x57')][_0xbe81('0x58')](function(_0x23d744){return _0x31be90[_0xbe81('0x51')](_0x3bc3e9,{'transaction':_0x23d744})[_0xbe81('0x13')](function(){return BPromise[_0xbe81('0x59')](_0x3e4f4d,function(_0xf7f42d){return db['UserChatQueue'][_0xbe81('0x5a')]({'where':{'UserId':_0xf7f42d['id'],'ChatQueueId':_0x2f1554['params']['id']},'transaction':_0x23d744});});})[_0xbe81('0x13')](function(){_0x3e4f4d[_0xbe81('0x5b')](function(_0x512a5e){socket[_0xbe81('0x5c')](_0xbe81('0x5d'),{'UserId':_0x512a5e['id'],'ChatQueueId':_0x31be90['id']});});});});});}})[_0xbe81('0x13')](respondWithStatusCode(_0xb6361a,null))[_0xbe81('0x32')](handleError(_0xb6361a,null));};exports['removeTeams']=function(_0x1fd4d8,_0x25ff51){return db[_0xbe81('0x4d')]['findAll']({'where':{'id':_0x1fd4d8['query']['ids']},'attributes':['id'],'include':[{'model':db[_0xbe81('0x42')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0xbe81('0x13')](handleEntityNotFound(_0x25ff51,null))[_0xbe81('0x13')](function(_0x169b83){var _0x2eabf9=_[_0xbe81('0x1c')](_0x169b83,'id');var _0x50a314=[];var _0x4ab07f=[];var _0x303087=squel['select']();_0x303087[_0xbe81('0x5e')]('tq.TeamId')[_0xbe81('0x5f')]('team_has_chat_queues','tq')['join']('user_has_teams','ut',_0xbe81('0x60'))['where']('ChatQueueId\x20=\x20?',_0x1fd4d8[_0xbe81('0x26')]['id']);for(var _0x4a1fa5=0x0;_0x4a1fa5<_0x169b83[_0xbe81('0x2d')];_0x4a1fa5+=0x1){let _0x3f8af0=_0x169b83[_0x4a1fa5];for(var _0x572d1b=0x0;_0x572d1b<_0x3f8af0['Agents'][_0xbe81('0x2d')];_0x572d1b+=0x1){let _0x54623c=_0x3f8af0['Agents'][_0x572d1b];var _0x53fba3=_0x303087[_0xbe81('0x61')]();_0x53fba3[_0xbe81('0x3e')](_0xbe81('0x62'),_0x54623c['id']);_0x4ab07f[_0xbe81('0x63')](db[_0xbe81('0x57')]['query'](_0x53fba3[_0xbe81('0x64')](),{'type':db[_0xbe81('0x57')]['QueryTypes'][_0xbe81('0x65')]})[_0xbe81('0x13')](function(_0x1fe0ec){if(_0x1fe0ec['length']===0x1){return _0x54623c['id'];}else{var _0x3eed5b=_[_0xbe81('0x66')](_[_0xbe81('0x1c')](_0x1fe0ec,_0xbe81('0x67')),function(_0x30b27f){return _[_0xbe81('0x68')](_0x2eabf9,_0x30b27f);});if(_0x3eed5b){return _0x54623c['id'];}}}));}}return BPromise[_0xbe81('0x69')](_0x4ab07f)[_0xbe81('0x13')](function(_0x8dfc47){_0x50a314=_(_0x50a314)[_0xbe81('0x6a')](_0x8dfc47)[_0xbe81('0x6b')]()[_0xbe81('0x6c')]();return db[_0xbe81('0x21')]['find']({'where':{'id':_0x1fd4d8['params']['id']}})['then'](function(_0xbbc1d1){return db[_0xbe81('0x57')][_0xbe81('0x58')](function(_0x3a6e5f){return _0xbbc1d1[_0xbe81('0x6d')](_0x1fd4d8[_0xbe81('0x23')][_0xbe81('0x52')],{'transaction':_0x3a6e5f})['then'](function(){if(!_[_0xbe81('0x6e')](_0x50a314)){return _0xbbc1d1[_0xbe81('0x6f')](_0x50a314,{'transaction':_0x3a6e5f});}})[_0xbe81('0x13')](function(){_0x50a314['forEach'](function(_0x21de3e){socket[_0xbe81('0x5c')](_0xbe81('0x70'),{'UserId':_0x21de3e,'ChatQueueId':_0xbbc1d1['id']});});});});});});})[_0xbe81('0x13')](respondWithStatusCode(_0x25ff51,null))['catch'](handleError(_0x25ff51,null));};exports['addAgents']=function(_0x3b71ce,_0x2653e3){return db['ChatQueue'][_0xbe81('0x31')]({'where':{'id':_0x3b71ce[_0xbe81('0x26')]['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x2653e3,null))[_0xbe81('0x13')](function(_0x193afd){if(_0x193afd){return _0x193afd[_0xbe81('0x71')](_0x3b71ce[_0xbe81('0x39')][_0xbe81('0x52')],_[_0xbe81('0x72')](_0x3b71ce[_0xbe81('0x39')],[_0xbe81('0x52'),'id'])||{})[_0xbe81('0x73')](function(_0x5bfbe1){for(var _0x3d100c=0x0;_0x3d100c<_0x3b71ce['body'][_0xbe81('0x52')][_0xbe81('0x2d')];_0x3d100c+=0x1){socket[_0xbe81('0x5c')](_0xbe81('0x5d'),{'UserId':Number(_0x3b71ce[_0xbe81('0x39')][_0xbe81('0x52')][_0x3d100c]),'ChatQueueId':Number(_0x3b71ce[_0xbe81('0x26')]['id'])});}return _0x5bfbe1;});}})[_0xbe81('0x13')](respondWithResult(_0x2653e3,null))[_0xbe81('0x32')](handleError(_0x2653e3,null));};exports['removeAgents']=function(_0x1c6e7d,_0x544249){return db['ChatQueue'][_0xbe81('0x31')]({'where':{'id':_0x1c6e7d[_0xbe81('0x26')]['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x544249,null))[_0xbe81('0x13')](function(_0x458916){if(_0x458916){return _0x458916[_0xbe81('0x6f')](_0x1c6e7d[_0xbe81('0x23')][_0xbe81('0x52')])[_0xbe81('0x13')](function(){if(_['isArray'](_0x1c6e7d[_0xbe81('0x23')][_0xbe81('0x52')])){for(var _0x24b2e4=0x0;_0x24b2e4<_0x1c6e7d[_0xbe81('0x23')][_0xbe81('0x52')][_0xbe81('0x2d')];_0x24b2e4+=0x1){socket[_0xbe81('0x5c')]('userChatQueue:remove',{'UserId':Number(_0x1c6e7d[_0xbe81('0x23')][_0xbe81('0x52')][_0x24b2e4]),'ChatQueueId':Number(_0x1c6e7d[_0xbe81('0x26')]['id'])});}}else{socket['emit'](_0xbe81('0x70'),{'UserId':Number(_0x1c6e7d[_0xbe81('0x23')][_0xbe81('0x52')]),'ChatQueueId':Number(_0x1c6e7d[_0xbe81('0x26')]['id'])});}});}})[_0xbe81('0x13')](respondWithStatusCode(_0x544249,null))[_0xbe81('0x32')](handleError(_0x544249,null));};exports[_0xbe81('0x74')]=function(_0x15d9a0,_0x42c787){var _0x3b5682={};var _0xccfbc7={};var _0x4b8809;var _0x3589be;return db[_0xbe81('0x21')][_0xbe81('0x3c')]({'where':{'id':_0x15d9a0['params']['id']}})[_0xbe81('0x13')](handleEntityNotFound(_0x42c787,null))['then'](function(_0x49e420){if(_0x49e420){_0x4b8809=_0x49e420;_0xccfbc7[_0xbe81('0x27')]=_['keys'](db[_0xbe81('0x42')]['rawAttributes']);_0xccfbc7[_0xbe81('0x23')]=_[_0xbe81('0x28')](_0x15d9a0[_0xbe81('0x23')]);_0xccfbc7[_0xbe81('0x29')]=_[_0xbe81('0x2a')](_0xccfbc7[_0xbe81('0x27')],_0xccfbc7['query']);_0x3b5682[_0xbe81('0x2b')]=_['intersection'](_0xccfbc7[_0xbe81('0x27')],qs[_0xbe81('0x2c')](_0x15d9a0[_0xbe81('0x23')][_0xbe81('0x2c')]));_0x3b5682[_0xbe81('0x2b')]=_0x3b5682['attributes']['length']?_0x3b5682[_0xbe81('0x2b')]:_0xccfbc7[_0xbe81('0x27')];_0x3b5682['order']=qs['sort'](_0x15d9a0[_0xbe81('0x23')][_0xbe81('0x3d')]);_0x3b5682[_0xbe81('0x3e')]=qs[_0xbe81('0x29')](_[_0xbe81('0x4f')](_0x15d9a0[_0xbe81('0x23')],_0xccfbc7['filters']));if(_0x15d9a0[_0xbe81('0x23')][_0xbe81('0x40')]){_0x3b5682[_0xbe81('0x3e')]=_[_0xbe81('0x2f')](_0x3b5682['where'],{'$or':_[_0xbe81('0x1c')](_0x3b5682[_0xbe81('0x2b')],function(_0x324da1){var _0x3bf935={};_0x3bf935[_0x324da1]={'$like':'%'+_0x15d9a0['query'][_0xbe81('0x40')]+'%'};return _0x3bf935;})});}_0x3b5682=_[_0xbe81('0x2f')]({},_0x3b5682,_0x15d9a0[_0xbe81('0x30')]);return _0x4b8809['getAgents'](_0x3b5682);}})[_0xbe81('0x13')](function(_0x426f1c){if(_0x426f1c){_0x3589be=_0x426f1c[_0xbe81('0x2d')];if(!_0x15d9a0[_0xbe81('0x23')][_0xbe81('0x50')](_0xbe81('0x75'))){_0x3b5682[_0xbe81('0xe')]=qs[_0xbe81('0xe')](_0x15d9a0['query'][_0xbe81('0xe')]);_0x3b5682[_0xbe81('0xc')]=qs['offset'](_0x15d9a0[_0xbe81('0x23')][_0xbe81('0xc')]);}return _0x4b8809['getAgents'](_0x3b5682);}})[_0xbe81('0x13')](function(_0xf64a9c){if(_0xf64a9c){return _0xf64a9c?{'count':_0x3589be,'rows':_0xf64a9c}:null;}})[_0xbe81('0x13')](respondWithResult(_0x42c787,null))[_0xbe81('0x32')](handleError(_0x42c787,null));};