4c55681f77bd655b20990cbdcfbef6be42a1e5d7
[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 _0xce09=['set','Content-Range','update','then','get','ChatQueues','UserProfileResource','destroy','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','include','query','rows','catch','show','model','filters','intersection','fields','attributes','length','includeAll','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','keys','UserChatQueue','nolimit','order','sort','where','filter','merge','findAll','User','findAndCountAll','UserId','agent','chatPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','pick','hasOwnProperty','addTeams','Team','Agents','voicePause','interface','sequelize','each','findOrCreate','forEach','emit','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','transaction','removeTeams','ids','isEmpty','addAgents','omit','spread','userChatQueue:save','removeAgents','isArray','userChatQueue:remove','getAgents','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','end','json','offset','undefined','count','limit'];(function(_0x246e0a,_0x255d5b){var _0x23ade5=function(_0x1c625d){while(--_0x1c625d){_0x246e0a['push'](_0x246e0a['shift']());}};_0x23ade5(++_0x255d5b);}(_0xce09,0x6b));var _0x9ce0=function(_0x2eccfa,_0xa4cf8d){_0x2eccfa=_0x2eccfa-0x0;var _0x432742=_0xce09[_0x2eccfa];return _0x432742;};'use strict';var BPromise=require('bluebird');var util=require('util');var _=require(_0x9ce0('0x0'));var squel=require('squel');var Redis=require(_0x9ce0('0x1'));var qs=require(_0x9ce0('0x2'));var logger=require('../../config/logger')(_0x9ce0('0x3'));var config=require(_0x9ce0('0x4'));var db=require(_0x9ce0('0x5'))['db'];config[_0x9ce0('0x6')]=_[_0x9ce0('0x7')](config[_0x9ce0('0x6')],{'host':_0x9ce0('0x8'),'port':0x18eb});var socket=require(_0x9ce0('0x9'))(new Redis(config[_0x9ce0('0x6')]));require(_0x9ce0('0xa'))[_0x9ce0('0xb')](socket);function respondWithStatusCode(_0x27e62a,_0x727ac5){_0x727ac5=_0x727ac5||0xcc;return function(_0x363685){if(_0x363685){return _0x27e62a['sendStatus'](_0x727ac5);}return _0x27e62a['status'](_0x727ac5)[_0x9ce0('0xc')]();};}function respondWithResult(_0xb20ab7,_0x50f601){_0x50f601=_0x50f601||0xc8;return function(_0x471675){if(_0x471675){return _0xb20ab7['status'](_0x50f601)[_0x9ce0('0xd')](_0x471675);}};}function respondWithFilteredResult(_0x20a75a,_0x47b2e6){return function(_0x28a27e){if(_0x28a27e){var _0x57cfc3=typeof _0x47b2e6[_0x9ce0('0xe')]==='undefined'&&typeof _0x47b2e6['limit']===_0x9ce0('0xf');var _0x4a1720=_0x28a27e[_0x9ce0('0x10')];var _0x232021=_0x57cfc3?0x0:_0x47b2e6['offset'];var _0x5b0224=_0x57cfc3?_0x28a27e[_0x9ce0('0x10')]:_0x47b2e6[_0x9ce0('0xe')]+_0x47b2e6[_0x9ce0('0x11')];var _0x58aa63;if(_0x5b0224>=_0x4a1720){_0x5b0224=_0x4a1720;_0x58aa63=0xc8;}else{_0x58aa63=0xce;}_0x20a75a['status'](_0x58aa63);return _0x20a75a[_0x9ce0('0x12')](_0x9ce0('0x13'),_0x232021+'-'+_0x5b0224+'/'+_0x4a1720)[_0x9ce0('0xd')](_0x28a27e);}return null;};}function saveUpdates(_0x7b6da3){return function(_0x5e32d7){if(_0x5e32d7){return _0x5e32d7[_0x9ce0('0x14')](_0x7b6da3)['then'](function(_0x23857f){return _0x23857f;});}return null;};}function removeEntity(_0x584b7f){return function(_0x57fc34){if(_0x57fc34){return _0x57fc34['destroy']()[_0x9ce0('0x15')](function(){var _0x321f7e=_0x57fc34[_0x9ce0('0x16')]({'plain':!![]});var _0x5c97b6=_0x9ce0('0x17');return db[_0x9ce0('0x18')][_0x9ce0('0x19')]({'where':{'type':_0x5c97b6,'resourceId':_0x321f7e['id']}})[_0x9ce0('0x15')](function(){return _0x57fc34;});})['then'](function(){_0x584b7f['status'](0xcc)[_0x9ce0('0xc')]();});}};}function handleEntityNotFound(_0x24206e){return function(_0x4e5414){if(!_0x4e5414){_0x24206e['sendStatus'](0x194);}return _0x4e5414;};}function handleError(_0x4c8e32,_0x202b95){_0x202b95=_0x202b95||0x1f4;return function(_0x2c3967){logger['error'](_0x2c3967['stack']);if(_0x2c3967[_0x9ce0('0x1a')]){delete _0x2c3967[_0x9ce0('0x1a')];}_0x4c8e32['status'](_0x202b95)[_0x9ce0('0x1b')](_0x2c3967);};}exports[_0x9ce0('0x1c')]=function(_0x4b326f,_0x1814b5){var _0x2d7cf0={};var _0x5f5160={'count':0x0,'rows':[]};var _0x4d82e2=_[_0x9ce0('0x1d')](db[_0x9ce0('0x1e')][_0x9ce0('0x1f')],function(_0x3a7724){return{'name':_0x3a7724[_0x9ce0('0x20')],'type':_0x3a7724[_0x9ce0('0x21')][_0x9ce0('0x22')]};});_0x2d7cf0=qs['getOptions'](_0x4d82e2,_0x4b326f);var _0x391b3c={'where':_0x2d7cf0['where']};return db[_0x9ce0('0x1e')][_0x9ce0('0x10')](_0x391b3c)[_0x9ce0('0x15')](function(_0x2931b9){_0x5f5160[_0x9ce0('0x10')]=_0x2931b9;_0x2d7cf0[_0x9ce0('0x23')]=qs[_0x9ce0('0x23')](_0x4b326f[_0x9ce0('0x24')]);return db[_0x9ce0('0x1e')]['findAll'](_0x2d7cf0);})[_0x9ce0('0x15')](function(_0x1731a5){_0x5f5160[_0x9ce0('0x25')]=_0x1731a5;return _0x5f5160;})['then'](respondWithFilteredResult(_0x1814b5,_0x2d7cf0))[_0x9ce0('0x26')](handleError(_0x1814b5,null));};exports[_0x9ce0('0x27')]=function(_0x51c054,_0x5ca8ba){var _0x4e43bf={'raw':!![],'where':{'id':_0x51c054['params']['id']}},_0x3e9dcc={};_0x3e9dcc[_0x9ce0('0x28')]=_['keys'](db[_0x9ce0('0x1e')][_0x9ce0('0x1f')]);_0x3e9dcc[_0x9ce0('0x24')]=_['keys'](_0x51c054['query']);_0x3e9dcc[_0x9ce0('0x29')]=_[_0x9ce0('0x2a')](_0x3e9dcc[_0x9ce0('0x28')],_0x3e9dcc[_0x9ce0('0x24')]);_0x4e43bf['attributes']=_['intersection'](_0x3e9dcc[_0x9ce0('0x28')],qs[_0x9ce0('0x2b')](_0x51c054[_0x9ce0('0x24')][_0x9ce0('0x2b')]));_0x4e43bf[_0x9ce0('0x2c')]=_0x4e43bf[_0x9ce0('0x2c')][_0x9ce0('0x2d')]?_0x4e43bf[_0x9ce0('0x2c')]:_0x3e9dcc[_0x9ce0('0x28')];if(_0x51c054[_0x9ce0('0x24')][_0x9ce0('0x2e')]){_0x4e43bf[_0x9ce0('0x23')]=[{'all':!![]}];}_0x4e43bf=_['merge']({},_0x4e43bf,_0x51c054[_0x9ce0('0x2f')]);return db[_0x9ce0('0x1e')]['find'](_0x4e43bf)[_0x9ce0('0x15')](handleEntityNotFound(_0x5ca8ba,null))[_0x9ce0('0x15')](respondWithResult(_0x5ca8ba,null))[_0x9ce0('0x26')](handleError(_0x5ca8ba,null));};exports[_0x9ce0('0x30')]=function(_0x1ad3f4,_0x46cbd8){return db[_0x9ce0('0x1e')][_0x9ce0('0x30')](_0x1ad3f4[_0x9ce0('0x31')],{})[_0x9ce0('0x15')](function(_0x3913ad){var _0x24f25f=_0x1ad3f4[_0x9ce0('0x32')][_0x9ce0('0x16')]({'plain':!![]});if(!_0x24f25f)throw new Error(_0x9ce0('0x33'));if(_0x24f25f['role']===_0x9ce0('0x32')){var _0x2ab7f1=_0x3913ad[_0x9ce0('0x16')]({'plain':!![]});var _0x129de3=_0x9ce0('0x17');return db[_0x9ce0('0x34')][_0x9ce0('0x35')]({'where':{'name':_0x129de3,'userProfileId':_0x24f25f[_0x9ce0('0x36')]},'raw':!![]})[_0x9ce0('0x15')](function(_0xc27f8e){if(_0xc27f8e&&_0xc27f8e[_0x9ce0('0x37')]===0x0){return db[_0x9ce0('0x18')][_0x9ce0('0x30')]({'name':_0x2ab7f1['name'],'resourceId':_0x2ab7f1['id'],'type':_0xc27f8e[_0x9ce0('0x1a')],'sectionId':_0xc27f8e['id']},{})[_0x9ce0('0x15')](function(){return _0x3913ad;});}else{return _0x3913ad;}})[_0x9ce0('0x26')](function(_0x3a1b12){logger['error'](_0x9ce0('0x38'),_0x3a1b12);throw _0x3a1b12;});}return _0x3913ad;})['then'](respondWithResult(_0x46cbd8,0xc9))['catch'](handleError(_0x46cbd8,null));};exports[_0x9ce0('0x14')]=function(_0x26d315,_0x3c9804){if(_0x26d315[_0x9ce0('0x31')]['id']){delete _0x26d315['body']['id'];}return db[_0x9ce0('0x1e')][_0x9ce0('0x35')]({'where':{'id':_0x26d315['params']['id']}})[_0x9ce0('0x15')](handleEntityNotFound(_0x3c9804,null))[_0x9ce0('0x15')](saveUpdates(_0x26d315[_0x9ce0('0x31')],null))[_0x9ce0('0x15')](respondWithResult(_0x3c9804,null))[_0x9ce0('0x26')](handleError(_0x3c9804,null));};exports['destroy']=function(_0x46cbda,_0x3f7634){return db[_0x9ce0('0x1e')][_0x9ce0('0x35')]({'where':{'id':_0x46cbda[_0x9ce0('0x39')]['id']}})['then'](handleEntityNotFound(_0x3f7634,null))[_0x9ce0('0x15')](removeEntity(_0x3f7634,null))[_0x9ce0('0x26')](handleError(_0x3f7634,null));};exports[_0x9ce0('0x3a')]=function(_0x5ae08b,_0x51c5c7){return db[_0x9ce0('0x1e')][_0x9ce0('0x3a')]()[_0x9ce0('0x15')](respondWithResult(_0x51c5c7,null))[_0x9ce0('0x26')](handleError(_0x51c5c7,null));};exports[_0x9ce0('0x3b')]=function(_0x68f313,_0x27fbbd){var _0x45a9e0={'raw':!![],'where':{}},_0x5ede1d={},_0x26dcae;return db['ChatQueue'][_0x9ce0('0x3c')]({'where':{'id':_0x68f313[_0x9ce0('0x39')]['id']}})[_0x9ce0('0x15')](handleEntityNotFound(_0x27fbbd,null))['then'](function(_0x27126b){if(_0x27126b){_0x26dcae=_0x27126b[_0x9ce0('0x16')]({'plain':!![]});_0x5ede1d[_0x9ce0('0x28')]=_[_0x9ce0('0x3d')](db[_0x9ce0('0x3e')]['rawAttributes']);_0x5ede1d[_0x9ce0('0x24')]=_[_0x9ce0('0x3d')](_0x68f313['query']);_0x5ede1d[_0x9ce0('0x29')]=_['intersection'](_0x5ede1d[_0x9ce0('0x28')],_0x5ede1d[_0x9ce0('0x24')]);_0x45a9e0[_0x9ce0('0x2c')]=_[_0x9ce0('0x2a')](_0x5ede1d[_0x9ce0('0x28')],qs[_0x9ce0('0x2b')](_0x68f313[_0x9ce0('0x24')]['fields']));_0x45a9e0[_0x9ce0('0x2c')]=_0x45a9e0[_0x9ce0('0x2c')]['length']?_0x45a9e0[_0x9ce0('0x2c')]:_0x5ede1d[_0x9ce0('0x28')];if(!_0x68f313[_0x9ce0('0x24')]['hasOwnProperty'](_0x9ce0('0x3f'))){_0x45a9e0['limit']=qs[_0x9ce0('0x11')](_0x68f313[_0x9ce0('0x24')][_0x9ce0('0x11')]);_0x45a9e0['offset']=qs[_0x9ce0('0xe')](_0x68f313[_0x9ce0('0x24')][_0x9ce0('0xe')]);}_0x45a9e0[_0x9ce0('0x40')]=qs[_0x9ce0('0x41')](_0x68f313[_0x9ce0('0x24')][_0x9ce0('0x41')]);_0x45a9e0[_0x9ce0('0x42')]=qs[_0x9ce0('0x29')](_['pick'](_0x68f313[_0x9ce0('0x24')],_0x5ede1d['filters']));_0x45a9e0[_0x9ce0('0x42')]['ChatQueueId']=_0x27126b['id'];if(_0x68f313[_0x9ce0('0x24')][_0x9ce0('0x43')]){_0x45a9e0['where']=_[_0x9ce0('0x44')](_0x45a9e0[_0x9ce0('0x42')],{'$or':_['map'](_0x45a9e0[_0x9ce0('0x2c')],function(_0x5e372d){var _0x5be79d={};_0x5be79d[_0x5e372d]={'$like':'%'+_0x68f313['query']['filter']+'%'};return _0x5be79d;})});}_0x45a9e0=_['merge']({},_0x45a9e0,_0x68f313[_0x9ce0('0x2f')]);return db[_0x9ce0('0x3e')][_0x9ce0('0x45')](_0x45a9e0);}})['then'](function(_0x36925f){if(_0x36925f){return db[_0x9ce0('0x46')][_0x9ce0('0x47')]({'where':{'id':_[_0x9ce0('0x1d')](_0x36925f,_0x9ce0('0x48')),'role':_0x9ce0('0x49')},'attributes':['id',_0x9ce0('0x1a'),_0x9ce0('0x4a'),'updatedAt',_0x9ce0('0x4b')]});}})[_0x9ce0('0x15')](function(_0xa27c83){if(_0xa27c83){return{'count':_0xa27c83[_0x9ce0('0x10')],'rows':_[_0x9ce0('0x1d')](_0xa27c83['rows'],function(_0x4dc54f){return{'membername':_0x4dc54f[_0x9ce0('0x1a')],'UserId':_0x4dc54f['id'],'queue_name':_0x26dcae[_0x9ce0('0x1a')],'ChatQueueId':_0x26dcae['id'],'interface':util[_0x9ce0('0x4c')](_0x9ce0('0x4d'),_0x9ce0('0x4e'),_0x4dc54f['name']),'penalty':0x0,'paused':_0x4dc54f[_0x9ce0('0x4a')],'createdAt':_0x4dc54f[_0x9ce0('0x4b')],'updatedAt':_0x4dc54f[_0x9ce0('0x4f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9ce0('0x15')](respondWithFilteredResult(_0x27fbbd,_0x45a9e0))['catch'](handleError(_0x27fbbd,null));};exports[_0x9ce0('0x50')]=function(_0x2e7c6d,_0x529774){var _0x4898bd={};var _0x4fe063={};var _0x5548e5;var _0x5aba2d;return db[_0x9ce0('0x1e')][_0x9ce0('0x3c')]({'where':{'id':_0x2e7c6d[_0x9ce0('0x39')]['id']}})['then'](handleEntityNotFound(_0x529774,null))[_0x9ce0('0x15')](function(_0x4b2791){if(_0x4b2791){_0x5548e5=_0x4b2791;_0x4fe063['model']=_[_0x9ce0('0x3d')](db['Team'][_0x9ce0('0x1f')]);_0x4fe063[_0x9ce0('0x24')]=_['keys'](_0x2e7c6d['query']);_0x4fe063[_0x9ce0('0x29')]=_[_0x9ce0('0x2a')](_0x4fe063[_0x9ce0('0x28')],_0x4fe063['query']);_0x4898bd['attributes']=_[_0x9ce0('0x2a')](_0x4fe063[_0x9ce0('0x28')],qs['fields'](_0x2e7c6d['query'][_0x9ce0('0x2b')]));_0x4898bd[_0x9ce0('0x2c')]=_0x4898bd[_0x9ce0('0x2c')][_0x9ce0('0x2d')]?_0x4898bd[_0x9ce0('0x2c')]:_0x4fe063[_0x9ce0('0x28')];_0x4898bd['order']=qs[_0x9ce0('0x41')](_0x2e7c6d[_0x9ce0('0x24')][_0x9ce0('0x41')]);_0x4898bd[_0x9ce0('0x42')]=qs[_0x9ce0('0x29')](_[_0x9ce0('0x51')](_0x2e7c6d[_0x9ce0('0x24')],_0x4fe063[_0x9ce0('0x29')]));if(_0x2e7c6d[_0x9ce0('0x24')][_0x9ce0('0x43')]){_0x4898bd['where']=_['merge'](_0x4898bd['where'],{'$or':_[_0x9ce0('0x1d')](_0x4898bd['attributes'],function(_0x39b215){var _0x3561fe={};_0x3561fe[_0x39b215]={'$like':'%'+_0x2e7c6d[_0x9ce0('0x24')]['filter']+'%'};return _0x3561fe;})});}_0x4898bd=_[_0x9ce0('0x44')]({},_0x4898bd,_0x2e7c6d['options']);return _0x5548e5[_0x9ce0('0x50')](_0x4898bd);}})[_0x9ce0('0x15')](function(_0x38bfd7){if(_0x38bfd7){_0x5aba2d=_0x38bfd7['length'];if(!_0x2e7c6d['query'][_0x9ce0('0x52')]('nolimit')){_0x4898bd[_0x9ce0('0x11')]=qs['limit'](_0x2e7c6d[_0x9ce0('0x24')][_0x9ce0('0x11')]);_0x4898bd['offset']=qs[_0x9ce0('0xe')](_0x2e7c6d[_0x9ce0('0x24')]['offset']);}return _0x5548e5[_0x9ce0('0x50')](_0x4898bd);}})[_0x9ce0('0x15')](function(_0x5bea41){if(_0x5bea41){return _0x5bea41?{'count':_0x5aba2d,'rows':_0x5bea41}:null;}})[_0x9ce0('0x15')](respondWithResult(_0x529774,null))[_0x9ce0('0x26')](handleError(_0x529774,null));};exports[_0x9ce0('0x53')]=function(_0x628a64,_0x3ceb3c){var _0xffc106=_0x628a64['body']['ids'];return db[_0x9ce0('0x54')][_0x9ce0('0x45')]({'where':{'id':_0xffc106},'attributes':['id'],'include':[{'model':db[_0x9ce0('0x46')],'as':_0x9ce0('0x55'),'attributes':['id','name','online',_0x9ce0('0x56'),_0x9ce0('0x57')],'raw':!![]}]})[_0x9ce0('0x15')](function(_0x227fdd){if(_0x227fdd){var _0x15fb8f=_['flatMap'](_0x227fdd,function(_0xe8b89d){var _0x3162e2=_0xe8b89d['get']({'plain':!![]});return _0x3162e2['Agents'];});return db[_0x9ce0('0x1e')][_0x9ce0('0x35')]({'where':{'id':_0x628a64[_0x9ce0('0x39')]['id']}})[_0x9ce0('0x15')](function(_0x3b09f7){return db[_0x9ce0('0x58')]['transaction'](function(_0x875f56){return _0x3b09f7[_0x9ce0('0x53')](_0xffc106,{'transaction':_0x875f56})[_0x9ce0('0x15')](function(){return BPromise[_0x9ce0('0x59')](_0x15fb8f,function(_0x28ced8){return db[_0x9ce0('0x3e')][_0x9ce0('0x5a')]({'where':{'UserId':_0x28ced8['id'],'ChatQueueId':_0x628a64[_0x9ce0('0x39')]['id']},'transaction':_0x875f56});});})[_0x9ce0('0x15')](function(){_0x15fb8f[_0x9ce0('0x5b')](function(_0x29b3d0){socket[_0x9ce0('0x5c')]('userChatQueue:save',{'UserId':_0x29b3d0['id'],'ChatQueueId':_0x3b09f7['id']});});});});});}})[_0x9ce0('0x15')](respondWithStatusCode(_0x3ceb3c,null))[_0x9ce0('0x26')](handleError(_0x3ceb3c,null));};exports['removeTeams']=function(_0x3c2abd,_0x1ab1f2){return db[_0x9ce0('0x54')][_0x9ce0('0x45')]({'where':{'id':_0x3c2abd[_0x9ce0('0x24')]['ids']},'attributes':['id'],'include':[{'model':db[_0x9ce0('0x46')],'as':_0x9ce0('0x55'),'attributes':['id'],'raw':!![]}]})[_0x9ce0('0x15')](handleEntityNotFound(_0x1ab1f2,null))[_0x9ce0('0x15')](function(_0x163480){var _0x4f12ad=_[_0x9ce0('0x1d')](_0x163480,'id');var _0x21d338=[];var _0x4effb1=[];var _0x14a953=squel[_0x9ce0('0x5d')]();_0x14a953[_0x9ce0('0x5e')](_0x9ce0('0x5f'))[_0x9ce0('0x60')](_0x9ce0('0x61'),'tq')[_0x9ce0('0x62')](_0x9ce0('0x63'),'ut',_0x9ce0('0x64'))['where']('ChatQueueId\x20=\x20?',_0x3c2abd[_0x9ce0('0x39')]['id']);for(var _0x2c7fb3=0x0;_0x2c7fb3<_0x163480[_0x9ce0('0x2d')];_0x2c7fb3+=0x1){let _0x1a4956=_0x163480[_0x2c7fb3];for(var _0x600254=0x0;_0x600254<_0x1a4956[_0x9ce0('0x55')][_0x9ce0('0x2d')];_0x600254+=0x1){let _0x51a316=_0x1a4956[_0x9ce0('0x55')][_0x600254];var _0x2c1bc8=_0x14a953[_0x9ce0('0x65')]();_0x2c1bc8[_0x9ce0('0x42')]('ut.UserId\x20=\x20?',_0x51a316['id']);_0x4effb1[_0x9ce0('0x66')](db[_0x9ce0('0x58')][_0x9ce0('0x24')](_0x2c1bc8[_0x9ce0('0x67')](),{'type':db[_0x9ce0('0x58')][_0x9ce0('0x68')][_0x9ce0('0x69')]})[_0x9ce0('0x15')](function(_0x2fbb80){if(_0x2fbb80[_0x9ce0('0x2d')]===0x1){return _0x51a316['id'];}else{var _0x42ffab=_[_0x9ce0('0x6a')](_[_0x9ce0('0x1d')](_0x2fbb80,_0x9ce0('0x6b')),function(_0xf32b1e){return _[_0x9ce0('0x6c')](_0x4f12ad,_0xf32b1e);});if(_0x42ffab){return _0x51a316['id'];}}}));}}return BPromise[_0x9ce0('0x6d')](_0x4effb1)[_0x9ce0('0x15')](function(_0x524df2){_0x21d338=_(_0x21d338)[_0x9ce0('0x6e')](_0x524df2)[_0x9ce0('0x6f')]()[_0x9ce0('0x70')]();return db[_0x9ce0('0x1e')]['find']({'where':{'id':_0x3c2abd[_0x9ce0('0x39')]['id']}})[_0x9ce0('0x15')](function(_0x27e610){return db[_0x9ce0('0x58')][_0x9ce0('0x71')](function(_0x13f3c2){return _0x27e610[_0x9ce0('0x72')](_0x3c2abd[_0x9ce0('0x24')][_0x9ce0('0x73')],{'transaction':_0x13f3c2})['then'](function(){if(!_[_0x9ce0('0x74')](_0x21d338)){return _0x27e610['removeAgents'](_0x21d338,{'transaction':_0x13f3c2});}})[_0x9ce0('0x15')](function(){_0x21d338[_0x9ce0('0x5b')](function(_0x30da21){socket['emit']('userChatQueue:remove',{'UserId':_0x30da21,'ChatQueueId':_0x27e610['id']});});});});});});})[_0x9ce0('0x15')](respondWithStatusCode(_0x1ab1f2,null))['catch'](handleError(_0x1ab1f2,null));};exports[_0x9ce0('0x75')]=function(_0xea8e10,_0x49b8d0){return db[_0x9ce0('0x1e')][_0x9ce0('0x35')]({'where':{'id':_0xea8e10[_0x9ce0('0x39')]['id']}})[_0x9ce0('0x15')](handleEntityNotFound(_0x49b8d0,null))[_0x9ce0('0x15')](function(_0x5a2c33){if(_0x5a2c33){return _0x5a2c33[_0x9ce0('0x75')](_0xea8e10[_0x9ce0('0x31')][_0x9ce0('0x73')],_[_0x9ce0('0x76')](_0xea8e10[_0x9ce0('0x31')],['ids','id'])||{})[_0x9ce0('0x77')](function(_0x4fd650){for(var _0x3a896f=0x0;_0x3a896f<_0xea8e10[_0x9ce0('0x31')]['ids']['length'];_0x3a896f+=0x1){socket[_0x9ce0('0x5c')](_0x9ce0('0x78'),{'UserId':Number(_0xea8e10[_0x9ce0('0x31')]['ids'][_0x3a896f]),'ChatQueueId':Number(_0xea8e10[_0x9ce0('0x39')]['id'])});}return _0x4fd650;});}})[_0x9ce0('0x15')](respondWithResult(_0x49b8d0,null))[_0x9ce0('0x26')](handleError(_0x49b8d0,null));};exports[_0x9ce0('0x79')]=function(_0x5d7ba7,_0x5cf26f){return db[_0x9ce0('0x1e')][_0x9ce0('0x35')]({'where':{'id':_0x5d7ba7[_0x9ce0('0x39')]['id']}})['then'](handleEntityNotFound(_0x5cf26f,null))['then'](function(_0x5b2bba){if(_0x5b2bba){return _0x5b2bba['removeAgents'](_0x5d7ba7['query'][_0x9ce0('0x73')])['then'](function(){if(_[_0x9ce0('0x7a')](_0x5d7ba7[_0x9ce0('0x24')]['ids'])){for(var _0x90cc45=0x0;_0x90cc45<_0x5d7ba7[_0x9ce0('0x24')][_0x9ce0('0x73')][_0x9ce0('0x2d')];_0x90cc45+=0x1){socket[_0x9ce0('0x5c')](_0x9ce0('0x7b'),{'UserId':Number(_0x5d7ba7[_0x9ce0('0x24')][_0x9ce0('0x73')][_0x90cc45]),'ChatQueueId':Number(_0x5d7ba7[_0x9ce0('0x39')]['id'])});}}else{socket[_0x9ce0('0x5c')](_0x9ce0('0x7b'),{'UserId':Number(_0x5d7ba7['query']['ids']),'ChatQueueId':Number(_0x5d7ba7[_0x9ce0('0x39')]['id'])});}});}})[_0x9ce0('0x15')](respondWithStatusCode(_0x5cf26f,null))[_0x9ce0('0x26')](handleError(_0x5cf26f,null));};exports[_0x9ce0('0x7c')]=function(_0x4b9a24,_0x2c30fe){var _0x2b861e={};var _0x5bf78b={};var _0x2c1677;var _0x56730d;return db[_0x9ce0('0x1e')][_0x9ce0('0x3c')]({'where':{'id':_0x4b9a24[_0x9ce0('0x39')]['id']}})[_0x9ce0('0x15')](handleEntityNotFound(_0x2c30fe,null))[_0x9ce0('0x15')](function(_0x563675){if(_0x563675){_0x2c1677=_0x563675;_0x5bf78b[_0x9ce0('0x28')]=_['keys'](db[_0x9ce0('0x46')][_0x9ce0('0x1f')]);_0x5bf78b[_0x9ce0('0x24')]=_[_0x9ce0('0x3d')](_0x4b9a24[_0x9ce0('0x24')]);_0x5bf78b[_0x9ce0('0x29')]=_[_0x9ce0('0x2a')](_0x5bf78b[_0x9ce0('0x28')],_0x5bf78b[_0x9ce0('0x24')]);_0x2b861e[_0x9ce0('0x2c')]=_[_0x9ce0('0x2a')](_0x5bf78b[_0x9ce0('0x28')],qs[_0x9ce0('0x2b')](_0x4b9a24[_0x9ce0('0x24')][_0x9ce0('0x2b')]));_0x2b861e[_0x9ce0('0x2c')]=_0x2b861e['attributes']['length']?_0x2b861e[_0x9ce0('0x2c')]:_0x5bf78b[_0x9ce0('0x28')];_0x2b861e[_0x9ce0('0x40')]=qs[_0x9ce0('0x41')](_0x4b9a24['query']['sort']);_0x2b861e[_0x9ce0('0x42')]=qs[_0x9ce0('0x29')](_[_0x9ce0('0x51')](_0x4b9a24[_0x9ce0('0x24')],_0x5bf78b['filters']));if(_0x4b9a24['query']['filter']){_0x2b861e['where']=_[_0x9ce0('0x44')](_0x2b861e[_0x9ce0('0x42')],{'$or':_[_0x9ce0('0x1d')](_0x2b861e[_0x9ce0('0x2c')],function(_0x3b0eb7){var _0x18a0a5={};_0x18a0a5[_0x3b0eb7]={'$like':'%'+_0x4b9a24[_0x9ce0('0x24')][_0x9ce0('0x43')]+'%'};return _0x18a0a5;})});}_0x2b861e=_['merge']({},_0x2b861e,_0x4b9a24['options']);return _0x2c1677[_0x9ce0('0x7c')](_0x2b861e);}})['then'](function(_0x3fab5c){if(_0x3fab5c){_0x56730d=_0x3fab5c['length'];if(!_0x4b9a24[_0x9ce0('0x24')][_0x9ce0('0x52')](_0x9ce0('0x3f'))){_0x2b861e[_0x9ce0('0x11')]=qs[_0x9ce0('0x11')](_0x4b9a24[_0x9ce0('0x24')][_0x9ce0('0x11')]);_0x2b861e['offset']=qs[_0x9ce0('0xe')](_0x4b9a24[_0x9ce0('0x24')][_0x9ce0('0xe')]);}return _0x2c1677[_0x9ce0('0x7c')](_0x2b861e);}})[_0x9ce0('0x15')](function(_0x3c2e58){if(_0x3c2e58){return _0x3c2e58?{'count':_0x56730d,'rows':_0x3c2e58}:null;}})[_0x9ce0('0x15')](respondWithResult(_0x2c30fe,null))['catch'](handleError(_0x2c30fe,null));};