735607dda1fb15191cbce5ab8ffca46ec4602ee5
[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 _0x1bf5=['clone','push','toString','QueryTypes','SELECT','includes','all','union','compact','value','transaction','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','userChatQueue:save','getAgents','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./chatQueue.socket','register','jayson/promise','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','json','offset','limit','set','Content-Range','apply','reject','destroy','get','ChatQueues','UserProfileResource','stack','name','send','ChatQueue','rawAttributes','fieldName','type','model','map','keys','query','intersection','attributes','fields','length','nolimit','sort','filters','pick','filter','where','merge','VIRTUAL','options','count','includeAll','rows','catch','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','describe','getMembers','UserChatQueue','hasOwnProperty','order','ChatQueueId','findAll','User','findAndCountAll','UserId','agent','chatPause','updatedAt','format','%s/%s','SIP','createdAt','findOne','Team','getTeams','addTeams','ids','Agents','online','voicePause','sequelize','each','forEach','emit','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x1bf5,0x13b));var _0x51bf=function(_0x413c32,_0x1e79a4){_0x413c32=_0x413c32-0x0;var _0x37de17=_0x1bf5[_0x413c32];return _0x37de17;};'use strict';var pdf=require(_0x51bf('0x0'));var emlformat=require(_0x51bf('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x51bf('0x2'));var jsonpatch=require(_0x51bf('0x3'));var rp=require(_0x51bf('0x4'));var moment=require(_0x51bf('0x5'));var BPromise=require(_0x51bf('0x6'));var Mustache=require(_0x51bf('0x7'));var util=require(_0x51bf('0x8'));var path=require(_0x51bf('0x9'));var sox=require('sox');var csv=require(_0x51bf('0xa'));var ejs=require(_0x51bf('0xb'));var fs=require('fs');var _=require(_0x51bf('0xc'));var squel=require(_0x51bf('0xd'));var crypto=require('crypto');var jsforce=require(_0x51bf('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x51bf('0xa'));var querystring=require(_0x51bf('0xf'));var Papa=require('papaparse');var Redis=require(_0x51bf('0x10'));var authService=require(_0x51bf('0x11'));var qs=require(_0x51bf('0x12'));var as=require(_0x51bf('0x13'));var hardwareService=require(_0x51bf('0x14'));var logger=require(_0x51bf('0x15'))('api');var utils=require(_0x51bf('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x51bf('0x17'));var db=require(_0x51bf('0x18'))['db'];config['redis']=_[_0x51bf('0x19')](config['redis'],{'host':_0x51bf('0x1a'),'port':0x18eb});var socket=require(_0x51bf('0x1b'))(new Redis(config[_0x51bf('0x1c')]));require(_0x51bf('0x1d'))[_0x51bf('0x1e')](socket);var jayson=require(_0x51bf('0x1f'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2e43b7,_0x31ebb4,_0x233a47,_0x5c8854){return new BPromise(function(_0x27c85c,_0x51c629){var _0x5efbdc=_0x5c8854||client;return _0x5efbdc[_0x51bf('0x20')](_0x2e43b7,_0x233a47)[_0x51bf('0x21')](function(_0x42333b){logger[_0x51bf('0x22')](_0x51bf('0x23'),_0x31ebb4,_0x51bf('0x24'));logger['debug'](_0x51bf('0x25'),_0x31ebb4,_0x51bf('0x24'),JSON[_0x51bf('0x26')](_0x42333b));if(_0x42333b['error']){if(_0x42333b[_0x51bf('0x27')][_0x51bf('0x28')]===0x1f4){logger[_0x51bf('0x27')]('ChatQueue,\x20%s,\x20%s',_0x31ebb4,_0x42333b[_0x51bf('0x27')][_0x51bf('0x29')]);return _0x51c629(_0x42333b['error']['message']);}logger[_0x51bf('0x27')](_0x51bf('0x23'),_0x31ebb4,_0x42333b[_0x51bf('0x27')][_0x51bf('0x29')]);return _0x27c85c(_0x42333b['error'][_0x51bf('0x29')]);}else{logger[_0x51bf('0x22')]('ChatQueue,\x20%s,\x20%s',_0x31ebb4,_0x51bf('0x24'));_0x27c85c(_0x42333b[_0x51bf('0x2a')][_0x51bf('0x29')]);}})['catch'](function(_0x2562a0){logger[_0x51bf('0x27')](_0x51bf('0x23'),_0x31ebb4,_0x2562a0);_0x51c629(_0x2562a0);});});}function respondWithStatusCode(_0x5a30b2,_0x3caab3){_0x3caab3=_0x3caab3||0xcc;return function(_0x738cff){if(_0x738cff){return _0x5a30b2[_0x51bf('0x2b')](_0x3caab3);}return _0x5a30b2[_0x51bf('0x2c')](_0x3caab3)['end']();};}function respondWithResult(_0x30d08b,_0x19e889){_0x19e889=_0x19e889||0xc8;return function(_0x6fa167){if(_0x6fa167){return _0x30d08b[_0x51bf('0x2c')](_0x19e889)[_0x51bf('0x2d')](_0x6fa167);}};}function respondWithFilteredResult(_0x1f9898,_0x1f45a2){return function(_0x40b857){if(_0x40b857){var _0x4936c0=_0x40b857['count'],_0x468ed3=_0x1f45a2[_0x51bf('0x2e')],_0x392bb1=_0x1f45a2[_0x51bf('0x2e')]+_0x1f45a2[_0x51bf('0x2f')],_0x582f4a;if(_0x392bb1>=_0x4936c0){_0x392bb1=_0x4936c0;_0x582f4a=0xc8;}else{_0x582f4a=0xce;}_0x1f9898[_0x51bf('0x2c')](_0x582f4a);return _0x1f9898[_0x51bf('0x30')](_0x51bf('0x31'),_0x468ed3+'-'+_0x392bb1+'/'+_0x4936c0)[_0x51bf('0x2d')](_0x40b857);}return null;};}function patchUpdates(_0xec0484){return function(_0x3bcebe){try{jsonpatch[_0x51bf('0x32')](_0x3bcebe,_0xec0484,!![]);}catch(_0x5df15e){return BPromise[_0x51bf('0x33')](_0x5df15e);}return _0x3bcebe['save']();};}function saveUpdates(_0xaa3766,_0x59f52d){return function(_0x552d61){if(_0x552d61){return _0x552d61['update'](_0xaa3766)['then'](function(_0x5938f2){return _0x5938f2;});}return null;};}function removeEntity(_0x6d4e2e,_0x188ad4){return function(_0x403192){if(_0x403192){return _0x403192[_0x51bf('0x34')]()[_0x51bf('0x21')](function(){var _0x3f6b74=_0x403192[_0x51bf('0x35')]({'plain':!![]});var _0x58f917=_0x51bf('0x36');return db[_0x51bf('0x37')][_0x51bf('0x34')]({'where':{'type':_0x58f917,'resourceId':_0x3f6b74['id']}})[_0x51bf('0x21')](function(){return _0x403192;});})['then'](function(){_0x6d4e2e['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x736acf,_0x56d99e){return function(_0x28f4a2){if(!_0x28f4a2){_0x736acf[_0x51bf('0x2b')](0x194);}return _0x28f4a2;};}function handleError(_0x14a2a4,_0x5a0043){_0x5a0043=_0x5a0043||0x1f4;return function(_0x20630e){logger['error'](_0x20630e[_0x51bf('0x38')]);if(_0x20630e[_0x51bf('0x39')]){delete _0x20630e[_0x51bf('0x39')];}_0x14a2a4[_0x51bf('0x2c')](_0x5a0043)[_0x51bf('0x3a')](_0x20630e);};}exports['index']=function(_0x39417c,_0x52f61e){var _0x15348f={},_0x17f3e4={},_0x3f0a4d={'count':0x0,'rows':[]};var _0xb98bb4=_['map'](db[_0x51bf('0x3b')][_0x51bf('0x3c')],function(_0x3d34e1){return{'name':_0x3d34e1[_0x51bf('0x3d')],'type':_0x3d34e1[_0x51bf('0x3e')]['key']};});_0x17f3e4[_0x51bf('0x3f')]=_[_0x51bf('0x40')](_0xb98bb4,'name');_0x17f3e4['query']=_[_0x51bf('0x41')](_0x39417c[_0x51bf('0x42')]);_0x17f3e4['filters']=_[_0x51bf('0x43')](_0x17f3e4['model'],_0x17f3e4[_0x51bf('0x42')]);_0x15348f[_0x51bf('0x44')]=_[_0x51bf('0x43')](_0x17f3e4['model'],qs[_0x51bf('0x45')](_0x39417c['query'][_0x51bf('0x45')]));_0x15348f[_0x51bf('0x44')]=_0x15348f[_0x51bf('0x44')][_0x51bf('0x46')]?_0x15348f['attributes']:_0x17f3e4[_0x51bf('0x3f')];if(!_0x39417c[_0x51bf('0x42')]['hasOwnProperty'](_0x51bf('0x47'))){_0x15348f[_0x51bf('0x2f')]=qs[_0x51bf('0x2f')](_0x39417c[_0x51bf('0x42')][_0x51bf('0x2f')]);_0x15348f[_0x51bf('0x2e')]=qs['offset'](_0x39417c[_0x51bf('0x42')][_0x51bf('0x2e')]);}_0x15348f['order']=qs['sort'](_0x39417c[_0x51bf('0x42')][_0x51bf('0x48')]);_0x15348f['where']=qs[_0x51bf('0x49')](_[_0x51bf('0x4a')](_0x39417c[_0x51bf('0x42')],_0x17f3e4[_0x51bf('0x49')]),_0xb98bb4);if(_0x39417c['query'][_0x51bf('0x4b')]){_0x15348f[_0x51bf('0x4c')]=_[_0x51bf('0x4d')](_0x15348f[_0x51bf('0x4c')],{'$or':_[_0x51bf('0x40')](_0xb98bb4,function(_0x43dbe1){if(_0x43dbe1[_0x51bf('0x3e')]!==_0x51bf('0x4e')){var _0x5a71d4={};_0x5a71d4[_0x43dbe1[_0x51bf('0x39')]]={'$like':'%'+_0x39417c[_0x51bf('0x42')]['filter']+'%'};return _0x5a71d4;}})});}_0x15348f=_[_0x51bf('0x4d')]({},_0x15348f,_0x39417c[_0x51bf('0x4f')]);var _0x2a7b8b={'where':_0x15348f[_0x51bf('0x4c')]};return db[_0x51bf('0x3b')][_0x51bf('0x50')](_0x2a7b8b)['then'](function(_0x5d1e49){_0x3f0a4d['count']=_0x5d1e49;if(_0x39417c['query'][_0x51bf('0x51')]){_0x15348f['include']=[{'all':!![]}];}return db[_0x51bf('0x3b')]['findAll'](_0x15348f);})['then'](function(_0x3aef92){_0x3f0a4d[_0x51bf('0x52')]=_0x3aef92;return _0x3f0a4d;})[_0x51bf('0x21')](respondWithFilteredResult(_0x52f61e,_0x15348f))[_0x51bf('0x53')](handleError(_0x52f61e,null));};exports[_0x51bf('0x54')]=function(_0x14c361,_0x297b5f){var _0x2bec7c={'raw':!![],'where':{'id':_0x14c361[_0x51bf('0x55')]['id']}},_0x52c99d={};_0x52c99d[_0x51bf('0x3f')]=_[_0x51bf('0x41')](db[_0x51bf('0x3b')][_0x51bf('0x3c')]);_0x52c99d[_0x51bf('0x42')]=_[_0x51bf('0x41')](_0x14c361[_0x51bf('0x42')]);_0x52c99d['filters']=_['intersection'](_0x52c99d[_0x51bf('0x3f')],_0x52c99d[_0x51bf('0x42')]);_0x2bec7c[_0x51bf('0x44')]=_[_0x51bf('0x43')](_0x52c99d[_0x51bf('0x3f')],qs[_0x51bf('0x45')](_0x14c361[_0x51bf('0x42')][_0x51bf('0x45')]));_0x2bec7c[_0x51bf('0x44')]=_0x2bec7c['attributes']['length']?_0x2bec7c['attributes']:_0x52c99d[_0x51bf('0x3f')];if(_0x14c361[_0x51bf('0x42')][_0x51bf('0x51')]){_0x2bec7c['include']=[{'all':!![]}];}_0x2bec7c=_[_0x51bf('0x4d')]({},_0x2bec7c,_0x14c361['options']);return db['ChatQueue'][_0x51bf('0x56')](_0x2bec7c)['then'](handleEntityNotFound(_0x297b5f,null))[_0x51bf('0x21')](respondWithResult(_0x297b5f,null))[_0x51bf('0x53')](handleError(_0x297b5f,null));};exports[_0x51bf('0x57')]=function(_0x1fb31f,_0x22c53b){return db[_0x51bf('0x3b')][_0x51bf('0x57')](_0x1fb31f['body'],{})[_0x51bf('0x21')](function(_0x76114){var _0x45fc09=_0x1fb31f['user'][_0x51bf('0x35')]({'plain':!![]});if(!_0x45fc09)throw new Error(_0x51bf('0x58'));if(_0x45fc09[_0x51bf('0x59')]==='user'){var _0x315b13=_0x76114['get']({'plain':!![]});var _0x7da5db='ChatQueues';return db['UserProfileSection'][_0x51bf('0x56')]({'where':{'name':_0x7da5db,'userProfileId':_0x45fc09['userProfileId']},'raw':!![]})['then'](function(_0x49b189){if(_0x49b189&&_0x49b189['autoAssociation']===0x0){return db['UserProfileResource'][_0x51bf('0x57')]({'name':_0x315b13[_0x51bf('0x39')],'resourceId':_0x315b13['id'],'type':_0x49b189[_0x51bf('0x39')],'sectionId':_0x49b189['id']},{})[_0x51bf('0x21')](function(){return _0x76114;});}else{return _0x76114;}})['catch'](function(_0x39a8c6){logger['error'](_0x51bf('0x5a'),_0x39a8c6);throw _0x39a8c6;});}return _0x76114;})[_0x51bf('0x21')](respondWithResult(_0x22c53b,0xc9))[_0x51bf('0x53')](handleError(_0x22c53b,null));};exports[_0x51bf('0x5b')]=function(_0x1dbf5e,_0x47bb29){if(_0x1dbf5e['body']['id']){delete _0x1dbf5e[_0x51bf('0x5c')]['id'];}return db[_0x51bf('0x3b')][_0x51bf('0x56')]({'where':{'id':_0x1dbf5e['params']['id']}})['then'](handleEntityNotFound(_0x47bb29,null))[_0x51bf('0x21')](saveUpdates(_0x1dbf5e[_0x51bf('0x5c')],null))[_0x51bf('0x21')](respondWithResult(_0x47bb29,null))[_0x51bf('0x53')](handleError(_0x47bb29,null));};exports[_0x51bf('0x34')]=function(_0x33d2d2,_0xfb7560){return db[_0x51bf('0x3b')]['find']({'where':{'id':_0x33d2d2[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0xfb7560,null))[_0x51bf('0x21')](removeEntity(_0xfb7560,null))[_0x51bf('0x53')](handleError(_0xfb7560,null));};exports[_0x51bf('0x5d')]=function(_0x2149e3,_0x54dfcb){return db['ChatQueue'][_0x51bf('0x5d')]()[_0x51bf('0x21')](respondWithResult(_0x54dfcb,null))[_0x51bf('0x53')](handleError(_0x54dfcb,null));};exports[_0x51bf('0x5e')]=function(_0x222533,_0x3a8808,_0x1fabc2){var _0x2ff63d={'raw':!![],'where':{}},_0xb580b0={},_0x341696;return db[_0x51bf('0x3b')]['findOne']({'where':{'id':_0x222533[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0x3a8808,null))[_0x51bf('0x21')](function(_0x46ff53){if(_0x46ff53){_0x341696=_0x46ff53[_0x51bf('0x35')]({'plain':!![]});_0xb580b0[_0x51bf('0x3f')]=_['keys'](db[_0x51bf('0x5f')][_0x51bf('0x3c')]);_0xb580b0['query']=_[_0x51bf('0x41')](_0x222533['query']);_0xb580b0[_0x51bf('0x49')]=_['intersection'](_0xb580b0[_0x51bf('0x3f')],_0xb580b0[_0x51bf('0x42')]);_0x2ff63d[_0x51bf('0x44')]=_[_0x51bf('0x43')](_0xb580b0[_0x51bf('0x3f')],qs[_0x51bf('0x45')](_0x222533[_0x51bf('0x42')][_0x51bf('0x45')]));_0x2ff63d[_0x51bf('0x44')]=_0x2ff63d['attributes'][_0x51bf('0x46')]?_0x2ff63d[_0x51bf('0x44')]:_0xb580b0[_0x51bf('0x3f')];if(!_0x222533['query'][_0x51bf('0x60')](_0x51bf('0x47'))){_0x2ff63d['limit']=qs[_0x51bf('0x2f')](_0x222533[_0x51bf('0x42')]['limit']);_0x2ff63d[_0x51bf('0x2e')]=qs[_0x51bf('0x2e')](_0x222533[_0x51bf('0x42')]['offset']);}_0x2ff63d[_0x51bf('0x61')]=qs[_0x51bf('0x48')](_0x222533[_0x51bf('0x42')][_0x51bf('0x48')]);_0x2ff63d[_0x51bf('0x4c')]=qs[_0x51bf('0x49')](_[_0x51bf('0x4a')](_0x222533[_0x51bf('0x42')],_0xb580b0['filters']));_0x2ff63d['where'][_0x51bf('0x62')]=_0x46ff53['id'];if(_0x222533[_0x51bf('0x42')][_0x51bf('0x4b')]){_0x2ff63d[_0x51bf('0x4c')]=_['merge'](_0x2ff63d[_0x51bf('0x4c')],{'$or':_[_0x51bf('0x40')](_0x2ff63d[_0x51bf('0x44')],function(_0xa49246){var _0x376855={};_0x376855[_0xa49246]={'$like':'%'+_0x222533[_0x51bf('0x42')][_0x51bf('0x4b')]+'%'};return _0x376855;})});}_0x2ff63d=_[_0x51bf('0x4d')]({},_0x2ff63d,_0x222533[_0x51bf('0x4f')]);return db['UserChatQueue'][_0x51bf('0x63')](_0x2ff63d);}})[_0x51bf('0x21')](function(_0x58a885){if(_0x58a885){return db[_0x51bf('0x64')][_0x51bf('0x65')]({'where':{'id':_[_0x51bf('0x40')](_0x58a885,_0x51bf('0x66')),'role':_0x51bf('0x67')},'attributes':['id',_0x51bf('0x39'),_0x51bf('0x68'),_0x51bf('0x69'),'createdAt']});}})[_0x51bf('0x21')](function(_0x4c5123){if(_0x4c5123){return{'count':_0x4c5123['count'],'rows':_['map'](_0x4c5123[_0x51bf('0x52')],function(_0xc3acbb){return{'membername':_0xc3acbb['name'],'UserId':_0xc3acbb['id'],'queue_name':_0x341696[_0x51bf('0x39')],'ChatQueueId':_0x341696['id'],'interface':util[_0x51bf('0x6a')](_0x51bf('0x6b'),_0x51bf('0x6c'),_0xc3acbb[_0x51bf('0x39')]),'penalty':0x0,'paused':_0xc3acbb[_0x51bf('0x68')],'createdAt':_0xc3acbb[_0x51bf('0x6d')],'updatedAt':_0xc3acbb[_0x51bf('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x3a8808,_0x2ff63d))[_0x51bf('0x53')](handleError(_0x3a8808,null));};exports['getTeams']=function(_0x17db26,_0x221642,_0x36c53c){var _0x4fe1f6={};var _0x37c87a={};var _0x47db23;var _0x4cb195;return db[_0x51bf('0x3b')][_0x51bf('0x6e')]({'where':{'id':_0x17db26[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0x221642,null))[_0x51bf('0x21')](function(_0xe3125b){if(_0xe3125b){_0x47db23=_0xe3125b;_0x37c87a[_0x51bf('0x3f')]=_['keys'](db[_0x51bf('0x6f')][_0x51bf('0x3c')]);_0x37c87a[_0x51bf('0x42')]=_[_0x51bf('0x41')](_0x17db26[_0x51bf('0x42')]);_0x37c87a[_0x51bf('0x49')]=_[_0x51bf('0x43')](_0x37c87a['model'],_0x37c87a[_0x51bf('0x42')]);_0x4fe1f6[_0x51bf('0x44')]=_[_0x51bf('0x43')](_0x37c87a[_0x51bf('0x3f')],qs[_0x51bf('0x45')](_0x17db26['query'][_0x51bf('0x45')]));_0x4fe1f6[_0x51bf('0x44')]=_0x4fe1f6['attributes'][_0x51bf('0x46')]?_0x4fe1f6[_0x51bf('0x44')]:_0x37c87a[_0x51bf('0x3f')];_0x4fe1f6['order']=qs[_0x51bf('0x48')](_0x17db26['query']['sort']);_0x4fe1f6[_0x51bf('0x4c')]=qs[_0x51bf('0x49')](_[_0x51bf('0x4a')](_0x17db26['query'],_0x37c87a['filters']));if(_0x17db26[_0x51bf('0x42')]['filter']){_0x4fe1f6[_0x51bf('0x4c')]=_[_0x51bf('0x4d')](_0x4fe1f6[_0x51bf('0x4c')],{'$or':_[_0x51bf('0x40')](_0x4fe1f6['attributes'],function(_0x19d50d){var _0x442388={};_0x442388[_0x19d50d]={'$like':'%'+_0x17db26[_0x51bf('0x42')]['filter']+'%'};return _0x442388;})});}_0x4fe1f6=_[_0x51bf('0x4d')]({},_0x4fe1f6,_0x17db26[_0x51bf('0x4f')]);return _0x47db23[_0x51bf('0x70')](_0x4fe1f6);}})['then'](function(_0x56dd70){if(_0x56dd70){_0x4cb195=_0x56dd70[_0x51bf('0x46')];if(!_0x17db26[_0x51bf('0x42')][_0x51bf('0x60')](_0x51bf('0x47'))){_0x4fe1f6[_0x51bf('0x2f')]=qs['limit'](_0x17db26['query']['limit']);_0x4fe1f6[_0x51bf('0x2e')]=qs['offset'](_0x17db26[_0x51bf('0x42')][_0x51bf('0x2e')]);}return _0x47db23['getTeams'](_0x4fe1f6);}})[_0x51bf('0x21')](function(_0x229627){if(_0x229627){return _0x229627?{'count':_0x4cb195,'rows':_0x229627}:null;}})['then'](respondWithResult(_0x221642,null))[_0x51bf('0x53')](handleError(_0x221642,null));};exports[_0x51bf('0x71')]=function(_0x3609d5,_0x406e98,_0x170de5){var _0x1acb31=_0x3609d5['body'][_0x51bf('0x72')];return db[_0x51bf('0x6f')][_0x51bf('0x63')]({'where':{'id':_0x1acb31},'attributes':['id'],'include':[{'model':db[_0x51bf('0x64')],'as':_0x51bf('0x73'),'attributes':['id',_0x51bf('0x39'),_0x51bf('0x74'),_0x51bf('0x75'),'interface'],'raw':!![]}]})['then'](function(_0x479f91){if(_0x479f91){var _0x3c1670=_['flatMap'](_0x479f91,function(_0x13d2dd){var _0x3b7de4=_0x13d2dd[_0x51bf('0x35')]({'plain':!![]});return _0x3b7de4['Agents'];});return db[_0x51bf('0x3b')]['find']({'where':{'id':_0x3609d5['params']['id']}})[_0x51bf('0x21')](function(_0x53b89a){return db[_0x51bf('0x76')]['transaction'](function(_0x2693a0){return _0x53b89a[_0x51bf('0x71')](_0x1acb31,{'transaction':_0x2693a0})[_0x51bf('0x21')](function(){return BPromise[_0x51bf('0x77')](_0x3c1670,function(_0x5c6643){return db[_0x51bf('0x5f')]['findOrCreate']({'where':{'UserId':_0x5c6643['id'],'ChatQueueId':_0x3609d5[_0x51bf('0x55')]['id']},'transaction':_0x2693a0});});})[_0x51bf('0x21')](function(){_0x3c1670[_0x51bf('0x78')](function(_0x25c430){socket[_0x51bf('0x79')]('userChatQueue:save',{'UserId':_0x25c430['id'],'ChatQueueId':_0x53b89a['id']});});});});});}})[_0x51bf('0x21')](respondWithStatusCode(_0x406e98,null))[_0x51bf('0x53')](handleError(_0x406e98,null));};exports['removeTeams']=function(_0x3e6fdd,_0x92825,_0x520437){return db[_0x51bf('0x6f')][_0x51bf('0x63')]({'where':{'id':_0x3e6fdd[_0x51bf('0x42')]['ids']},'attributes':['id'],'include':[{'model':db[_0x51bf('0x64')],'as':_0x51bf('0x73'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x92825,null))[_0x51bf('0x21')](function(_0x33de7f){var _0x53a3cd=_[_0x51bf('0x40')](_0x33de7f,'id');var _0x53850f=[];var _0x42f78f=[];var _0x541481=squel['select']();_0x541481['field'](_0x51bf('0x7a'))[_0x51bf('0x7b')](_0x51bf('0x7c'),'tq')[_0x51bf('0x7d')](_0x51bf('0x7e'),'ut',_0x51bf('0x7f'))[_0x51bf('0x4c')](_0x51bf('0x80'),_0x3e6fdd[_0x51bf('0x55')]['id']);for(var _0x15b73f=0x0;_0x15b73f<_0x33de7f[_0x51bf('0x46')];_0x15b73f+=0x1){let _0x225a7e=_0x33de7f[_0x15b73f];for(var _0x163c34=0x0;_0x163c34<_0x225a7e[_0x51bf('0x73')][_0x51bf('0x46')];_0x163c34+=0x1){let _0x51754d=_0x225a7e[_0x51bf('0x73')][_0x163c34];var _0x1d1f1b=_0x541481[_0x51bf('0x81')]();_0x1d1f1b[_0x51bf('0x4c')]('ut.UserId\x20=\x20?',_0x51754d['id']);_0x42f78f[_0x51bf('0x82')](db[_0x51bf('0x76')][_0x51bf('0x42')](_0x1d1f1b[_0x51bf('0x83')](),{'type':db[_0x51bf('0x76')][_0x51bf('0x84')][_0x51bf('0x85')]})[_0x51bf('0x21')](function(_0x5c3e1e){if(_0x5c3e1e[_0x51bf('0x46')]===0x1){return _0x51754d['id'];}else{var _0x37d9b6=_['every'](_[_0x51bf('0x40')](_0x5c3e1e,'TeamId'),function(_0x1717bf){return _[_0x51bf('0x86')](_0x53a3cd,_0x1717bf);});if(_0x37d9b6){return _0x51754d['id'];}}}));}}return BPromise[_0x51bf('0x87')](_0x42f78f)[_0x51bf('0x21')](function(_0x134936){_0x53850f=_(_0x53850f)[_0x51bf('0x88')](_0x134936)[_0x51bf('0x89')]()[_0x51bf('0x8a')]();return db[_0x51bf('0x3b')][_0x51bf('0x56')]({'where':{'id':_0x3e6fdd[_0x51bf('0x55')]['id']}})['then'](function(_0x558f98){return db[_0x51bf('0x76')][_0x51bf('0x8b')](function(_0x1c9fc6){return _0x558f98['removeTeams'](_0x3e6fdd[_0x51bf('0x42')][_0x51bf('0x72')],{'transaction':_0x1c9fc6})[_0x51bf('0x21')](function(){if(!_[_0x51bf('0x8c')](_0x53850f)){return _0x558f98[_0x51bf('0x8d')](_0x53850f,{'transaction':_0x1c9fc6});}})[_0x51bf('0x21')](function(){_0x53850f[_0x51bf('0x78')](function(_0x2930a2){socket[_0x51bf('0x79')](_0x51bf('0x8e'),{'UserId':_0x2930a2,'ChatQueueId':_0x558f98['id']});});});});});});})[_0x51bf('0x21')](respondWithStatusCode(_0x92825,null))['catch'](handleError(_0x92825,null));};exports[_0x51bf('0x8f')]=function(_0x216d70,_0x3553e6,_0x194f93){return db['ChatQueue'][_0x51bf('0x56')]({'where':{'id':_0x216d70[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0x3553e6,null))[_0x51bf('0x21')](function(_0x30f865){if(_0x30f865){return _0x30f865[_0x51bf('0x8f')](_0x216d70[_0x51bf('0x5c')][_0x51bf('0x72')],_[_0x51bf('0x90')](_0x216d70[_0x51bf('0x5c')],[_0x51bf('0x72'),'id'])||{})[_0x51bf('0x91')](function(_0xb01c78){for(var _0x176ed8=0x0;_0x176ed8<_0x216d70['body'][_0x51bf('0x72')][_0x51bf('0x46')];_0x176ed8+=0x1){socket[_0x51bf('0x79')](_0x51bf('0x92'),{'UserId':_0x216d70['body']['ids'][_0x176ed8],'ChatQueueId':_0x216d70[_0x51bf('0x55')]['id']});}return _0xb01c78;});}})[_0x51bf('0x21')](respondWithResult(_0x3553e6,null))[_0x51bf('0x53')](handleError(_0x3553e6,null));};exports[_0x51bf('0x8d')]=function(_0x41b7ef,_0x698055,_0x235c93){return db[_0x51bf('0x3b')][_0x51bf('0x56')]({'where':{'id':_0x41b7ef[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0x698055,null))[_0x51bf('0x21')](function(_0x3cf1a0){if(_0x3cf1a0){return _0x3cf1a0[_0x51bf('0x8d')](_0x41b7ef[_0x51bf('0x42')]['ids'])[_0x51bf('0x21')](function(){if(_['isArray'](_0x41b7ef[_0x51bf('0x42')][_0x51bf('0x72')])){for(var _0x1ba012=0x0;_0x1ba012<_0x41b7ef[_0x51bf('0x42')][_0x51bf('0x72')]['length'];_0x1ba012+=0x1){socket[_0x51bf('0x79')](_0x51bf('0x8e'),{'UserId':Number(_0x41b7ef[_0x51bf('0x42')][_0x51bf('0x72')][_0x1ba012]),'ChatQueueId':Number(_0x41b7ef[_0x51bf('0x55')]['id'])});}}else{socket['emit'](_0x51bf('0x8e'),{'UserId':Number(_0x41b7ef['query'][_0x51bf('0x72')]),'ChatQueueId':Number(_0x41b7ef[_0x51bf('0x55')]['id'])});}});}})[_0x51bf('0x21')](respondWithStatusCode(_0x698055,null))['catch'](handleError(_0x698055,null));};exports[_0x51bf('0x93')]=function(_0x7a2566,_0xc52188,_0x2f900f){var _0x28e89e={};var _0x1a85d3={};var _0x34a90b;var _0x1f08fd;return db['ChatQueue'][_0x51bf('0x6e')]({'where':{'id':_0x7a2566[_0x51bf('0x55')]['id']}})[_0x51bf('0x21')](handleEntityNotFound(_0xc52188,null))[_0x51bf('0x21')](function(_0x204c28){if(_0x204c28){_0x34a90b=_0x204c28;_0x1a85d3['model']=_[_0x51bf('0x41')](db['User'][_0x51bf('0x3c')]);_0x1a85d3[_0x51bf('0x42')]=_[_0x51bf('0x41')](_0x7a2566['query']);_0x1a85d3[_0x51bf('0x49')]=_[_0x51bf('0x43')](_0x1a85d3[_0x51bf('0x3f')],_0x1a85d3[_0x51bf('0x42')]);_0x28e89e[_0x51bf('0x44')]=_[_0x51bf('0x43')](_0x1a85d3[_0x51bf('0x3f')],qs['fields'](_0x7a2566[_0x51bf('0x42')][_0x51bf('0x45')]));_0x28e89e[_0x51bf('0x44')]=_0x28e89e[_0x51bf('0x44')][_0x51bf('0x46')]?_0x28e89e[_0x51bf('0x44')]:_0x1a85d3['model'];_0x28e89e[_0x51bf('0x61')]=qs[_0x51bf('0x48')](_0x7a2566[_0x51bf('0x42')][_0x51bf('0x48')]);_0x28e89e[_0x51bf('0x4c')]=qs[_0x51bf('0x49')](_[_0x51bf('0x4a')](_0x7a2566[_0x51bf('0x42')],_0x1a85d3['filters']));if(_0x7a2566[_0x51bf('0x42')][_0x51bf('0x4b')]){_0x28e89e['where']=_[_0x51bf('0x4d')](_0x28e89e[_0x51bf('0x4c')],{'$or':_[_0x51bf('0x40')](_0x28e89e[_0x51bf('0x44')],function(_0x3fd4e2){var _0x4a4829={};_0x4a4829[_0x3fd4e2]={'$like':'%'+_0x7a2566['query'][_0x51bf('0x4b')]+'%'};return _0x4a4829;})});}_0x28e89e=_[_0x51bf('0x4d')]({},_0x28e89e,_0x7a2566['options']);return _0x34a90b[_0x51bf('0x93')](_0x28e89e);}})['then'](function(_0x322f9d){if(_0x322f9d){_0x1f08fd=_0x322f9d[_0x51bf('0x46')];if(!_0x7a2566[_0x51bf('0x42')]['hasOwnProperty'](_0x51bf('0x47'))){_0x28e89e[_0x51bf('0x2f')]=qs[_0x51bf('0x2f')](_0x7a2566['query']['limit']);_0x28e89e['offset']=qs[_0x51bf('0x2e')](_0x7a2566[_0x51bf('0x42')][_0x51bf('0x2e')]);}return _0x34a90b[_0x51bf('0x93')](_0x28e89e);}})[_0x51bf('0x21')](function(_0x36cdcb){if(_0x36cdcb){return _0x36cdcb?{'count':_0x1f08fd,'rows':_0x36cdcb}:null;}})[_0x51bf('0x21')](respondWithResult(_0xc52188,null))[_0x51bf('0x53')](handleError(_0xc52188,null));};