14e0bef8c475066842152d62f719fd7c1fa1f11d
[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 _0xe269=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','find','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','nolimit','sort','where','ChatQueueId','filter','findAll','User','findAndCountAll','UserId','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','order','pick','merge','addTeams','ids','Agents','online','voicePause','interface','flatMap','sequelize','each','findOrCreate','forEach','removeTeams','select','from','team_has_chat_queues','join','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','union','compact','transaction','isEmpty','removeAgents','emit','userChatQueue:remove','addAgents','spread','userChatQueue:save','getAgents','lodash','squel','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','sendStatus','status','json','offset','undefined','count','limit','Content-Range','then','destroy','get','ChatQueues','error','stack','name','send','index','map','ChatQueue','rawAttributes','type','key','include','query','rows','show','model','keys','filters','intersection','fields','attributes','length','includeAll','options','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource'];(function(_0x458109,_0x29baca){var _0xfd5535=function(_0x1369dd){while(--_0x1369dd){_0x458109['push'](_0x458109['shift']());}};_0xfd5535(++_0x29baca);}(_0xe269,0x133));var _0x9e26=function(_0x4bd89c,_0xe5c04){_0x4bd89c=_0x4bd89c-0x0;var _0x49d0de=_0xe269[_0x4bd89c];return _0x49d0de;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0x9e26('0x0'));var squel=require(_0x9e26('0x1'));var Redis=require(_0x9e26('0x2'));var qs=require(_0x9e26('0x3'));var logger=require('../../config/logger')(_0x9e26('0x4'));var config=require(_0x9e26('0x5'));var db=require(_0x9e26('0x6'))['db'];config['redis']=_[_0x9e26('0x7')](config[_0x9e26('0x8')],{'host':_0x9e26('0x9'),'port':0x18eb});var socket=require(_0x9e26('0xa'))(new Redis(config[_0x9e26('0x8')]));require(_0x9e26('0xb'))['register'](socket);function respondWithStatusCode(_0x26b1a5,_0x23cf83){_0x23cf83=_0x23cf83||0xcc;return function(_0x19ad8b){if(_0x19ad8b){return _0x26b1a5[_0x9e26('0xc')](_0x23cf83);}return _0x26b1a5[_0x9e26('0xd')](_0x23cf83)['end']();};}function respondWithResult(_0x203c91,_0x13f0f5){_0x13f0f5=_0x13f0f5||0xc8;return function(_0xac4d3d){if(_0xac4d3d){return _0x203c91['status'](_0x13f0f5)[_0x9e26('0xe')](_0xac4d3d);}};}function respondWithFilteredResult(_0x48db13,_0x1b561c){return function(_0x4b96c3){if(_0x4b96c3){var _0x3bbd36=typeof _0x1b561c[_0x9e26('0xf')]===_0x9e26('0x10')&&typeof _0x1b561c['limit']===_0x9e26('0x10');var _0x3413b0=_0x4b96c3[_0x9e26('0x11')];var _0x1aa177=_0x3bbd36?0x0:_0x1b561c[_0x9e26('0xf')];var _0x446dd9=_0x3bbd36?_0x4b96c3['count']:_0x1b561c[_0x9e26('0xf')]+_0x1b561c[_0x9e26('0x12')];var _0xf249c7;if(_0x446dd9>=_0x3413b0){_0x446dd9=_0x3413b0;_0xf249c7=0xc8;}else{_0xf249c7=0xce;}_0x48db13['status'](_0xf249c7);return _0x48db13['set'](_0x9e26('0x13'),_0x1aa177+'-'+_0x446dd9+'/'+_0x3413b0)[_0x9e26('0xe')](_0x4b96c3);}return null;};}function saveUpdates(_0x5ab4f9){return function(_0x488e9e){if(_0x488e9e){return _0x488e9e['update'](_0x5ab4f9)[_0x9e26('0x14')](function(_0x4f56d8){return _0x4f56d8;});}return null;};}function removeEntity(_0x1c3906){return function(_0x5b9318){if(_0x5b9318){return _0x5b9318[_0x9e26('0x15')]()[_0x9e26('0x14')](function(){var _0x380ee7=_0x5b9318[_0x9e26('0x16')]({'plain':!![]});var _0x5e6be1=_0x9e26('0x17');return db['UserProfileResource'][_0x9e26('0x15')]({'where':{'type':_0x5e6be1,'resourceId':_0x380ee7['id']}})['then'](function(){return _0x5b9318;});})[_0x9e26('0x14')](function(){_0x1c3906[_0x9e26('0xd')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2b0f48){return function(_0x506997){if(!_0x506997){_0x2b0f48[_0x9e26('0xc')](0x194);}return _0x506997;};}function handleError(_0x1ffce6,_0x48eec4){_0x48eec4=_0x48eec4||0x1f4;return function(_0x52aca1){logger[_0x9e26('0x18')](_0x52aca1[_0x9e26('0x19')]);if(_0x52aca1[_0x9e26('0x1a')]){delete _0x52aca1[_0x9e26('0x1a')];}_0x1ffce6['status'](_0x48eec4)[_0x9e26('0x1b')](_0x52aca1);};}exports[_0x9e26('0x1c')]=function(_0x447ee9,_0x3c1eea){var _0x235136={};var _0x387816={'count':0x0,'rows':[]};var _0x31c03f=_[_0x9e26('0x1d')](db[_0x9e26('0x1e')][_0x9e26('0x1f')],function(_0x312152){return{'name':_0x312152['fieldName'],'type':_0x312152[_0x9e26('0x20')][_0x9e26('0x21')]};});_0x235136=qs['getOptions'](_0x31c03f,_0x447ee9);var _0x1aa678={'where':_0x235136['where']};return db[_0x9e26('0x1e')][_0x9e26('0x11')](_0x1aa678)[_0x9e26('0x14')](function(_0x1d95c7){_0x387816[_0x9e26('0x11')]=_0x1d95c7;_0x235136[_0x9e26('0x22')]=qs[_0x9e26('0x22')](_0x447ee9[_0x9e26('0x23')]);return db[_0x9e26('0x1e')]['findAll'](_0x235136);})['then'](function(_0x5f306c){_0x387816[_0x9e26('0x24')]=_0x5f306c;return _0x387816;})[_0x9e26('0x14')](respondWithFilteredResult(_0x3c1eea,_0x235136))['catch'](handleError(_0x3c1eea,null));};exports[_0x9e26('0x25')]=function(_0x3028ef,_0x10dc9b){var _0x2d0df2={'raw':!![],'where':{'id':_0x3028ef['params']['id']}},_0x128aa2={};_0x128aa2[_0x9e26('0x26')]=_['keys'](db[_0x9e26('0x1e')][_0x9e26('0x1f')]);_0x128aa2[_0x9e26('0x23')]=_[_0x9e26('0x27')](_0x3028ef[_0x9e26('0x23')]);_0x128aa2[_0x9e26('0x28')]=_[_0x9e26('0x29')](_0x128aa2['model'],_0x128aa2['query']);_0x2d0df2['attributes']=_['intersection'](_0x128aa2[_0x9e26('0x26')],qs[_0x9e26('0x2a')](_0x3028ef[_0x9e26('0x23')]['fields']));_0x2d0df2[_0x9e26('0x2b')]=_0x2d0df2[_0x9e26('0x2b')][_0x9e26('0x2c')]?_0x2d0df2['attributes']:_0x128aa2[_0x9e26('0x26')];if(_0x3028ef[_0x9e26('0x23')][_0x9e26('0x2d')]){_0x2d0df2[_0x9e26('0x22')]=[{'all':!![]}];}_0x2d0df2=_['merge']({},_0x2d0df2,_0x3028ef[_0x9e26('0x2e')]);return db[_0x9e26('0x1e')]['find'](_0x2d0df2)[_0x9e26('0x14')](handleEntityNotFound(_0x10dc9b,null))[_0x9e26('0x14')](respondWithResult(_0x10dc9b,null))[_0x9e26('0x2f')](handleError(_0x10dc9b,null));};exports[_0x9e26('0x30')]=function(_0x12c244,_0x397cf7){return db[_0x9e26('0x1e')][_0x9e26('0x30')](_0x12c244[_0x9e26('0x31')],{})['then'](function(_0x499f26){var _0x1efe4f=_0x12c244[_0x9e26('0x32')][_0x9e26('0x16')]({'plain':!![]});if(!_0x1efe4f)throw new Error(_0x9e26('0x33'));if(_0x1efe4f[_0x9e26('0x34')]===_0x9e26('0x32')){var _0x499690=_0x499f26[_0x9e26('0x16')]({'plain':!![]});var _0x4fad27=_0x9e26('0x17');return db[_0x9e26('0x35')]['find']({'where':{'name':_0x4fad27,'userProfileId':_0x1efe4f[_0x9e26('0x36')]},'raw':!![]})[_0x9e26('0x14')](function(_0x1aaf89){if(_0x1aaf89&&_0x1aaf89['autoAssociation']===0x0){return db[_0x9e26('0x37')][_0x9e26('0x30')]({'name':_0x499690[_0x9e26('0x1a')],'resourceId':_0x499690['id'],'type':_0x1aaf89['name'],'sectionId':_0x1aaf89['id']},{})[_0x9e26('0x14')](function(){return _0x499f26;});}else{return _0x499f26;}})[_0x9e26('0x2f')](function(_0x453f88){logger['error'](_0x9e26('0x38'),_0x453f88);throw _0x453f88;});}return _0x499f26;})[_0x9e26('0x14')](respondWithResult(_0x397cf7,0xc9))[_0x9e26('0x2f')](handleError(_0x397cf7,null));};exports[_0x9e26('0x39')]=function(_0x3777cc,_0xba0c0b){if(_0x3777cc['body']['id']){delete _0x3777cc['body']['id'];}return db[_0x9e26('0x1e')]['find']({'where':{'id':_0x3777cc[_0x9e26('0x3a')]['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0xba0c0b,null))[_0x9e26('0x14')](saveUpdates(_0x3777cc[_0x9e26('0x31')],null))['then'](respondWithResult(_0xba0c0b,null))[_0x9e26('0x2f')](handleError(_0xba0c0b,null));};exports[_0x9e26('0x15')]=function(_0x162a6a,_0x1a3ec1){return db[_0x9e26('0x1e')][_0x9e26('0x3b')]({'where':{'id':_0x162a6a[_0x9e26('0x3a')]['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x1a3ec1,null))[_0x9e26('0x14')](removeEntity(_0x1a3ec1,null))[_0x9e26('0x2f')](handleError(_0x1a3ec1,null));};exports['describe']=function(_0x192354,_0x403719){return db[_0x9e26('0x1e')][_0x9e26('0x3c')]()[_0x9e26('0x14')](respondWithResult(_0x403719,null))[_0x9e26('0x2f')](handleError(_0x403719,null));};exports[_0x9e26('0x3d')]=function(_0xe95a83,_0x164935){var _0x14709c={'raw':!![],'where':{}},_0x382fcc={},_0x42dc48;return db[_0x9e26('0x1e')][_0x9e26('0x3e')]({'where':{'id':_0xe95a83[_0x9e26('0x3a')]['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x164935,null))[_0x9e26('0x14')](function(_0x4e4ae2){if(_0x4e4ae2){_0x42dc48=_0x4e4ae2[_0x9e26('0x16')]({'plain':!![]});_0x382fcc['model']=_['keys'](db[_0x9e26('0x3f')][_0x9e26('0x1f')]);_0x382fcc[_0x9e26('0x23')]=_['keys'](_0xe95a83[_0x9e26('0x23')]);_0x382fcc[_0x9e26('0x28')]=_['intersection'](_0x382fcc['model'],_0x382fcc[_0x9e26('0x23')]);_0x14709c[_0x9e26('0x2b')]=_[_0x9e26('0x29')](_0x382fcc[_0x9e26('0x26')],qs[_0x9e26('0x2a')](_0xe95a83[_0x9e26('0x23')][_0x9e26('0x2a')]));_0x14709c[_0x9e26('0x2b')]=_0x14709c[_0x9e26('0x2b')][_0x9e26('0x2c')]?_0x14709c[_0x9e26('0x2b')]:_0x382fcc[_0x9e26('0x26')];if(!_0xe95a83[_0x9e26('0x23')][_0x9e26('0x40')](_0x9e26('0x41'))){_0x14709c[_0x9e26('0x12')]=qs[_0x9e26('0x12')](_0xe95a83[_0x9e26('0x23')]['limit']);_0x14709c[_0x9e26('0xf')]=qs[_0x9e26('0xf')](_0xe95a83[_0x9e26('0x23')][_0x9e26('0xf')]);}_0x14709c['order']=qs[_0x9e26('0x42')](_0xe95a83[_0x9e26('0x23')][_0x9e26('0x42')]);_0x14709c[_0x9e26('0x43')]=qs['filters'](_['pick'](_0xe95a83[_0x9e26('0x23')],_0x382fcc[_0x9e26('0x28')]));_0x14709c[_0x9e26('0x43')][_0x9e26('0x44')]=_0x4e4ae2['id'];if(_0xe95a83['query'][_0x9e26('0x45')]){_0x14709c['where']=_['merge'](_0x14709c[_0x9e26('0x43')],{'$or':_['map'](_0x14709c[_0x9e26('0x2b')],function(_0x50b377){var _0xc5135a={};_0xc5135a[_0x50b377]={'$like':'%'+_0xe95a83[_0x9e26('0x23')][_0x9e26('0x45')]+'%'};return _0xc5135a;})});}_0x14709c=_['merge']({},_0x14709c,_0xe95a83[_0x9e26('0x2e')]);return db[_0x9e26('0x3f')][_0x9e26('0x46')](_0x14709c);}})[_0x9e26('0x14')](function(_0x12b50c){if(_0x12b50c){return db[_0x9e26('0x47')][_0x9e26('0x48')]({'where':{'id':_['map'](_0x12b50c,_0x9e26('0x49')),'role':'agent'},'attributes':['id',_0x9e26('0x1a'),_0x9e26('0x4a'),_0x9e26('0x4b'),_0x9e26('0x4c')]});}})[_0x9e26('0x14')](function(_0x2d1436){if(_0x2d1436){return{'count':_0x2d1436[_0x9e26('0x11')],'rows':_[_0x9e26('0x1d')](_0x2d1436[_0x9e26('0x24')],function(_0x4827b6){return{'membername':_0x4827b6[_0x9e26('0x1a')],'UserId':_0x4827b6['id'],'queue_name':_0x42dc48['name'],'ChatQueueId':_0x42dc48['id'],'interface':util[_0x9e26('0x4d')](_0x9e26('0x4e'),_0x9e26('0x4f'),_0x4827b6[_0x9e26('0x1a')]),'penalty':0x0,'paused':_0x4827b6[_0x9e26('0x4a')],'createdAt':_0x4827b6[_0x9e26('0x4c')],'updatedAt':_0x4827b6['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x9e26('0x14')](respondWithFilteredResult(_0x164935,_0x14709c))[_0x9e26('0x2f')](handleError(_0x164935,null));};exports[_0x9e26('0x50')]=function(_0x4083a1,_0x55b3ea){var _0x8003b9={};var _0x16b1f5={};var _0x589fdc;var _0xe43f4c;return db[_0x9e26('0x1e')][_0x9e26('0x3e')]({'where':{'id':_0x4083a1['params']['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x55b3ea,null))[_0x9e26('0x14')](function(_0x25c5ab){if(_0x25c5ab){_0x589fdc=_0x25c5ab;_0x16b1f5[_0x9e26('0x26')]=_[_0x9e26('0x27')](db[_0x9e26('0x51')][_0x9e26('0x1f')]);_0x16b1f5[_0x9e26('0x23')]=_[_0x9e26('0x27')](_0x4083a1[_0x9e26('0x23')]);_0x16b1f5[_0x9e26('0x28')]=_[_0x9e26('0x29')](_0x16b1f5[_0x9e26('0x26')],_0x16b1f5['query']);_0x8003b9[_0x9e26('0x2b')]=_['intersection'](_0x16b1f5['model'],qs[_0x9e26('0x2a')](_0x4083a1[_0x9e26('0x23')]['fields']));_0x8003b9[_0x9e26('0x2b')]=_0x8003b9[_0x9e26('0x2b')][_0x9e26('0x2c')]?_0x8003b9['attributes']:_0x16b1f5[_0x9e26('0x26')];_0x8003b9[_0x9e26('0x52')]=qs[_0x9e26('0x42')](_0x4083a1['query'][_0x9e26('0x42')]);_0x8003b9[_0x9e26('0x43')]=qs['filters'](_[_0x9e26('0x53')](_0x4083a1[_0x9e26('0x23')],_0x16b1f5[_0x9e26('0x28')]));if(_0x4083a1['query'][_0x9e26('0x45')]){_0x8003b9['where']=_[_0x9e26('0x54')](_0x8003b9['where'],{'$or':_[_0x9e26('0x1d')](_0x8003b9[_0x9e26('0x2b')],function(_0x4db284){var _0x42a338={};_0x42a338[_0x4db284]={'$like':'%'+_0x4083a1[_0x9e26('0x23')][_0x9e26('0x45')]+'%'};return _0x42a338;})});}_0x8003b9=_[_0x9e26('0x54')]({},_0x8003b9,_0x4083a1[_0x9e26('0x2e')]);return _0x589fdc['getTeams'](_0x8003b9);}})[_0x9e26('0x14')](function(_0x5e0dfc){if(_0x5e0dfc){_0xe43f4c=_0x5e0dfc[_0x9e26('0x2c')];if(!_0x4083a1[_0x9e26('0x23')]['hasOwnProperty'](_0x9e26('0x41'))){_0x8003b9['limit']=qs[_0x9e26('0x12')](_0x4083a1[_0x9e26('0x23')]['limit']);_0x8003b9[_0x9e26('0xf')]=qs[_0x9e26('0xf')](_0x4083a1[_0x9e26('0x23')]['offset']);}return _0x589fdc[_0x9e26('0x50')](_0x8003b9);}})['then'](function(_0x52bf2c){if(_0x52bf2c){return _0x52bf2c?{'count':_0xe43f4c,'rows':_0x52bf2c}:null;}})['then'](respondWithResult(_0x55b3ea,null))[_0x9e26('0x2f')](handleError(_0x55b3ea,null));};exports[_0x9e26('0x55')]=function(_0x3296a1,_0x28a470){var _0x471605=_0x3296a1[_0x9e26('0x31')][_0x9e26('0x56')];return db['Team'][_0x9e26('0x46')]({'where':{'id':_0x471605},'attributes':['id'],'include':[{'model':db['User'],'as':_0x9e26('0x57'),'attributes':['id',_0x9e26('0x1a'),_0x9e26('0x58'),_0x9e26('0x59'),_0x9e26('0x5a')],'raw':!![]}]})[_0x9e26('0x14')](function(_0x31b13f){if(_0x31b13f){var _0x1ee360=_[_0x9e26('0x5b')](_0x31b13f,function(_0x1be527){var _0x2379e2=_0x1be527[_0x9e26('0x16')]({'plain':!![]});return _0x2379e2[_0x9e26('0x57')];});return db['ChatQueue'][_0x9e26('0x3b')]({'where':{'id':_0x3296a1['params']['id']}})['then'](function(_0x24a62e){return db[_0x9e26('0x5c')]['transaction'](function(_0x806e10){return _0x24a62e[_0x9e26('0x55')](_0x471605,{'transaction':_0x806e10})[_0x9e26('0x14')](function(){return BPromise[_0x9e26('0x5d')](_0x1ee360,function(_0x3166d1){return db[_0x9e26('0x3f')][_0x9e26('0x5e')]({'where':{'UserId':_0x3166d1['id'],'ChatQueueId':_0x3296a1[_0x9e26('0x3a')]['id']},'transaction':_0x806e10});});})[_0x9e26('0x14')](function(){_0x1ee360[_0x9e26('0x5f')](function(_0x4a3c3e){socket['emit']('userChatQueue:save',{'UserId':_0x4a3c3e['id'],'ChatQueueId':_0x24a62e['id']});});});});});}})[_0x9e26('0x14')](respondWithStatusCode(_0x28a470,null))['catch'](handleError(_0x28a470,null));};exports[_0x9e26('0x60')]=function(_0x1cb2a6,_0x49d87a){return db['Team'][_0x9e26('0x46')]({'where':{'id':_0x1cb2a6[_0x9e26('0x23')][_0x9e26('0x56')]},'attributes':['id'],'include':[{'model':db[_0x9e26('0x47')],'as':_0x9e26('0x57'),'attributes':['id'],'raw':!![]}]})[_0x9e26('0x14')](handleEntityNotFound(_0x49d87a,null))[_0x9e26('0x14')](function(_0x5acfd8){var _0x302b58=_['map'](_0x5acfd8,'id');var _0x4780b9=[];var _0x4e8fad=[];var _0x310ffc=squel[_0x9e26('0x61')]();_0x310ffc['field']('tq.TeamId')[_0x9e26('0x62')](_0x9e26('0x63'),'tq')[_0x9e26('0x64')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x9e26('0x43')](_0x9e26('0x65'),_0x1cb2a6[_0x9e26('0x3a')]['id']);for(var _0x57c135=0x0;_0x57c135<_0x5acfd8[_0x9e26('0x2c')];_0x57c135+=0x1){let _0x9d0cb6=_0x5acfd8[_0x57c135];for(var _0x17961a=0x0;_0x17961a<_0x9d0cb6[_0x9e26('0x57')][_0x9e26('0x2c')];_0x17961a+=0x1){let _0x5e6dc2=_0x9d0cb6[_0x9e26('0x57')][_0x17961a];var _0x20b309=_0x310ffc[_0x9e26('0x66')]();_0x20b309['where'](_0x9e26('0x67'),_0x5e6dc2['id']);_0x4e8fad[_0x9e26('0x68')](db[_0x9e26('0x5c')]['query'](_0x20b309[_0x9e26('0x69')](),{'type':db[_0x9e26('0x5c')][_0x9e26('0x6a')][_0x9e26('0x6b')]})[_0x9e26('0x14')](function(_0x59eae0){if(_0x59eae0['length']===0x1){return _0x5e6dc2['id'];}else{var _0x53d73c=_[_0x9e26('0x6c')](_[_0x9e26('0x1d')](_0x59eae0,'TeamId'),function(_0x2246f0){return _[_0x9e26('0x6d')](_0x302b58,_0x2246f0);});if(_0x53d73c){return _0x5e6dc2['id'];}}}));}}return BPromise['all'](_0x4e8fad)[_0x9e26('0x14')](function(_0x57879d){_0x4780b9=_(_0x4780b9)[_0x9e26('0x6e')](_0x57879d)[_0x9e26('0x6f')]()['value']();return db['ChatQueue']['find']({'where':{'id':_0x1cb2a6[_0x9e26('0x3a')]['id']}})[_0x9e26('0x14')](function(_0x47850e){return db[_0x9e26('0x5c')][_0x9e26('0x70')](function(_0x1c0e4d){return _0x47850e[_0x9e26('0x60')](_0x1cb2a6['query'][_0x9e26('0x56')],{'transaction':_0x1c0e4d})[_0x9e26('0x14')](function(){if(!_[_0x9e26('0x71')](_0x4780b9)){return _0x47850e[_0x9e26('0x72')](_0x4780b9,{'transaction':_0x1c0e4d});}})[_0x9e26('0x14')](function(){_0x4780b9[_0x9e26('0x5f')](function(_0x42a620){socket[_0x9e26('0x73')](_0x9e26('0x74'),{'UserId':_0x42a620,'ChatQueueId':_0x47850e['id']});});});});});});})[_0x9e26('0x14')](respondWithStatusCode(_0x49d87a,null))[_0x9e26('0x2f')](handleError(_0x49d87a,null));};exports['addAgents']=function(_0x8d7ef8,_0x3b602c){return db['ChatQueue'][_0x9e26('0x3b')]({'where':{'id':_0x8d7ef8['params']['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x3b602c,null))[_0x9e26('0x14')](function(_0x433c6a){if(_0x433c6a){return _0x433c6a[_0x9e26('0x75')](_0x8d7ef8[_0x9e26('0x31')][_0x9e26('0x56')],_['omit'](_0x8d7ef8[_0x9e26('0x31')],['ids','id'])||{})[_0x9e26('0x76')](function(_0x501098){for(var _0xcd56d0=0x0;_0xcd56d0<_0x8d7ef8[_0x9e26('0x31')][_0x9e26('0x56')][_0x9e26('0x2c')];_0xcd56d0+=0x1){socket[_0x9e26('0x73')](_0x9e26('0x77'),{'UserId':Number(_0x8d7ef8[_0x9e26('0x31')][_0x9e26('0x56')][_0xcd56d0]),'ChatQueueId':Number(_0x8d7ef8['params']['id'])});}return _0x501098;});}})[_0x9e26('0x14')](respondWithResult(_0x3b602c,null))[_0x9e26('0x2f')](handleError(_0x3b602c,null));};exports[_0x9e26('0x72')]=function(_0x417b5f,_0x21a08d){return db[_0x9e26('0x1e')][_0x9e26('0x3b')]({'where':{'id':_0x417b5f[_0x9e26('0x3a')]['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x21a08d,null))['then'](function(_0xddeaa5){if(_0xddeaa5){return _0xddeaa5[_0x9e26('0x72')](_0x417b5f[_0x9e26('0x23')][_0x9e26('0x56')])[_0x9e26('0x14')](function(){if(_['isArray'](_0x417b5f[_0x9e26('0x23')][_0x9e26('0x56')])){for(var _0x39219d=0x0;_0x39219d<_0x417b5f[_0x9e26('0x23')]['ids']['length'];_0x39219d+=0x1){socket[_0x9e26('0x73')]('userChatQueue:remove',{'UserId':Number(_0x417b5f[_0x9e26('0x23')][_0x9e26('0x56')][_0x39219d]),'ChatQueueId':Number(_0x417b5f[_0x9e26('0x3a')]['id'])});}}else{socket[_0x9e26('0x73')](_0x9e26('0x74'),{'UserId':Number(_0x417b5f[_0x9e26('0x23')][_0x9e26('0x56')]),'ChatQueueId':Number(_0x417b5f[_0x9e26('0x3a')]['id'])});}});}})['then'](respondWithStatusCode(_0x21a08d,null))[_0x9e26('0x2f')](handleError(_0x21a08d,null));};exports[_0x9e26('0x78')]=function(_0x5f47ed,_0x4eedea){var _0xf9b462={};var _0x40d463={};var _0x5c77f9;var _0x2c88b5;return db[_0x9e26('0x1e')][_0x9e26('0x3e')]({'where':{'id':_0x5f47ed['params']['id']}})[_0x9e26('0x14')](handleEntityNotFound(_0x4eedea,null))['then'](function(_0x9d0d4b){if(_0x9d0d4b){_0x5c77f9=_0x9d0d4b;_0x40d463[_0x9e26('0x26')]=_[_0x9e26('0x27')](db['User'][_0x9e26('0x1f')]);_0x40d463[_0x9e26('0x23')]=_[_0x9e26('0x27')](_0x5f47ed['query']);_0x40d463[_0x9e26('0x28')]=_[_0x9e26('0x29')](_0x40d463[_0x9e26('0x26')],_0x40d463[_0x9e26('0x23')]);_0xf9b462[_0x9e26('0x2b')]=_[_0x9e26('0x29')](_0x40d463[_0x9e26('0x26')],qs['fields'](_0x5f47ed['query'][_0x9e26('0x2a')]));_0xf9b462[_0x9e26('0x2b')]=_0xf9b462['attributes'][_0x9e26('0x2c')]?_0xf9b462[_0x9e26('0x2b')]:_0x40d463[_0x9e26('0x26')];_0xf9b462[_0x9e26('0x52')]=qs[_0x9e26('0x42')](_0x5f47ed[_0x9e26('0x23')][_0x9e26('0x42')]);_0xf9b462[_0x9e26('0x43')]=qs[_0x9e26('0x28')](_['pick'](_0x5f47ed['query'],_0x40d463['filters']));if(_0x5f47ed[_0x9e26('0x23')][_0x9e26('0x45')]){_0xf9b462[_0x9e26('0x43')]=_[_0x9e26('0x54')](_0xf9b462[_0x9e26('0x43')],{'$or':_[_0x9e26('0x1d')](_0xf9b462[_0x9e26('0x2b')],function(_0x7a9530){var _0x288ae7={};_0x288ae7[_0x7a9530]={'$like':'%'+_0x5f47ed['query'][_0x9e26('0x45')]+'%'};return _0x288ae7;})});}_0xf9b462=_[_0x9e26('0x54')]({},_0xf9b462,_0x5f47ed[_0x9e26('0x2e')]);return _0x5c77f9[_0x9e26('0x78')](_0xf9b462);}})[_0x9e26('0x14')](function(_0xc5b558){if(_0xc5b558){_0x2c88b5=_0xc5b558[_0x9e26('0x2c')];if(!_0x5f47ed[_0x9e26('0x23')]['hasOwnProperty'](_0x9e26('0x41'))){_0xf9b462[_0x9e26('0x12')]=qs['limit'](_0x5f47ed[_0x9e26('0x23')][_0x9e26('0x12')]);_0xf9b462['offset']=qs[_0x9e26('0xf')](_0x5f47ed[_0x9e26('0x23')]['offset']);}return _0x5c77f9[_0x9e26('0x78')](_0xf9b462);}})[_0x9e26('0x14')](function(_0x3ed898){if(_0x3ed898){return _0x3ed898?{'count':_0x2c88b5,'rows':_0x3ed898}:null;}})[_0x9e26('0x14')](respondWithResult(_0x4eedea,null))[_0x9e26('0x2f')](handleError(_0x4eedea,null));};