d4160825e981bc32c6f85566929e21cf0278e2bf
[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 _0xee48=['status','end','json','offset','undefined','count','set','Content-Range','update','then','destroy','get','ChatQueues','UserProfileResource','error','name','send','index','fieldName','type','key','getOptions','ChatQueue','include','query','findAll','catch','show','params','model','keys','rawAttributes','filters','attributes','fields','length','includeAll','options','create','body','user','role','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserChatQueue','intersection','hasOwnProperty','nolimit','limit','order','sort','where','pick','ChatQueueId','filter','merge','map','User','findAndCountAll','UserId','chatPause','updatedAt','createdAt','rows','%s/%s','SIP','getTeams','Team','addTeams','ids','voicePause','interface','flatMap','Agents','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','from','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','QueryTypes','SELECT','includes','all','union','compact','isEmpty','userChatQueue:remove','addAgents','spread','removeAgents','isArray','getAgents','bluebird','util','lodash','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','defaults','redis','socket.io-emitter','./chatQueue.socket','sendStatus'];(function(_0x58258c,_0x34e72f){var _0x174c02=function(_0x79838e){while(--_0x79838e){_0x58258c['push'](_0x58258c['shift']());}};_0x174c02(++_0x34e72f);}(_0xee48,0x15c));var _0x8ee4=function(_0x1b91c7,_0x539acd){_0x1b91c7=_0x1b91c7-0x0;var _0xbbe014=_0xee48[_0x1b91c7];return _0xbbe014;};'use strict';var BPromise=require(_0x8ee4('0x0'));var util=require(_0x8ee4('0x1'));var _=require(_0x8ee4('0x2'));var squel=require('squel');var Redis=require('ioredis');var qs=require(_0x8ee4('0x3'));var logger=require(_0x8ee4('0x4'))('api');var config=require(_0x8ee4('0x5'));var db=require(_0x8ee4('0x6'))['db'];config['redis']=_[_0x8ee4('0x7')](config[_0x8ee4('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x8ee4('0x9'))(new Redis(config[_0x8ee4('0x8')]));require(_0x8ee4('0xa'))['register'](socket);function respondWithStatusCode(_0x83dfe2,_0x4c6681){_0x4c6681=_0x4c6681||0xcc;return function(_0x2547ab){if(_0x2547ab){return _0x83dfe2[_0x8ee4('0xb')](_0x4c6681);}return _0x83dfe2[_0x8ee4('0xc')](_0x4c6681)[_0x8ee4('0xd')]();};}function respondWithResult(_0xfe67f7,_0x822f0){_0x822f0=_0x822f0||0xc8;return function(_0x19ce74){if(_0x19ce74){return _0xfe67f7['status'](_0x822f0)[_0x8ee4('0xe')](_0x19ce74);}};}function respondWithFilteredResult(_0x1b4979,_0x3632e6){return function(_0x13a638){if(_0x13a638){var _0x1baebf=typeof _0x3632e6[_0x8ee4('0xf')]===_0x8ee4('0x10')&&typeof _0x3632e6['limit']===_0x8ee4('0x10');var _0x271103=_0x13a638[_0x8ee4('0x11')];var _0x1a955a=_0x1baebf?0x0:_0x3632e6[_0x8ee4('0xf')];var _0x58e7b9=_0x1baebf?_0x13a638[_0x8ee4('0x11')]:_0x3632e6['offset']+_0x3632e6['limit'];var _0x234fd6;if(_0x58e7b9>=_0x271103){_0x58e7b9=_0x271103;_0x234fd6=0xc8;}else{_0x234fd6=0xce;}_0x1b4979[_0x8ee4('0xc')](_0x234fd6);return _0x1b4979[_0x8ee4('0x12')](_0x8ee4('0x13'),_0x1a955a+'-'+_0x58e7b9+'/'+_0x271103)[_0x8ee4('0xe')](_0x13a638);}return null;};}function saveUpdates(_0x763dbd){return function(_0x531b6c){if(_0x531b6c){return _0x531b6c[_0x8ee4('0x14')](_0x763dbd)[_0x8ee4('0x15')](function(_0x3081cb){return _0x3081cb;});}return null;};}function removeEntity(_0x4c3115){return function(_0x20f0b6){if(_0x20f0b6){return _0x20f0b6[_0x8ee4('0x16')]()[_0x8ee4('0x15')](function(){var _0x3f5931=_0x20f0b6[_0x8ee4('0x17')]({'plain':!![]});var _0x5f1948=_0x8ee4('0x18');return db[_0x8ee4('0x19')][_0x8ee4('0x16')]({'where':{'type':_0x5f1948,'resourceId':_0x3f5931['id']}})[_0x8ee4('0x15')](function(){return _0x20f0b6;});})[_0x8ee4('0x15')](function(){_0x4c3115[_0x8ee4('0xc')](0xcc)[_0x8ee4('0xd')]();});}};}function handleEntityNotFound(_0x644247){return function(_0x1c9d09){if(!_0x1c9d09){_0x644247[_0x8ee4('0xb')](0x194);}return _0x1c9d09;};}function handleError(_0x2dbdba,_0x1a78bd){_0x1a78bd=_0x1a78bd||0x1f4;return function(_0x4b7a73){logger[_0x8ee4('0x1a')](_0x4b7a73['stack']);if(_0x4b7a73[_0x8ee4('0x1b')]){delete _0x4b7a73['name'];}_0x2dbdba[_0x8ee4('0xc')](_0x1a78bd)[_0x8ee4('0x1c')](_0x4b7a73);};}exports[_0x8ee4('0x1d')]=function(_0x91b89,_0x3d6006){var _0x21635b={};var _0x5765c4={'count':0x0,'rows':[]};var _0x351fbb=_['map'](db['ChatQueue']['rawAttributes'],function(_0x189240){return{'name':_0x189240[_0x8ee4('0x1e')],'type':_0x189240[_0x8ee4('0x1f')][_0x8ee4('0x20')]};});_0x21635b=qs[_0x8ee4('0x21')](_0x351fbb,_0x91b89);var _0xfc7539={'where':_0x21635b['where']};return db[_0x8ee4('0x22')][_0x8ee4('0x11')](_0xfc7539)['then'](function(_0x2dc3ca){_0x5765c4[_0x8ee4('0x11')]=_0x2dc3ca;_0x21635b['include']=qs[_0x8ee4('0x23')](_0x91b89[_0x8ee4('0x24')]);return db[_0x8ee4('0x22')][_0x8ee4('0x25')](_0x21635b);})['then'](function(_0x3f52c1){_0x5765c4['rows']=_0x3f52c1;return _0x5765c4;})[_0x8ee4('0x15')](respondWithFilteredResult(_0x3d6006,_0x21635b))[_0x8ee4('0x26')](handleError(_0x3d6006,null));};exports[_0x8ee4('0x27')]=function(_0x433ecd,_0x412ff2){var _0x5746cd={'raw':!![],'where':{'id':_0x433ecd[_0x8ee4('0x28')]['id']}},_0x39487e={};_0x39487e[_0x8ee4('0x29')]=_[_0x8ee4('0x2a')](db[_0x8ee4('0x22')][_0x8ee4('0x2b')]);_0x39487e['query']=_['keys'](_0x433ecd['query']);_0x39487e[_0x8ee4('0x2c')]=_['intersection'](_0x39487e[_0x8ee4('0x29')],_0x39487e[_0x8ee4('0x24')]);_0x5746cd[_0x8ee4('0x2d')]=_['intersection'](_0x39487e[_0x8ee4('0x29')],qs[_0x8ee4('0x2e')](_0x433ecd[_0x8ee4('0x24')][_0x8ee4('0x2e')]));_0x5746cd[_0x8ee4('0x2d')]=_0x5746cd[_0x8ee4('0x2d')][_0x8ee4('0x2f')]?_0x5746cd[_0x8ee4('0x2d')]:_0x39487e[_0x8ee4('0x29')];if(_0x433ecd[_0x8ee4('0x24')][_0x8ee4('0x30')]){_0x5746cd[_0x8ee4('0x23')]=[{'all':!![]}];}_0x5746cd=_['merge']({},_0x5746cd,_0x433ecd[_0x8ee4('0x31')]);return db[_0x8ee4('0x22')]['find'](_0x5746cd)[_0x8ee4('0x15')](handleEntityNotFound(_0x412ff2,null))[_0x8ee4('0x15')](respondWithResult(_0x412ff2,null))[_0x8ee4('0x26')](handleError(_0x412ff2,null));};exports[_0x8ee4('0x32')]=function(_0x2c93ad,_0xbe2fed){return db[_0x8ee4('0x22')][_0x8ee4('0x32')](_0x2c93ad[_0x8ee4('0x33')],{})[_0x8ee4('0x15')](function(_0x4fa218){var _0x1c3228=_0x2c93ad[_0x8ee4('0x34')][_0x8ee4('0x17')]({'plain':!![]});if(!_0x1c3228)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1c3228[_0x8ee4('0x35')]===_0x8ee4('0x34')){var _0x188d12=_0x4fa218['get']({'plain':!![]});var _0x303f78='ChatQueues';return db['UserProfileSection'][_0x8ee4('0x36')]({'where':{'name':_0x303f78,'userProfileId':_0x1c3228['userProfileId']},'raw':!![]})[_0x8ee4('0x15')](function(_0x4235a0){if(_0x4235a0&&_0x4235a0[_0x8ee4('0x37')]===0x0){return db[_0x8ee4('0x19')][_0x8ee4('0x32')]({'name':_0x188d12[_0x8ee4('0x1b')],'resourceId':_0x188d12['id'],'type':_0x4235a0[_0x8ee4('0x1b')],'sectionId':_0x4235a0['id']},{})['then'](function(){return _0x4fa218;});}else{return _0x4fa218;}})[_0x8ee4('0x26')](function(_0x1f4214){logger[_0x8ee4('0x1a')](_0x8ee4('0x38'),_0x1f4214);throw _0x1f4214;});}return _0x4fa218;})[_0x8ee4('0x15')](respondWithResult(_0xbe2fed,0xc9))[_0x8ee4('0x26')](handleError(_0xbe2fed,null));};exports[_0x8ee4('0x14')]=function(_0x14e89a,_0x250910){if(_0x14e89a[_0x8ee4('0x33')]['id']){delete _0x14e89a[_0x8ee4('0x33')]['id'];}return db[_0x8ee4('0x22')][_0x8ee4('0x36')]({'where':{'id':_0x14e89a[_0x8ee4('0x28')]['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0x250910,null))[_0x8ee4('0x15')](saveUpdates(_0x14e89a[_0x8ee4('0x33')],null))['then'](respondWithResult(_0x250910,null))[_0x8ee4('0x26')](handleError(_0x250910,null));};exports[_0x8ee4('0x16')]=function(_0x5a0c1c,_0x17d85c){return db[_0x8ee4('0x22')][_0x8ee4('0x36')]({'where':{'id':_0x5a0c1c[_0x8ee4('0x28')]['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0x17d85c,null))[_0x8ee4('0x15')](removeEntity(_0x17d85c,null))[_0x8ee4('0x26')](handleError(_0x17d85c,null));};exports[_0x8ee4('0x39')]=function(_0x102dbe,_0x5b2ec){return db[_0x8ee4('0x22')][_0x8ee4('0x39')]()[_0x8ee4('0x15')](respondWithResult(_0x5b2ec,null))[_0x8ee4('0x26')](handleError(_0x5b2ec,null));};exports[_0x8ee4('0x3a')]=function(_0x46fcb6,_0x25c115){var _0x1e2695={'raw':!![],'where':{}},_0x4eafd7={},_0x8f5754;return db[_0x8ee4('0x22')][_0x8ee4('0x3b')]({'where':{'id':_0x46fcb6[_0x8ee4('0x28')]['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0x25c115,null))[_0x8ee4('0x15')](function(_0x3a6ff9){if(_0x3a6ff9){_0x8f5754=_0x3a6ff9[_0x8ee4('0x17')]({'plain':!![]});_0x4eafd7[_0x8ee4('0x29')]=_[_0x8ee4('0x2a')](db[_0x8ee4('0x3c')][_0x8ee4('0x2b')]);_0x4eafd7['query']=_[_0x8ee4('0x2a')](_0x46fcb6['query']);_0x4eafd7[_0x8ee4('0x2c')]=_[_0x8ee4('0x3d')](_0x4eafd7[_0x8ee4('0x29')],_0x4eafd7['query']);_0x1e2695[_0x8ee4('0x2d')]=_[_0x8ee4('0x3d')](_0x4eafd7[_0x8ee4('0x29')],qs['fields'](_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x2e')]));_0x1e2695['attributes']=_0x1e2695['attributes'][_0x8ee4('0x2f')]?_0x1e2695['attributes']:_0x4eafd7[_0x8ee4('0x29')];if(!_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x3e')](_0x8ee4('0x3f'))){_0x1e2695[_0x8ee4('0x40')]=qs[_0x8ee4('0x40')](_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x40')]);_0x1e2695['offset']=qs[_0x8ee4('0xf')](_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0xf')]);}_0x1e2695[_0x8ee4('0x41')]=qs[_0x8ee4('0x42')](_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x42')]);_0x1e2695[_0x8ee4('0x43')]=qs[_0x8ee4('0x2c')](_[_0x8ee4('0x44')](_0x46fcb6['query'],_0x4eafd7['filters']));_0x1e2695[_0x8ee4('0x43')][_0x8ee4('0x45')]=_0x3a6ff9['id'];if(_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x46')]){_0x1e2695[_0x8ee4('0x43')]=_[_0x8ee4('0x47')](_0x1e2695['where'],{'$or':_[_0x8ee4('0x48')](_0x1e2695['attributes'],function(_0xb5bb19){var _0x3b19b1={};_0x3b19b1[_0xb5bb19]={'$like':'%'+_0x46fcb6[_0x8ee4('0x24')][_0x8ee4('0x46')]+'%'};return _0x3b19b1;})});}_0x1e2695=_[_0x8ee4('0x47')]({},_0x1e2695,_0x46fcb6[_0x8ee4('0x31')]);return db[_0x8ee4('0x3c')][_0x8ee4('0x25')](_0x1e2695);}})[_0x8ee4('0x15')](function(_0x2318b9){if(_0x2318b9){return db[_0x8ee4('0x49')][_0x8ee4('0x4a')]({'where':{'id':_['map'](_0x2318b9,_0x8ee4('0x4b')),'role':'agent'},'attributes':['id',_0x8ee4('0x1b'),_0x8ee4('0x4c'),_0x8ee4('0x4d'),_0x8ee4('0x4e')]});}})['then'](function(_0x5a700c){if(_0x5a700c){return{'count':_0x5a700c[_0x8ee4('0x11')],'rows':_[_0x8ee4('0x48')](_0x5a700c[_0x8ee4('0x4f')],function(_0x369c27){return{'membername':_0x369c27[_0x8ee4('0x1b')],'UserId':_0x369c27['id'],'queue_name':_0x8f5754[_0x8ee4('0x1b')],'ChatQueueId':_0x8f5754['id'],'interface':util['format'](_0x8ee4('0x50'),_0x8ee4('0x51'),_0x369c27['name']),'penalty':0x0,'paused':_0x369c27[_0x8ee4('0x4c')],'createdAt':_0x369c27['createdAt'],'updatedAt':_0x369c27[_0x8ee4('0x4d')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x8ee4('0x15')](respondWithFilteredResult(_0x25c115,_0x1e2695))[_0x8ee4('0x26')](handleError(_0x25c115,null));};exports[_0x8ee4('0x52')]=function(_0x43f74d,_0x27d395){var _0x134f3d={};var _0x42d94f={};var _0x5c364a;var _0xbeafa;return db[_0x8ee4('0x22')][_0x8ee4('0x3b')]({'where':{'id':_0x43f74d[_0x8ee4('0x28')]['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0x27d395,null))[_0x8ee4('0x15')](function(_0x12ccb8){if(_0x12ccb8){_0x5c364a=_0x12ccb8;_0x42d94f[_0x8ee4('0x29')]=_[_0x8ee4('0x2a')](db[_0x8ee4('0x53')][_0x8ee4('0x2b')]);_0x42d94f[_0x8ee4('0x24')]=_[_0x8ee4('0x2a')](_0x43f74d[_0x8ee4('0x24')]);_0x42d94f[_0x8ee4('0x2c')]=_[_0x8ee4('0x3d')](_0x42d94f[_0x8ee4('0x29')],_0x42d94f[_0x8ee4('0x24')]);_0x134f3d[_0x8ee4('0x2d')]=_[_0x8ee4('0x3d')](_0x42d94f['model'],qs[_0x8ee4('0x2e')](_0x43f74d[_0x8ee4('0x24')][_0x8ee4('0x2e')]));_0x134f3d[_0x8ee4('0x2d')]=_0x134f3d[_0x8ee4('0x2d')][_0x8ee4('0x2f')]?_0x134f3d[_0x8ee4('0x2d')]:_0x42d94f[_0x8ee4('0x29')];_0x134f3d[_0x8ee4('0x41')]=qs[_0x8ee4('0x42')](_0x43f74d['query'][_0x8ee4('0x42')]);_0x134f3d[_0x8ee4('0x43')]=qs['filters'](_[_0x8ee4('0x44')](_0x43f74d[_0x8ee4('0x24')],_0x42d94f['filters']));if(_0x43f74d['query']['filter']){_0x134f3d['where']=_[_0x8ee4('0x47')](_0x134f3d['where'],{'$or':_[_0x8ee4('0x48')](_0x134f3d['attributes'],function(_0x9b6e21){var _0x55dbd0={};_0x55dbd0[_0x9b6e21]={'$like':'%'+_0x43f74d[_0x8ee4('0x24')]['filter']+'%'};return _0x55dbd0;})});}_0x134f3d=_[_0x8ee4('0x47')]({},_0x134f3d,_0x43f74d[_0x8ee4('0x31')]);return _0x5c364a[_0x8ee4('0x52')](_0x134f3d);}})[_0x8ee4('0x15')](function(_0x2f1bff){if(_0x2f1bff){_0xbeafa=_0x2f1bff[_0x8ee4('0x2f')];if(!_0x43f74d[_0x8ee4('0x24')][_0x8ee4('0x3e')](_0x8ee4('0x3f'))){_0x134f3d[_0x8ee4('0x40')]=qs[_0x8ee4('0x40')](_0x43f74d['query'][_0x8ee4('0x40')]);_0x134f3d[_0x8ee4('0xf')]=qs[_0x8ee4('0xf')](_0x43f74d[_0x8ee4('0x24')]['offset']);}return _0x5c364a['getTeams'](_0x134f3d);}})[_0x8ee4('0x15')](function(_0x339c67){if(_0x339c67){return _0x339c67?{'count':_0xbeafa,'rows':_0x339c67}:null;}})['then'](respondWithResult(_0x27d395,null))[_0x8ee4('0x26')](handleError(_0x27d395,null));};exports[_0x8ee4('0x54')]=function(_0x5cb433,_0x59798e){var _0x2fb2f6=_0x5cb433['body'][_0x8ee4('0x55')];return db[_0x8ee4('0x53')][_0x8ee4('0x25')]({'where':{'id':_0x2fb2f6},'attributes':['id'],'include':[{'model':db[_0x8ee4('0x49')],'as':'Agents','attributes':['id','name','online',_0x8ee4('0x56'),_0x8ee4('0x57')],'raw':!![]}]})[_0x8ee4('0x15')](function(_0x11939a){if(_0x11939a){var _0x3877f1=_[_0x8ee4('0x58')](_0x11939a,function(_0x59d288){var _0x533496=_0x59d288['get']({'plain':!![]});return _0x533496[_0x8ee4('0x59')];});return db[_0x8ee4('0x22')]['find']({'where':{'id':_0x5cb433['params']['id']}})[_0x8ee4('0x15')](function(_0x467515){return db['sequelize'][_0x8ee4('0x5a')](function(_0x3be986){return _0x467515[_0x8ee4('0x54')](_0x2fb2f6,{'transaction':_0x3be986})[_0x8ee4('0x15')](function(){return BPromise[_0x8ee4('0x5b')](_0x3877f1,function(_0x20398a){return db[_0x8ee4('0x3c')][_0x8ee4('0x5c')]({'where':{'UserId':_0x20398a['id'],'ChatQueueId':_0x5cb433[_0x8ee4('0x28')]['id']},'transaction':_0x3be986});});})['then'](function(){_0x3877f1[_0x8ee4('0x5d')](function(_0x430b45){socket[_0x8ee4('0x5e')](_0x8ee4('0x5f'),{'UserId':_0x430b45['id'],'ChatQueueId':_0x467515['id']});});});});});}})[_0x8ee4('0x15')](respondWithStatusCode(_0x59798e,null))[_0x8ee4('0x26')](handleError(_0x59798e,null));};exports[_0x8ee4('0x60')]=function(_0x1ba07e,_0x4fa86d){return db[_0x8ee4('0x53')][_0x8ee4('0x25')]({'where':{'id':_0x1ba07e[_0x8ee4('0x24')]['ids']},'attributes':['id'],'include':[{'model':db[_0x8ee4('0x49')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x8ee4('0x15')](handleEntityNotFound(_0x4fa86d,null))[_0x8ee4('0x15')](function(_0x236f7d){var _0x32d17d=_[_0x8ee4('0x48')](_0x236f7d,'id');var _0x45ef4d=[];var _0x3fcaeb=[];var _0x47caed=squel[_0x8ee4('0x61')]();_0x47caed[_0x8ee4('0x62')]('tq.TeamId')[_0x8ee4('0x63')]('team_has_chat_queues','tq')[_0x8ee4('0x64')]('user_has_teams','ut',_0x8ee4('0x65'))[_0x8ee4('0x43')](_0x8ee4('0x66'),_0x1ba07e[_0x8ee4('0x28')]['id']);for(var _0xffdf56=0x0;_0xffdf56<_0x236f7d[_0x8ee4('0x2f')];_0xffdf56+=0x1){let _0x239741=_0x236f7d[_0xffdf56];for(var _0x1bc51e=0x0;_0x1bc51e<_0x239741['Agents'][_0x8ee4('0x2f')];_0x1bc51e+=0x1){let _0x9555ae=_0x239741[_0x8ee4('0x59')][_0x1bc51e];var _0x3e0405=_0x47caed[_0x8ee4('0x67')]();_0x3e0405[_0x8ee4('0x43')](_0x8ee4('0x68'),_0x9555ae['id']);_0x3fcaeb[_0x8ee4('0x69')](db[_0x8ee4('0x6a')]['query'](_0x3e0405['toString'](),{'type':db[_0x8ee4('0x6a')][_0x8ee4('0x6b')][_0x8ee4('0x6c')]})[_0x8ee4('0x15')](function(_0x4a3440){if(_0x4a3440[_0x8ee4('0x2f')]===0x1){return _0x9555ae['id'];}else{var _0x5ab59d=_['every'](_[_0x8ee4('0x48')](_0x4a3440,'TeamId'),function(_0x56e39a){return _[_0x8ee4('0x6d')](_0x32d17d,_0x56e39a);});if(_0x5ab59d){return _0x9555ae['id'];}}}));}}return BPromise[_0x8ee4('0x6e')](_0x3fcaeb)['then'](function(_0x28649e){_0x45ef4d=_(_0x45ef4d)[_0x8ee4('0x6f')](_0x28649e)[_0x8ee4('0x70')]()['value']();return db[_0x8ee4('0x22')][_0x8ee4('0x36')]({'where':{'id':_0x1ba07e['params']['id']}})[_0x8ee4('0x15')](function(_0x4433d0){return db[_0x8ee4('0x6a')][_0x8ee4('0x5a')](function(_0xa7aace){return _0x4433d0[_0x8ee4('0x60')](_0x1ba07e[_0x8ee4('0x24')][_0x8ee4('0x55')],{'transaction':_0xa7aace})[_0x8ee4('0x15')](function(){if(!_[_0x8ee4('0x71')](_0x45ef4d)){return _0x4433d0['removeAgents'](_0x45ef4d,{'transaction':_0xa7aace});}})[_0x8ee4('0x15')](function(){_0x45ef4d[_0x8ee4('0x5d')](function(_0x205bf8){socket[_0x8ee4('0x5e')](_0x8ee4('0x72'),{'UserId':_0x205bf8,'ChatQueueId':_0x4433d0['id']});});});});});});})['then'](respondWithStatusCode(_0x4fa86d,null))[_0x8ee4('0x26')](handleError(_0x4fa86d,null));};exports['addAgents']=function(_0x2fd895,_0x403d5f){return db[_0x8ee4('0x22')][_0x8ee4('0x36')]({'where':{'id':_0x2fd895[_0x8ee4('0x28')]['id']}})['then'](handleEntityNotFound(_0x403d5f,null))[_0x8ee4('0x15')](function(_0xe00cd5){if(_0xe00cd5){return _0xe00cd5[_0x8ee4('0x73')](_0x2fd895[_0x8ee4('0x33')][_0x8ee4('0x55')],_['omit'](_0x2fd895[_0x8ee4('0x33')],['ids','id'])||{})[_0x8ee4('0x74')](function(_0x45c8a0){for(var _0x2865cd=0x0;_0x2865cd<_0x2fd895[_0x8ee4('0x33')][_0x8ee4('0x55')][_0x8ee4('0x2f')];_0x2865cd+=0x1){socket['emit']('userChatQueue:save',{'UserId':Number(_0x2fd895['body'][_0x8ee4('0x55')][_0x2865cd]),'ChatQueueId':Number(_0x2fd895[_0x8ee4('0x28')]['id'])});}return _0x45c8a0;});}})['then'](respondWithResult(_0x403d5f,null))[_0x8ee4('0x26')](handleError(_0x403d5f,null));};exports[_0x8ee4('0x75')]=function(_0x166ac0,_0xd8c685){return db[_0x8ee4('0x22')][_0x8ee4('0x36')]({'where':{'id':_0x166ac0['params']['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0xd8c685,null))['then'](function(_0x56bec3){if(_0x56bec3){return _0x56bec3[_0x8ee4('0x75')](_0x166ac0[_0x8ee4('0x24')][_0x8ee4('0x55')])['then'](function(){if(_[_0x8ee4('0x76')](_0x166ac0['query'][_0x8ee4('0x55')])){for(var _0x57fb4b=0x0;_0x57fb4b<_0x166ac0[_0x8ee4('0x24')][_0x8ee4('0x55')][_0x8ee4('0x2f')];_0x57fb4b+=0x1){socket[_0x8ee4('0x5e')](_0x8ee4('0x72'),{'UserId':Number(_0x166ac0[_0x8ee4('0x24')][_0x8ee4('0x55')][_0x57fb4b]),'ChatQueueId':Number(_0x166ac0[_0x8ee4('0x28')]['id'])});}}else{socket[_0x8ee4('0x5e')](_0x8ee4('0x72'),{'UserId':Number(_0x166ac0[_0x8ee4('0x24')][_0x8ee4('0x55')]),'ChatQueueId':Number(_0x166ac0[_0x8ee4('0x28')]['id'])});}});}})[_0x8ee4('0x15')](respondWithStatusCode(_0xd8c685,null))['catch'](handleError(_0xd8c685,null));};exports[_0x8ee4('0x77')]=function(_0x1c6a75,_0x3cbbb4){var _0x115f1e={};var _0x2f5ba2={};var _0x3874fa;var _0x2f39a6;return db[_0x8ee4('0x22')][_0x8ee4('0x3b')]({'where':{'id':_0x1c6a75[_0x8ee4('0x28')]['id']}})[_0x8ee4('0x15')](handleEntityNotFound(_0x3cbbb4,null))['then'](function(_0x47a37c){if(_0x47a37c){_0x3874fa=_0x47a37c;_0x2f5ba2['model']=_[_0x8ee4('0x2a')](db[_0x8ee4('0x49')][_0x8ee4('0x2b')]);_0x2f5ba2[_0x8ee4('0x24')]=_['keys'](_0x1c6a75[_0x8ee4('0x24')]);_0x2f5ba2[_0x8ee4('0x2c')]=_['intersection'](_0x2f5ba2[_0x8ee4('0x29')],_0x2f5ba2[_0x8ee4('0x24')]);_0x115f1e[_0x8ee4('0x2d')]=_['intersection'](_0x2f5ba2[_0x8ee4('0x29')],qs[_0x8ee4('0x2e')](_0x1c6a75['query'][_0x8ee4('0x2e')]));_0x115f1e[_0x8ee4('0x2d')]=_0x115f1e[_0x8ee4('0x2d')][_0x8ee4('0x2f')]?_0x115f1e[_0x8ee4('0x2d')]:_0x2f5ba2[_0x8ee4('0x29')];_0x115f1e[_0x8ee4('0x41')]=qs[_0x8ee4('0x42')](_0x1c6a75[_0x8ee4('0x24')][_0x8ee4('0x42')]);_0x115f1e[_0x8ee4('0x43')]=qs['filters'](_[_0x8ee4('0x44')](_0x1c6a75[_0x8ee4('0x24')],_0x2f5ba2[_0x8ee4('0x2c')]));if(_0x1c6a75[_0x8ee4('0x24')]['filter']){_0x115f1e[_0x8ee4('0x43')]=_['merge'](_0x115f1e[_0x8ee4('0x43')],{'$or':_[_0x8ee4('0x48')](_0x115f1e[_0x8ee4('0x2d')],function(_0x25dd67){var _0x48304e={};_0x48304e[_0x25dd67]={'$like':'%'+_0x1c6a75['query'][_0x8ee4('0x46')]+'%'};return _0x48304e;})});}_0x115f1e=_['merge']({},_0x115f1e,_0x1c6a75[_0x8ee4('0x31')]);return _0x3874fa['getAgents'](_0x115f1e);}})[_0x8ee4('0x15')](function(_0x3ca996){if(_0x3ca996){_0x2f39a6=_0x3ca996[_0x8ee4('0x2f')];if(!_0x1c6a75[_0x8ee4('0x24')][_0x8ee4('0x3e')](_0x8ee4('0x3f'))){_0x115f1e[_0x8ee4('0x40')]=qs[_0x8ee4('0x40')](_0x1c6a75[_0x8ee4('0x24')]['limit']);_0x115f1e[_0x8ee4('0xf')]=qs['offset'](_0x1c6a75[_0x8ee4('0x24')][_0x8ee4('0xf')]);}return _0x3874fa[_0x8ee4('0x77')](_0x115f1e);}})[_0x8ee4('0x15')](function(_0x9fd9e5){if(_0x9fd9e5){return _0x9fd9e5?{'count':_0x2f39a6,'rows':_0x9fd9e5}:null;}})[_0x8ee4('0x15')](respondWithResult(_0x3cbbb4,null))[_0x8ee4('0x26')](handleError(_0x3cbbb4,null));};