Built motion from commit c116dc8b.|2.6.30
[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 _0xa567=['attributes','length','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','nolimit','order','sort','pick','ChatQueueId','merge','map','filter','options','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','rows','format','%s/%s','SIP','getTeams','Team','ids','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','forEach','emit','userChatQueue:save','select','field','from','team_has_chat_queues','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','all','union','compact','value','removeTeams','isEmpty','removeAgents','addAgents','omit','spread','isArray','userChatQueue:remove','getAgents','User','util','lodash','squel','ioredis','../../config/logger','api','../../mysqldb','redis','defaults','localhost','./chatQueue.socket','register','end','status','json','offset','undefined','count','limit','set','Content-Range','update','then','destroy','ChatQueues','sendStatus','error','stack','name','send','rawAttributes','fieldName','getOptions','where','ChatQueue','include','query','findAll','catch','show','model','keys','filters','intersection','fields'];(function(_0x4d4daa,_0x581035){var _0x362852=function(_0x2cae49){while(--_0x2cae49){_0x4d4daa['push'](_0x4d4daa['shift']());}};_0x362852(++_0x581035);}(_0xa567,0x14a));var _0x7a56=function(_0x1f4623,_0xf239b6){_0x1f4623=_0x1f4623-0x0;var _0x201891=_0xa567[_0x1f4623];return _0x201891;};'use strict';var BPromise=require('bluebird');var util=require(_0x7a56('0x0'));var _=require(_0x7a56('0x1'));var squel=require(_0x7a56('0x2'));var Redis=require(_0x7a56('0x3'));var qs=require('../../components/parsers/qs');var logger=require(_0x7a56('0x4'))(_0x7a56('0x5'));var config=require('../../config/environment');var db=require(_0x7a56('0x6'))['db'];config[_0x7a56('0x7')]=_[_0x7a56('0x8')](config[_0x7a56('0x7')],{'host':_0x7a56('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7a56('0x7')]));require(_0x7a56('0xa'))[_0x7a56('0xb')](socket);function respondWithStatusCode(_0x563862,_0xf54b0f){_0xf54b0f=_0xf54b0f||0xcc;return function(_0x1b3e21){if(_0x1b3e21){return _0x563862['sendStatus'](_0xf54b0f);}return _0x563862['status'](_0xf54b0f)[_0x7a56('0xc')]();};}function respondWithResult(_0x566f95,_0xb6c515){_0xb6c515=_0xb6c515||0xc8;return function(_0x120e77){if(_0x120e77){return _0x566f95[_0x7a56('0xd')](_0xb6c515)[_0x7a56('0xe')](_0x120e77);}};}function respondWithFilteredResult(_0x44277c,_0x31058f){return function(_0x4388e3){if(_0x4388e3){var _0x50eefb=typeof _0x31058f[_0x7a56('0xf')]===_0x7a56('0x10')&&typeof _0x31058f['limit']==='undefined';var _0x4f2293=_0x4388e3[_0x7a56('0x11')];var _0x495f07=_0x50eefb?0x0:_0x31058f[_0x7a56('0xf')];var _0x430ba0=_0x50eefb?_0x4388e3[_0x7a56('0x11')]:_0x31058f[_0x7a56('0xf')]+_0x31058f[_0x7a56('0x12')];var _0x2eb3a1;if(_0x430ba0>=_0x4f2293){_0x430ba0=_0x4f2293;_0x2eb3a1=0xc8;}else{_0x2eb3a1=0xce;}_0x44277c[_0x7a56('0xd')](_0x2eb3a1);return _0x44277c[_0x7a56('0x13')](_0x7a56('0x14'),_0x495f07+'-'+_0x430ba0+'/'+_0x4f2293)[_0x7a56('0xe')](_0x4388e3);}return null;};}function saveUpdates(_0x231b93){return function(_0x50b52b){if(_0x50b52b){return _0x50b52b[_0x7a56('0x15')](_0x231b93)[_0x7a56('0x16')](function(_0x1653e4){return _0x1653e4;});}return null;};}function removeEntity(_0x2dd31c){return function(_0x41dda1){if(_0x41dda1){return _0x41dda1[_0x7a56('0x17')]()[_0x7a56('0x16')](function(){var _0x229cf1=_0x41dda1['get']({'plain':!![]});var _0x1a7366=_0x7a56('0x18');return db['UserProfileResource'][_0x7a56('0x17')]({'where':{'type':_0x1a7366,'resourceId':_0x229cf1['id']}})[_0x7a56('0x16')](function(){return _0x41dda1;});})[_0x7a56('0x16')](function(){_0x2dd31c[_0x7a56('0xd')](0xcc)['end']();});}};}function handleEntityNotFound(_0x55fa07){return function(_0x27a673){if(!_0x27a673){_0x55fa07[_0x7a56('0x19')](0x194);}return _0x27a673;};}function handleError(_0x5ec195,_0x229f9a){_0x229f9a=_0x229f9a||0x1f4;return function(_0xd74d58){logger[_0x7a56('0x1a')](_0xd74d58[_0x7a56('0x1b')]);if(_0xd74d58['name']){delete _0xd74d58[_0x7a56('0x1c')];}_0x5ec195[_0x7a56('0xd')](_0x229f9a)[_0x7a56('0x1d')](_0xd74d58);};}exports['index']=function(_0xf16168,_0x23a3d8){var _0x15ad9e={};var _0x1b43e6={'count':0x0,'rows':[]};var _0x3b737b=_['map'](db['ChatQueue'][_0x7a56('0x1e')],function(_0x3b9570){return{'name':_0x3b9570[_0x7a56('0x1f')],'type':_0x3b9570['type']['key']};});_0x15ad9e=qs[_0x7a56('0x20')](_0x3b737b,_0xf16168);var _0x2baf18={'where':_0x15ad9e[_0x7a56('0x21')]};return db[_0x7a56('0x22')]['count'](_0x2baf18)[_0x7a56('0x16')](function(_0x4026c7){_0x1b43e6[_0x7a56('0x11')]=_0x4026c7;_0x15ad9e[_0x7a56('0x23')]=qs[_0x7a56('0x23')](_0xf16168[_0x7a56('0x24')]);return db[_0x7a56('0x22')][_0x7a56('0x25')](_0x15ad9e);})['then'](function(_0x4ef25f){_0x1b43e6['rows']=_0x4ef25f;return _0x1b43e6;})[_0x7a56('0x16')](respondWithFilteredResult(_0x23a3d8,_0x15ad9e))[_0x7a56('0x26')](handleError(_0x23a3d8,null));};exports[_0x7a56('0x27')]=function(_0x5edfb6,_0x3d8c3d){var _0x4b27e9={'raw':!![],'where':{'id':_0x5edfb6['params']['id']}},_0x46e3d5={};_0x46e3d5[_0x7a56('0x28')]=_[_0x7a56('0x29')](db[_0x7a56('0x22')][_0x7a56('0x1e')]);_0x46e3d5['query']=_['keys'](_0x5edfb6[_0x7a56('0x24')]);_0x46e3d5[_0x7a56('0x2a')]=_[_0x7a56('0x2b')](_0x46e3d5['model'],_0x46e3d5[_0x7a56('0x24')]);_0x4b27e9['attributes']=_[_0x7a56('0x2b')](_0x46e3d5[_0x7a56('0x28')],qs[_0x7a56('0x2c')](_0x5edfb6[_0x7a56('0x24')]['fields']));_0x4b27e9[_0x7a56('0x2d')]=_0x4b27e9[_0x7a56('0x2d')][_0x7a56('0x2e')]?_0x4b27e9[_0x7a56('0x2d')]:_0x46e3d5['model'];if(_0x5edfb6[_0x7a56('0x24')]['includeAll']){_0x4b27e9[_0x7a56('0x23')]=[{'all':!![]}];}_0x4b27e9=_['merge']({},_0x4b27e9,_0x5edfb6['options']);return db[_0x7a56('0x22')][_0x7a56('0x2f')](_0x4b27e9)[_0x7a56('0x16')](handleEntityNotFound(_0x3d8c3d,null))[_0x7a56('0x16')](respondWithResult(_0x3d8c3d,null))[_0x7a56('0x26')](handleError(_0x3d8c3d,null));};exports[_0x7a56('0x30')]=function(_0x4d3f53,_0x577bca){return db[_0x7a56('0x22')][_0x7a56('0x30')](_0x4d3f53[_0x7a56('0x31')],{})[_0x7a56('0x16')](function(_0xedcc7d){var _0x4a50b5=_0x4d3f53['user'][_0x7a56('0x32')]({'plain':!![]});if(!_0x4a50b5)throw new Error(_0x7a56('0x33'));if(_0x4a50b5[_0x7a56('0x34')]===_0x7a56('0x35')){var _0x5673a2=_0xedcc7d[_0x7a56('0x32')]({'plain':!![]});var _0x306d3f=_0x7a56('0x18');return db[_0x7a56('0x36')][_0x7a56('0x2f')]({'where':{'name':_0x306d3f,'userProfileId':_0x4a50b5[_0x7a56('0x37')]},'raw':!![]})[_0x7a56('0x16')](function(_0x3dd0dd){if(_0x3dd0dd&&_0x3dd0dd[_0x7a56('0x38')]===0x0){return db[_0x7a56('0x39')][_0x7a56('0x30')]({'name':_0x5673a2['name'],'resourceId':_0x5673a2['id'],'type':_0x3dd0dd[_0x7a56('0x1c')],'sectionId':_0x3dd0dd['id']},{})['then'](function(){return _0xedcc7d;});}else{return _0xedcc7d;}})[_0x7a56('0x26')](function(_0xda4bec){logger[_0x7a56('0x1a')](_0x7a56('0x3a'),_0xda4bec);throw _0xda4bec;});}return _0xedcc7d;})['then'](respondWithResult(_0x577bca,0xc9))[_0x7a56('0x26')](handleError(_0x577bca,null));};exports[_0x7a56('0x15')]=function(_0x559542,_0x4d85fc){if(_0x559542[_0x7a56('0x31')]['id']){delete _0x559542[_0x7a56('0x31')]['id'];}return db[_0x7a56('0x22')][_0x7a56('0x2f')]({'where':{'id':_0x559542[_0x7a56('0x3b')]['id']}})['then'](handleEntityNotFound(_0x4d85fc,null))[_0x7a56('0x16')](saveUpdates(_0x559542['body'],null))[_0x7a56('0x16')](respondWithResult(_0x4d85fc,null))[_0x7a56('0x26')](handleError(_0x4d85fc,null));};exports[_0x7a56('0x17')]=function(_0x52a430,_0x507de5){return db[_0x7a56('0x22')][_0x7a56('0x2f')]({'where':{'id':_0x52a430[_0x7a56('0x3b')]['id']}})[_0x7a56('0x16')](handleEntityNotFound(_0x507de5,null))[_0x7a56('0x16')](removeEntity(_0x507de5,null))[_0x7a56('0x26')](handleError(_0x507de5,null));};exports[_0x7a56('0x3c')]=function(_0x4ad6e5,_0x50d896){return db[_0x7a56('0x22')]['describe']()['then'](respondWithResult(_0x50d896,null))[_0x7a56('0x26')](handleError(_0x50d896,null));};exports[_0x7a56('0x3d')]=function(_0x1f920d,_0xe928e3){var _0x213b4b={'raw':!![],'where':{}},_0x2bae2a={},_0x31c972;return db['ChatQueue'][_0x7a56('0x3e')]({'where':{'id':_0x1f920d['params']['id']}})[_0x7a56('0x16')](handleEntityNotFound(_0xe928e3,null))['then'](function(_0x3c45bc){if(_0x3c45bc){_0x31c972=_0x3c45bc[_0x7a56('0x32')]({'plain':!![]});_0x2bae2a[_0x7a56('0x28')]=_[_0x7a56('0x29')](db[_0x7a56('0x3f')][_0x7a56('0x1e')]);_0x2bae2a[_0x7a56('0x24')]=_['keys'](_0x1f920d[_0x7a56('0x24')]);_0x2bae2a[_0x7a56('0x2a')]=_[_0x7a56('0x2b')](_0x2bae2a['model'],_0x2bae2a[_0x7a56('0x24')]);_0x213b4b[_0x7a56('0x2d')]=_[_0x7a56('0x2b')](_0x2bae2a[_0x7a56('0x28')],qs[_0x7a56('0x2c')](_0x1f920d[_0x7a56('0x24')]['fields']));_0x213b4b[_0x7a56('0x2d')]=_0x213b4b[_0x7a56('0x2d')][_0x7a56('0x2e')]?_0x213b4b[_0x7a56('0x2d')]:_0x2bae2a[_0x7a56('0x28')];if(!_0x1f920d['query'][_0x7a56('0x40')](_0x7a56('0x41'))){_0x213b4b[_0x7a56('0x12')]=qs[_0x7a56('0x12')](_0x1f920d['query'][_0x7a56('0x12')]);_0x213b4b[_0x7a56('0xf')]=qs[_0x7a56('0xf')](_0x1f920d['query']['offset']);}_0x213b4b[_0x7a56('0x42')]=qs[_0x7a56('0x43')](_0x1f920d[_0x7a56('0x24')][_0x7a56('0x43')]);_0x213b4b[_0x7a56('0x21')]=qs[_0x7a56('0x2a')](_[_0x7a56('0x44')](_0x1f920d['query'],_0x2bae2a[_0x7a56('0x2a')]));_0x213b4b[_0x7a56('0x21')][_0x7a56('0x45')]=_0x3c45bc['id'];if(_0x1f920d[_0x7a56('0x24')]['filter']){_0x213b4b[_0x7a56('0x21')]=_[_0x7a56('0x46')](_0x213b4b[_0x7a56('0x21')],{'$or':_[_0x7a56('0x47')](_0x213b4b[_0x7a56('0x2d')],function(_0x124848){var _0x47b2fd={};_0x47b2fd[_0x124848]={'$like':'%'+_0x1f920d[_0x7a56('0x24')][_0x7a56('0x48')]+'%'};return _0x47b2fd;})});}_0x213b4b=_[_0x7a56('0x46')]({},_0x213b4b,_0x1f920d[_0x7a56('0x49')]);return db['UserChatQueue'][_0x7a56('0x25')](_0x213b4b);}})[_0x7a56('0x16')](function(_0x2ee3d9){if(_0x2ee3d9){return db['User'][_0x7a56('0x4a')]({'where':{'id':_['map'](_0x2ee3d9,_0x7a56('0x4b')),'role':_0x7a56('0x4c')},'attributes':['id',_0x7a56('0x1c'),_0x7a56('0x4d'),_0x7a56('0x4e'),_0x7a56('0x4f')]});}})[_0x7a56('0x16')](function(_0x414641){if(_0x414641){return{'count':_0x414641[_0x7a56('0x11')],'rows':_['map'](_0x414641[_0x7a56('0x50')],function(_0x3142d5){return{'membername':_0x3142d5[_0x7a56('0x1c')],'UserId':_0x3142d5['id'],'queue_name':_0x31c972[_0x7a56('0x1c')],'ChatQueueId':_0x31c972['id'],'interface':util[_0x7a56('0x51')](_0x7a56('0x52'),_0x7a56('0x53'),_0x3142d5[_0x7a56('0x1c')]),'penalty':0x0,'paused':_0x3142d5[_0x7a56('0x4d')],'createdAt':_0x3142d5[_0x7a56('0x4f')],'updatedAt':_0x3142d5[_0x7a56('0x4e')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x7a56('0x16')](respondWithFilteredResult(_0xe928e3,_0x213b4b))['catch'](handleError(_0xe928e3,null));};exports[_0x7a56('0x54')]=function(_0x271b6d,_0x50c17e){var _0x4d0558={};var _0x5255fd={};var _0x28673e;var _0x5f2ebe;return db['ChatQueue'][_0x7a56('0x3e')]({'where':{'id':_0x271b6d[_0x7a56('0x3b')]['id']}})[_0x7a56('0x16')](handleEntityNotFound(_0x50c17e,null))[_0x7a56('0x16')](function(_0x6f2b85){if(_0x6f2b85){_0x28673e=_0x6f2b85;_0x5255fd[_0x7a56('0x28')]=_[_0x7a56('0x29')](db[_0x7a56('0x55')]['rawAttributes']);_0x5255fd['query']=_['keys'](_0x271b6d[_0x7a56('0x24')]);_0x5255fd['filters']=_['intersection'](_0x5255fd[_0x7a56('0x28')],_0x5255fd[_0x7a56('0x24')]);_0x4d0558[_0x7a56('0x2d')]=_[_0x7a56('0x2b')](_0x5255fd[_0x7a56('0x28')],qs[_0x7a56('0x2c')](_0x271b6d[_0x7a56('0x24')]['fields']));_0x4d0558[_0x7a56('0x2d')]=_0x4d0558[_0x7a56('0x2d')]['length']?_0x4d0558['attributes']:_0x5255fd[_0x7a56('0x28')];_0x4d0558[_0x7a56('0x42')]=qs[_0x7a56('0x43')](_0x271b6d['query']['sort']);_0x4d0558['where']=qs[_0x7a56('0x2a')](_[_0x7a56('0x44')](_0x271b6d[_0x7a56('0x24')],_0x5255fd['filters']));if(_0x271b6d[_0x7a56('0x24')]['filter']){_0x4d0558['where']=_['merge'](_0x4d0558[_0x7a56('0x21')],{'$or':_[_0x7a56('0x47')](_0x4d0558['attributes'],function(_0x10c25f){var _0x4f3a23={};_0x4f3a23[_0x10c25f]={'$like':'%'+_0x271b6d['query'][_0x7a56('0x48')]+'%'};return _0x4f3a23;})});}_0x4d0558=_[_0x7a56('0x46')]({},_0x4d0558,_0x271b6d[_0x7a56('0x49')]);return _0x28673e[_0x7a56('0x54')](_0x4d0558);}})['then'](function(_0x18fbe6){if(_0x18fbe6){_0x5f2ebe=_0x18fbe6[_0x7a56('0x2e')];if(!_0x271b6d[_0x7a56('0x24')][_0x7a56('0x40')]('nolimit')){_0x4d0558['limit']=qs[_0x7a56('0x12')](_0x271b6d[_0x7a56('0x24')][_0x7a56('0x12')]);_0x4d0558['offset']=qs[_0x7a56('0xf')](_0x271b6d[_0x7a56('0x24')]['offset']);}return _0x28673e[_0x7a56('0x54')](_0x4d0558);}})[_0x7a56('0x16')](function(_0x1bce75){if(_0x1bce75){return _0x1bce75?{'count':_0x5f2ebe,'rows':_0x1bce75}:null;}})[_0x7a56('0x16')](respondWithResult(_0x50c17e,null))[_0x7a56('0x26')](handleError(_0x50c17e,null));};exports['addTeams']=function(_0x223303,_0xe26247){var _0x4a9196=_0x223303[_0x7a56('0x31')][_0x7a56('0x56')];return db['Team']['findAll']({'where':{'id':_0x4a9196},'attributes':['id'],'include':[{'model':db['User'],'as':_0x7a56('0x57'),'attributes':['id','name',_0x7a56('0x58'),_0x7a56('0x59'),_0x7a56('0x5a')],'raw':!![]}]})[_0x7a56('0x16')](function(_0x5cfb1d){if(_0x5cfb1d){var _0x2596f9=_[_0x7a56('0x5b')](_0x5cfb1d,function(_0x4ecd65){var _0x3d2a80=_0x4ecd65[_0x7a56('0x32')]({'plain':!![]});return _0x3d2a80[_0x7a56('0x57')];});return db[_0x7a56('0x22')]['find']({'where':{'id':_0x223303['params']['id']}})[_0x7a56('0x16')](function(_0x370fd3){return db[_0x7a56('0x5c')][_0x7a56('0x5d')](function(_0x4a4ee9){return _0x370fd3['addTeams'](_0x4a9196,{'transaction':_0x4a4ee9})[_0x7a56('0x16')](function(){return BPromise[_0x7a56('0x5e')](_0x2596f9,function(_0x3d03eb){return db[_0x7a56('0x3f')]['findOrCreate']({'where':{'UserId':_0x3d03eb['id'],'ChatQueueId':_0x223303[_0x7a56('0x3b')]['id']},'transaction':_0x4a4ee9});});})[_0x7a56('0x16')](function(){_0x2596f9[_0x7a56('0x5f')](function(_0x2aba74){socket[_0x7a56('0x60')](_0x7a56('0x61'),{'UserId':_0x2aba74['id'],'ChatQueueId':_0x370fd3['id']});});});});});}})[_0x7a56('0x16')](respondWithStatusCode(_0xe26247,null))[_0x7a56('0x26')](handleError(_0xe26247,null));};exports['removeTeams']=function(_0x3bd628,_0x5906bf){return db[_0x7a56('0x55')][_0x7a56('0x25')]({'where':{'id':_0x3bd628[_0x7a56('0x24')][_0x7a56('0x56')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x5906bf,null))[_0x7a56('0x16')](function(_0x1b3add){var _0x18f49f=_[_0x7a56('0x47')](_0x1b3add,'id');var _0x29291c=[];var _0x144ce2=[];var _0x5282e0=squel[_0x7a56('0x62')]();_0x5282e0[_0x7a56('0x63')]('tq.TeamId')[_0x7a56('0x64')](_0x7a56('0x65'),'tq')['join']('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x7a56('0x21')](_0x7a56('0x66'),_0x3bd628[_0x7a56('0x3b')]['id']);for(var _0x19376d=0x0;_0x19376d<_0x1b3add[_0x7a56('0x2e')];_0x19376d+=0x1){let _0x293d4d=_0x1b3add[_0x19376d];for(var _0x260f03=0x0;_0x260f03<_0x293d4d[_0x7a56('0x57')][_0x7a56('0x2e')];_0x260f03+=0x1){let _0x1abfb5=_0x293d4d[_0x7a56('0x57')][_0x260f03];var _0x4bc177=_0x5282e0[_0x7a56('0x67')]();_0x4bc177['where'](_0x7a56('0x68'),_0x1abfb5['id']);_0x144ce2[_0x7a56('0x69')](db[_0x7a56('0x5c')]['query'](_0x4bc177[_0x7a56('0x6a')](),{'type':db[_0x7a56('0x5c')][_0x7a56('0x6b')]['SELECT']})['then'](function(_0x7985eb){if(_0x7985eb['length']===0x1){return _0x1abfb5['id'];}else{var _0x4c33ba=_[_0x7a56('0x6c')](_[_0x7a56('0x47')](_0x7985eb,_0x7a56('0x6d')),function(_0x28f675){return _[_0x7a56('0x6e')](_0x18f49f,_0x28f675);});if(_0x4c33ba){return _0x1abfb5['id'];}}}));}}return BPromise[_0x7a56('0x6f')](_0x144ce2)[_0x7a56('0x16')](function(_0x37c7ee){_0x29291c=_(_0x29291c)[_0x7a56('0x70')](_0x37c7ee)[_0x7a56('0x71')]()[_0x7a56('0x72')]();return db[_0x7a56('0x22')][_0x7a56('0x2f')]({'where':{'id':_0x3bd628[_0x7a56('0x3b')]['id']}})[_0x7a56('0x16')](function(_0x321b0f){return db[_0x7a56('0x5c')][_0x7a56('0x5d')](function(_0x16c557){return _0x321b0f[_0x7a56('0x73')](_0x3bd628[_0x7a56('0x24')][_0x7a56('0x56')],{'transaction':_0x16c557})[_0x7a56('0x16')](function(){if(!_[_0x7a56('0x74')](_0x29291c)){return _0x321b0f[_0x7a56('0x75')](_0x29291c,{'transaction':_0x16c557});}})[_0x7a56('0x16')](function(){_0x29291c[_0x7a56('0x5f')](function(_0x2a2e59){socket[_0x7a56('0x60')]('userChatQueue:remove',{'UserId':_0x2a2e59,'ChatQueueId':_0x321b0f['id']});});});});});});})[_0x7a56('0x16')](respondWithStatusCode(_0x5906bf,null))[_0x7a56('0x26')](handleError(_0x5906bf,null));};exports[_0x7a56('0x76')]=function(_0x28b23f,_0x38c07a){return db[_0x7a56('0x22')]['find']({'where':{'id':_0x28b23f[_0x7a56('0x3b')]['id']}})[_0x7a56('0x16')](handleEntityNotFound(_0x38c07a,null))['then'](function(_0x5efcb6){if(_0x5efcb6){return _0x5efcb6[_0x7a56('0x76')](_0x28b23f[_0x7a56('0x31')]['ids'],_[_0x7a56('0x77')](_0x28b23f[_0x7a56('0x31')],[_0x7a56('0x56'),'id'])||{})[_0x7a56('0x78')](function(_0x4c8809){for(var _0xc3224b=0x0;_0xc3224b<_0x28b23f[_0x7a56('0x31')][_0x7a56('0x56')][_0x7a56('0x2e')];_0xc3224b+=0x1){socket[_0x7a56('0x60')]('userChatQueue:save',{'UserId':Number(_0x28b23f['body'][_0x7a56('0x56')][_0xc3224b]),'ChatQueueId':Number(_0x28b23f[_0x7a56('0x3b')]['id'])});}return _0x4c8809;});}})[_0x7a56('0x16')](respondWithResult(_0x38c07a,null))[_0x7a56('0x26')](handleError(_0x38c07a,null));};exports['removeAgents']=function(_0x128671,_0x1660f8){return db['ChatQueue']['find']({'where':{'id':_0x128671[_0x7a56('0x3b')]['id']}})[_0x7a56('0x16')](handleEntityNotFound(_0x1660f8,null))[_0x7a56('0x16')](function(_0x3199eb){if(_0x3199eb){return _0x3199eb[_0x7a56('0x75')](_0x128671[_0x7a56('0x24')][_0x7a56('0x56')])[_0x7a56('0x16')](function(){if(_[_0x7a56('0x79')](_0x128671[_0x7a56('0x24')][_0x7a56('0x56')])){for(var _0x57ef19=0x0;_0x57ef19<_0x128671['query'][_0x7a56('0x56')][_0x7a56('0x2e')];_0x57ef19+=0x1){socket[_0x7a56('0x60')](_0x7a56('0x7a'),{'UserId':Number(_0x128671[_0x7a56('0x24')][_0x7a56('0x56')][_0x57ef19]),'ChatQueueId':Number(_0x128671[_0x7a56('0x3b')]['id'])});}}else{socket[_0x7a56('0x60')]('userChatQueue:remove',{'UserId':Number(_0x128671[_0x7a56('0x24')][_0x7a56('0x56')]),'ChatQueueId':Number(_0x128671[_0x7a56('0x3b')]['id'])});}});}})[_0x7a56('0x16')](respondWithStatusCode(_0x1660f8,null))[_0x7a56('0x26')](handleError(_0x1660f8,null));};exports[_0x7a56('0x7b')]=function(_0x217cc9,_0x2193c6){var _0xa65ef5={};var _0x263328={};var _0x5c305a;var _0x1e47bc;return db[_0x7a56('0x22')]['findOne']({'where':{'id':_0x217cc9[_0x7a56('0x3b')]['id']}})['then'](handleEntityNotFound(_0x2193c6,null))[_0x7a56('0x16')](function(_0x1f1d95){if(_0x1f1d95){_0x5c305a=_0x1f1d95;_0x263328[_0x7a56('0x28')]=_[_0x7a56('0x29')](db[_0x7a56('0x7c')][_0x7a56('0x1e')]);_0x263328['query']=_['keys'](_0x217cc9[_0x7a56('0x24')]);_0x263328[_0x7a56('0x2a')]=_[_0x7a56('0x2b')](_0x263328[_0x7a56('0x28')],_0x263328[_0x7a56('0x24')]);_0xa65ef5[_0x7a56('0x2d')]=_['intersection'](_0x263328[_0x7a56('0x28')],qs[_0x7a56('0x2c')](_0x217cc9['query'][_0x7a56('0x2c')]));_0xa65ef5[_0x7a56('0x2d')]=_0xa65ef5['attributes'][_0x7a56('0x2e')]?_0xa65ef5['attributes']:_0x263328['model'];_0xa65ef5[_0x7a56('0x42')]=qs[_0x7a56('0x43')](_0x217cc9[_0x7a56('0x24')][_0x7a56('0x43')]);_0xa65ef5[_0x7a56('0x21')]=qs[_0x7a56('0x2a')](_[_0x7a56('0x44')](_0x217cc9[_0x7a56('0x24')],_0x263328[_0x7a56('0x2a')]));if(_0x217cc9[_0x7a56('0x24')][_0x7a56('0x48')]){_0xa65ef5[_0x7a56('0x21')]=_[_0x7a56('0x46')](_0xa65ef5[_0x7a56('0x21')],{'$or':_[_0x7a56('0x47')](_0xa65ef5[_0x7a56('0x2d')],function(_0x401880){var _0x2e8ee8={};_0x2e8ee8[_0x401880]={'$like':'%'+_0x217cc9['query'][_0x7a56('0x48')]+'%'};return _0x2e8ee8;})});}_0xa65ef5=_[_0x7a56('0x46')]({},_0xa65ef5,_0x217cc9['options']);return _0x5c305a[_0x7a56('0x7b')](_0xa65ef5);}})[_0x7a56('0x16')](function(_0x31a7ee){if(_0x31a7ee){_0x1e47bc=_0x31a7ee['length'];if(!_0x217cc9['query'][_0x7a56('0x40')](_0x7a56('0x41'))){_0xa65ef5[_0x7a56('0x12')]=qs[_0x7a56('0x12')](_0x217cc9['query']['limit']);_0xa65ef5[_0x7a56('0xf')]=qs[_0x7a56('0xf')](_0x217cc9[_0x7a56('0x24')][_0x7a56('0xf')]);}return _0x5c305a[_0x7a56('0x7b')](_0xa65ef5);}})['then'](function(_0x5680e5){if(_0x5680e5){return _0x5680e5?{'count':_0x1e47bc,'rows':_0x5680e5}:null;}})[_0x7a56('0x16')](respondWithResult(_0x2193c6,null))[_0x7a56('0x26')](handleError(_0x2193c6,null));};