7349ddf74e2e94fa181ec1cd9c25d24b93c53d54
[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 _0xc667=['update','destroy','get','ChatQueues','UserProfileResource','stack','name','index','map','ChatQueue','rawAttributes','fieldName','type','key','query','keys','filters','model','fields','attributes','length','order','sort','where','merge','filter','options','include','findAll','rows','params','intersection','includeAll','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','findOne','UserChatQueue','hasOwnProperty','nolimit','pick','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','SIP','chatPause','getTeams','Team','ids','online','voicePause','interface','Agents','transaction','addTeams','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','every','includes','union','compact','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','request','then','info','debug','error','code','ChatQueue,\x20%s,\x20%s','message','result','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save'];(function(_0x3357c4,_0xffb532){var _0x2c9a62=function(_0x317e58){while(--_0x317e58){_0x3357c4['push'](_0x3357c4['shift']());}};_0x2c9a62(++_0xffb532);}(_0xc667,0x66));var _0x7c66=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xc667[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x7c66('0x0'));var rimraf=require(_0x7c66('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7c66('0x2'));var moment=require(_0x7c66('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x7c66('0x4'));var util=require(_0x7c66('0x5'));var path=require(_0x7c66('0x6'));var sox=require(_0x7c66('0x7'));var csv=require(_0x7c66('0x8'));var ejs=require(_0x7c66('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7c66('0xa'));var squel=require('squel');var crypto=require(_0x7c66('0xb'));var jsforce=require(_0x7c66('0xc'));var deskjs=require(_0x7c66('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7c66('0xe'));var Papa=require(_0x7c66('0xf'));var Redis=require(_0x7c66('0x10'));var authService=require(_0x7c66('0x11'));var qs=require(_0x7c66('0x12'));var as=require(_0x7c66('0x13'));var hardwareService=require(_0x7c66('0x14'));var logger=require(_0x7c66('0x15'))('api');var utils=require(_0x7c66('0x16'));var config=require(_0x7c66('0x17'));var licenseUtil=require(_0x7c66('0x18'));var db=require(_0x7c66('0x19'))['db'];config[_0x7c66('0x1a')]=_['defaults'](config[_0x7c66('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x7c66('0x1b'))(new Redis(config[_0x7c66('0x1a')]));require(_0x7c66('0x1c'))[_0x7c66('0x1d')](socket);var jayson=require(_0x7c66('0x1e'));var client=jayson[_0x7c66('0x1f')][_0x7c66('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x1e9315,_0x23dccf,_0x4f4da8,_0x27f9b4){return new BPromise(function(_0x2e41e8,_0x2e8d57){var _0x26fe44=_0x27f9b4||client;return _0x26fe44[_0x7c66('0x21')](_0x1e9315,_0x4f4da8)[_0x7c66('0x22')](function(_0x5b7965){logger[_0x7c66('0x23')]('ChatQueue,\x20%s,\x20%s',_0x23dccf,'request\x20sent');logger[_0x7c66('0x24')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x23dccf,'request\x20sent',JSON['stringify'](_0x5b7965));if(_0x5b7965[_0x7c66('0x25')]){if(_0x5b7965[_0x7c66('0x25')][_0x7c66('0x26')]===0x1f4){logger[_0x7c66('0x25')](_0x7c66('0x27'),_0x23dccf,_0x5b7965[_0x7c66('0x25')][_0x7c66('0x28')]);return _0x2e8d57(_0x5b7965[_0x7c66('0x25')][_0x7c66('0x28')]);}logger[_0x7c66('0x25')]('ChatQueue,\x20%s,\x20%s',_0x23dccf,_0x5b7965[_0x7c66('0x25')][_0x7c66('0x28')]);return _0x2e41e8(_0x5b7965[_0x7c66('0x25')][_0x7c66('0x28')]);}else{logger[_0x7c66('0x23')]('ChatQueue,\x20%s,\x20%s',_0x23dccf,'request\x20sent');_0x2e41e8(_0x5b7965[_0x7c66('0x29')][_0x7c66('0x28')]);}})['catch'](function(_0x3a6510){logger[_0x7c66('0x25')](_0x7c66('0x27'),_0x23dccf,_0x3a6510);_0x2e8d57(_0x3a6510);});});}function respondWithStatusCode(_0x45e187,_0x4e7681){_0x4e7681=_0x4e7681||0xcc;return function(_0x193e2c){if(_0x193e2c){return _0x45e187[_0x7c66('0x2a')](_0x4e7681);}return _0x45e187[_0x7c66('0x2b')](_0x4e7681)[_0x7c66('0x2c')]();};}function respondWithResult(_0x518288,_0x2c452a){_0x2c452a=_0x2c452a||0xc8;return function(_0x4fbcf8){if(_0x4fbcf8){return _0x518288['status'](_0x2c452a)[_0x7c66('0x2d')](_0x4fbcf8);}};}function respondWithFilteredResult(_0x3cdd8a,_0x10fad3){return function(_0xa5aa01){if(_0xa5aa01){var _0x5c641b=typeof _0x10fad3[_0x7c66('0x2e')]===_0x7c66('0x2f')&&typeof _0x10fad3[_0x7c66('0x30')]===_0x7c66('0x2f');var _0x1d8f0b=_0xa5aa01[_0x7c66('0x31')];var _0x4287a8=_0x5c641b?0x0:_0x10fad3[_0x7c66('0x2e')];var _0x23dd8a=_0x5c641b?_0xa5aa01['count']:_0x10fad3[_0x7c66('0x2e')]+_0x10fad3['limit'];var _0x407262;if(_0x23dd8a>=_0x1d8f0b){_0x23dd8a=_0x1d8f0b;_0x407262=0xc8;}else{_0x407262=0xce;}_0x3cdd8a['status'](_0x407262);return _0x3cdd8a[_0x7c66('0x32')]('Content-Range',_0x4287a8+'-'+_0x23dd8a+'/'+_0x1d8f0b)[_0x7c66('0x2d')](_0xa5aa01);}return null;};}function patchUpdates(_0x3ba427){return function(_0x2ec486){try{jsonpatch[_0x7c66('0x33')](_0x2ec486,_0x3ba427,!![]);}catch(_0x56cd2e){return BPromise[_0x7c66('0x34')](_0x56cd2e);}return _0x2ec486[_0x7c66('0x35')]();};}function saveUpdates(_0x219006,_0x53169a){return function(_0x123a91){if(_0x123a91){return _0x123a91[_0x7c66('0x36')](_0x219006)[_0x7c66('0x22')](function(_0x4eef3e){return _0x4eef3e;});}return null;};}function removeEntity(_0x127b4b,_0x359f98){return function(_0x3a64c3){if(_0x3a64c3){return _0x3a64c3[_0x7c66('0x37')]()[_0x7c66('0x22')](function(){var _0x43cd95=_0x3a64c3[_0x7c66('0x38')]({'plain':!![]});var _0x5bca7f=_0x7c66('0x39');return db[_0x7c66('0x3a')][_0x7c66('0x37')]({'where':{'type':_0x5bca7f,'resourceId':_0x43cd95['id']}})[_0x7c66('0x22')](function(){return _0x3a64c3;});})[_0x7c66('0x22')](function(){_0x127b4b['status'](0xcc)[_0x7c66('0x2c')]();});}};}function handleEntityNotFound(_0x5213ac,_0x1dd4e8){return function(_0x38b560){if(!_0x38b560){_0x5213ac['sendStatus'](0x194);}return _0x38b560;};}function handleError(_0x3a645f,_0x25c7d6){_0x25c7d6=_0x25c7d6||0x1f4;return function(_0x33e1ef){logger[_0x7c66('0x25')](_0x33e1ef[_0x7c66('0x3b')]);if(_0x33e1ef['name']){delete _0x33e1ef[_0x7c66('0x3c')];}_0x3a645f['status'](_0x25c7d6)['send'](_0x33e1ef);};}exports[_0x7c66('0x3d')]=function(_0x879892,_0x20f81c){var _0x5685ba={},_0x1c757d={},_0x1c286e={'count':0x0,'rows':[]};var _0x32d411=_[_0x7c66('0x3e')](db[_0x7c66('0x3f')][_0x7c66('0x40')],function(_0x2e95aa){return{'name':_0x2e95aa[_0x7c66('0x41')],'type':_0x2e95aa[_0x7c66('0x42')][_0x7c66('0x43')]};});_0x1c757d['model']=_[_0x7c66('0x3e')](_0x32d411,'name');_0x1c757d[_0x7c66('0x44')]=_[_0x7c66('0x45')](_0x879892['query']);_0x1c757d[_0x7c66('0x46')]=_['intersection'](_0x1c757d[_0x7c66('0x47')],_0x1c757d['query']);_0x5685ba['attributes']=_['intersection'](_0x1c757d[_0x7c66('0x47')],qs[_0x7c66('0x48')](_0x879892[_0x7c66('0x44')]['fields']));_0x5685ba['attributes']=_0x5685ba[_0x7c66('0x49')][_0x7c66('0x4a')]?_0x5685ba[_0x7c66('0x49')]:_0x1c757d['model'];if(!_0x879892[_0x7c66('0x44')]['hasOwnProperty']('nolimit')){_0x5685ba[_0x7c66('0x30')]=qs[_0x7c66('0x30')](_0x879892['query'][_0x7c66('0x30')]);_0x5685ba[_0x7c66('0x2e')]=qs[_0x7c66('0x2e')](_0x879892[_0x7c66('0x44')]['offset']);}_0x5685ba[_0x7c66('0x4b')]=qs['sort'](_0x879892[_0x7c66('0x44')][_0x7c66('0x4c')]);_0x5685ba[_0x7c66('0x4d')]=qs[_0x7c66('0x46')](_['pick'](_0x879892[_0x7c66('0x44')],_0x1c757d[_0x7c66('0x46')]),_0x32d411);if(_0x879892[_0x7c66('0x44')]['filter']){_0x5685ba[_0x7c66('0x4d')]=_[_0x7c66('0x4e')](_0x5685ba[_0x7c66('0x4d')],{'$or':_['map'](_0x32d411,function(_0x4b1e4f){if(_0x4b1e4f['type']!=='VIRTUAL'){var _0x1bcca2={};_0x1bcca2[_0x4b1e4f['name']]={'$like':'%'+_0x879892[_0x7c66('0x44')][_0x7c66('0x4f')]+'%'};return _0x1bcca2;}})});}_0x5685ba=_[_0x7c66('0x4e')]({},_0x5685ba,_0x879892[_0x7c66('0x50')]);var _0x154bc4={'where':_0x5685ba[_0x7c66('0x4d')]};return db['ChatQueue'][_0x7c66('0x31')](_0x154bc4)['then'](function(_0x13552c){_0x1c286e[_0x7c66('0x31')]=_0x13552c;if(_0x879892[_0x7c66('0x44')]['includeAll']){_0x5685ba[_0x7c66('0x51')]=[{'all':!![]}];}return db[_0x7c66('0x3f')][_0x7c66('0x52')](_0x5685ba);})['then'](function(_0x20f5d2){_0x1c286e[_0x7c66('0x53')]=_0x20f5d2;return _0x1c286e;})['then'](respondWithFilteredResult(_0x20f81c,_0x5685ba))['catch'](handleError(_0x20f81c,null));};exports['show']=function(_0x10ea50,_0x5eba9b){var _0x5d12e1={'raw':!![],'where':{'id':_0x10ea50[_0x7c66('0x54')]['id']}},_0x481e3e={};_0x481e3e[_0x7c66('0x47')]=_[_0x7c66('0x45')](db[_0x7c66('0x3f')][_0x7c66('0x40')]);_0x481e3e['query']=_[_0x7c66('0x45')](_0x10ea50[_0x7c66('0x44')]);_0x481e3e['filters']=_[_0x7c66('0x55')](_0x481e3e[_0x7c66('0x47')],_0x481e3e[_0x7c66('0x44')]);_0x5d12e1[_0x7c66('0x49')]=_[_0x7c66('0x55')](_0x481e3e[_0x7c66('0x47')],qs['fields'](_0x10ea50[_0x7c66('0x44')]['fields']));_0x5d12e1[_0x7c66('0x49')]=_0x5d12e1['attributes'][_0x7c66('0x4a')]?_0x5d12e1[_0x7c66('0x49')]:_0x481e3e[_0x7c66('0x47')];if(_0x10ea50[_0x7c66('0x44')][_0x7c66('0x56')]){_0x5d12e1['include']=[{'all':!![]}];}_0x5d12e1=_['merge']({},_0x5d12e1,_0x10ea50[_0x7c66('0x50')]);return db['ChatQueue']['find'](_0x5d12e1)['then'](handleEntityNotFound(_0x5eba9b,null))[_0x7c66('0x22')](respondWithResult(_0x5eba9b,null))[_0x7c66('0x57')](handleError(_0x5eba9b,null));};exports[_0x7c66('0x58')]=function(_0x28572f,_0xea27f){return db[_0x7c66('0x3f')][_0x7c66('0x58')](_0x28572f[_0x7c66('0x59')],{})['then'](function(_0x386160){var _0x4ac478=_0x28572f[_0x7c66('0x5a')][_0x7c66('0x38')]({'plain':!![]});if(!_0x4ac478)throw new Error(_0x7c66('0x5b'));if(_0x4ac478[_0x7c66('0x5c')]===_0x7c66('0x5a')){var _0x4751de=_0x386160['get']({'plain':!![]});var _0x78f201=_0x7c66('0x39');return db[_0x7c66('0x5d')][_0x7c66('0x5e')]({'where':{'name':_0x78f201,'userProfileId':_0x4ac478['userProfileId']},'raw':!![]})[_0x7c66('0x22')](function(_0x3a09a8){if(_0x3a09a8&&_0x3a09a8[_0x7c66('0x5f')]===0x0){return db[_0x7c66('0x3a')][_0x7c66('0x58')]({'name':_0x4751de[_0x7c66('0x3c')],'resourceId':_0x4751de['id'],'type':_0x3a09a8[_0x7c66('0x3c')],'sectionId':_0x3a09a8['id']},{})[_0x7c66('0x22')](function(){return _0x386160;});}else{return _0x386160;}})[_0x7c66('0x57')](function(_0x57e39e){logger[_0x7c66('0x25')](_0x7c66('0x60'),_0x57e39e);throw _0x57e39e;});}return _0x386160;})[_0x7c66('0x22')](respondWithResult(_0xea27f,0xc9))[_0x7c66('0x57')](handleError(_0xea27f,null));};exports['update']=function(_0x1cd2a5,_0x3981b0){if(_0x1cd2a5[_0x7c66('0x59')]['id']){delete _0x1cd2a5['body']['id'];}return db[_0x7c66('0x3f')]['find']({'where':{'id':_0x1cd2a5['params']['id']}})[_0x7c66('0x22')](handleEntityNotFound(_0x3981b0,null))['then'](saveUpdates(_0x1cd2a5[_0x7c66('0x59')],null))[_0x7c66('0x22')](respondWithResult(_0x3981b0,null))[_0x7c66('0x57')](handleError(_0x3981b0,null));};exports[_0x7c66('0x37')]=function(_0x389c67,_0x3c4879){return db[_0x7c66('0x3f')]['find']({'where':{'id':_0x389c67['params']['id']}})[_0x7c66('0x22')](handleEntityNotFound(_0x3c4879,null))[_0x7c66('0x22')](removeEntity(_0x3c4879,null))[_0x7c66('0x57')](handleError(_0x3c4879,null));};exports['describe']=function(_0x5d28e8,_0x4782e9){return db['ChatQueue'][_0x7c66('0x61')]()['then'](respondWithResult(_0x4782e9,null))[_0x7c66('0x57')](handleError(_0x4782e9,null));};exports['getMembers']=function(_0x1030d8,_0x558803,_0x4ea5ee){var _0x2fa63d={'raw':!![],'where':{}},_0x275d40={},_0x16267d;return db[_0x7c66('0x3f')][_0x7c66('0x62')]({'where':{'id':_0x1030d8[_0x7c66('0x54')]['id']}})['then'](handleEntityNotFound(_0x558803,null))[_0x7c66('0x22')](function(_0x8de73b){if(_0x8de73b){_0x16267d=_0x8de73b[_0x7c66('0x38')]({'plain':!![]});_0x275d40[_0x7c66('0x47')]=_[_0x7c66('0x45')](db[_0x7c66('0x63')]['rawAttributes']);_0x275d40[_0x7c66('0x44')]=_[_0x7c66('0x45')](_0x1030d8[_0x7c66('0x44')]);_0x275d40['filters']=_[_0x7c66('0x55')](_0x275d40[_0x7c66('0x47')],_0x275d40[_0x7c66('0x44')]);_0x2fa63d['attributes']=_[_0x7c66('0x55')](_0x275d40[_0x7c66('0x47')],qs[_0x7c66('0x48')](_0x1030d8['query'][_0x7c66('0x48')]));_0x2fa63d[_0x7c66('0x49')]=_0x2fa63d[_0x7c66('0x49')][_0x7c66('0x4a')]?_0x2fa63d[_0x7c66('0x49')]:_0x275d40[_0x7c66('0x47')];if(!_0x1030d8[_0x7c66('0x44')][_0x7c66('0x64')](_0x7c66('0x65'))){_0x2fa63d[_0x7c66('0x30')]=qs[_0x7c66('0x30')](_0x1030d8[_0x7c66('0x44')][_0x7c66('0x30')]);_0x2fa63d[_0x7c66('0x2e')]=qs[_0x7c66('0x2e')](_0x1030d8['query'][_0x7c66('0x2e')]);}_0x2fa63d['order']=qs[_0x7c66('0x4c')](_0x1030d8['query'][_0x7c66('0x4c')]);_0x2fa63d[_0x7c66('0x4d')]=qs['filters'](_[_0x7c66('0x66')](_0x1030d8[_0x7c66('0x44')],_0x275d40[_0x7c66('0x46')]));_0x2fa63d[_0x7c66('0x4d')]['ChatQueueId']=_0x8de73b['id'];if(_0x1030d8[_0x7c66('0x44')][_0x7c66('0x4f')]){_0x2fa63d[_0x7c66('0x4d')]=_[_0x7c66('0x4e')](_0x2fa63d[_0x7c66('0x4d')],{'$or':_['map'](_0x2fa63d[_0x7c66('0x49')],function(_0x2eece6){var _0x538674={};_0x538674[_0x2eece6]={'$like':'%'+_0x1030d8[_0x7c66('0x44')][_0x7c66('0x4f')]+'%'};return _0x538674;})});}_0x2fa63d=_[_0x7c66('0x4e')]({},_0x2fa63d,_0x1030d8[_0x7c66('0x50')]);return db[_0x7c66('0x63')]['findAll'](_0x2fa63d);}})[_0x7c66('0x22')](function(_0x47cf07){if(_0x47cf07){return db[_0x7c66('0x67')][_0x7c66('0x68')]({'where':{'id':_[_0x7c66('0x3e')](_0x47cf07,_0x7c66('0x69')),'role':_0x7c66('0x6a')},'attributes':['id','name','chatPause',_0x7c66('0x6b'),_0x7c66('0x6c')]});}})[_0x7c66('0x22')](function(_0x4699c4){if(_0x4699c4){return{'count':_0x4699c4[_0x7c66('0x31')],'rows':_[_0x7c66('0x3e')](_0x4699c4[_0x7c66('0x53')],function(_0x35b07b){return{'membername':_0x35b07b[_0x7c66('0x3c')],'UserId':_0x35b07b['id'],'queue_name':_0x16267d[_0x7c66('0x3c')],'ChatQueueId':_0x16267d['id'],'interface':util[_0x7c66('0x6d')](_0x7c66('0x6e'),_0x7c66('0x6f'),_0x35b07b['name']),'penalty':0x0,'paused':_0x35b07b[_0x7c66('0x70')],'createdAt':_0x35b07b[_0x7c66('0x6c')],'updatedAt':_0x35b07b[_0x7c66('0x6b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x7c66('0x22')](respondWithFilteredResult(_0x558803,_0x2fa63d))[_0x7c66('0x57')](handleError(_0x558803,null));};exports[_0x7c66('0x71')]=function(_0x396e51,_0x89b920,_0x34c60d){var _0x3d7f4a={};var _0x29c6c4={};var _0x3d2b4d;var _0x14ae04;return db[_0x7c66('0x3f')]['findOne']({'where':{'id':_0x396e51['params']['id']}})[_0x7c66('0x22')](handleEntityNotFound(_0x89b920,null))[_0x7c66('0x22')](function(_0x548e90){if(_0x548e90){_0x3d2b4d=_0x548e90;_0x29c6c4['model']=_[_0x7c66('0x45')](db[_0x7c66('0x72')]['rawAttributes']);_0x29c6c4['query']=_[_0x7c66('0x45')](_0x396e51[_0x7c66('0x44')]);_0x29c6c4[_0x7c66('0x46')]=_['intersection'](_0x29c6c4['model'],_0x29c6c4[_0x7c66('0x44')]);_0x3d7f4a[_0x7c66('0x49')]=_[_0x7c66('0x55')](_0x29c6c4[_0x7c66('0x47')],qs[_0x7c66('0x48')](_0x396e51[_0x7c66('0x44')][_0x7c66('0x48')]));_0x3d7f4a[_0x7c66('0x49')]=_0x3d7f4a[_0x7c66('0x49')][_0x7c66('0x4a')]?_0x3d7f4a['attributes']:_0x29c6c4[_0x7c66('0x47')];_0x3d7f4a[_0x7c66('0x4b')]=qs[_0x7c66('0x4c')](_0x396e51[_0x7c66('0x44')][_0x7c66('0x4c')]);_0x3d7f4a[_0x7c66('0x4d')]=qs[_0x7c66('0x46')](_[_0x7c66('0x66')](_0x396e51['query'],_0x29c6c4[_0x7c66('0x46')]));if(_0x396e51[_0x7c66('0x44')][_0x7c66('0x4f')]){_0x3d7f4a[_0x7c66('0x4d')]=_[_0x7c66('0x4e')](_0x3d7f4a[_0x7c66('0x4d')],{'$or':_[_0x7c66('0x3e')](_0x3d7f4a[_0x7c66('0x49')],function(_0x154687){var _0x543482={};_0x543482[_0x154687]={'$like':'%'+_0x396e51[_0x7c66('0x44')][_0x7c66('0x4f')]+'%'};return _0x543482;})});}_0x3d7f4a=_['merge']({},_0x3d7f4a,_0x396e51[_0x7c66('0x50')]);return _0x3d2b4d['getTeams'](_0x3d7f4a);}})['then'](function(_0x2ada88){if(_0x2ada88){_0x14ae04=_0x2ada88[_0x7c66('0x4a')];if(!_0x396e51[_0x7c66('0x44')][_0x7c66('0x64')](_0x7c66('0x65'))){_0x3d7f4a['limit']=qs['limit'](_0x396e51['query'][_0x7c66('0x30')]);_0x3d7f4a['offset']=qs['offset'](_0x396e51[_0x7c66('0x44')]['offset']);}return _0x3d2b4d['getTeams'](_0x3d7f4a);}})['then'](function(_0x357070){if(_0x357070){return _0x357070?{'count':_0x14ae04,'rows':_0x357070}:null;}})[_0x7c66('0x22')](respondWithResult(_0x89b920,null))['catch'](handleError(_0x89b920,null));};exports['addTeams']=function(_0x443584,_0x58e477,_0xf60b8a){var _0x469de2=_0x443584[_0x7c66('0x59')][_0x7c66('0x73')];return db[_0x7c66('0x72')][_0x7c66('0x52')]({'where':{'id':_0x469de2},'attributes':['id'],'include':[{'model':db[_0x7c66('0x67')],'as':'Agents','attributes':['id',_0x7c66('0x3c'),_0x7c66('0x74'),_0x7c66('0x75'),_0x7c66('0x76')],'raw':!![]}]})['then'](function(_0x7094dc){if(_0x7094dc){var _0x15e8f2=_['flatMap'](_0x7094dc,function(_0x51b79c){var _0x432b10=_0x51b79c[_0x7c66('0x38')]({'plain':!![]});return _0x432b10[_0x7c66('0x77')];});return db[_0x7c66('0x3f')][_0x7c66('0x5e')]({'where':{'id':_0x443584[_0x7c66('0x54')]['id']}})[_0x7c66('0x22')](function(_0x12cd04){return db['sequelize'][_0x7c66('0x78')](function(_0x11f8d2){return _0x12cd04[_0x7c66('0x79')](_0x469de2,{'transaction':_0x11f8d2})[_0x7c66('0x22')](function(){return BPromise['each'](_0x15e8f2,function(_0x3587c9){return db['UserChatQueue'][_0x7c66('0x7a')]({'where':{'UserId':_0x3587c9['id'],'ChatQueueId':_0x443584[_0x7c66('0x54')]['id']},'transaction':_0x11f8d2});});})[_0x7c66('0x22')](function(){_0x15e8f2[_0x7c66('0x7b')](function(_0x7d5f1b){socket[_0x7c66('0x7c')](_0x7c66('0x7d'),{'UserId':_0x7d5f1b['id'],'ChatQueueId':_0x12cd04['id']});});});});});}})[_0x7c66('0x22')](respondWithStatusCode(_0x58e477,null))[_0x7c66('0x57')](handleError(_0x58e477,null));};exports[_0x7c66('0x7e')]=function(_0x30ce30,_0x471730,_0x3a3e75){return db[_0x7c66('0x72')][_0x7c66('0x52')]({'where':{'id':_0x30ce30[_0x7c66('0x44')][_0x7c66('0x73')]},'attributes':['id'],'include':[{'model':db[_0x7c66('0x67')],'as':_0x7c66('0x77'),'attributes':['id'],'raw':!![]}]})[_0x7c66('0x22')](handleEntityNotFound(_0x471730,null))[_0x7c66('0x22')](function(_0x109fda){var _0x5a1dd8=_[_0x7c66('0x3e')](_0x109fda,'id');var _0x28551b=[];var _0x175313=[];var _0x22b794=squel[_0x7c66('0x7f')]();_0x22b794[_0x7c66('0x80')](_0x7c66('0x81'))[_0x7c66('0x82')](_0x7c66('0x83'),'tq')[_0x7c66('0x84')](_0x7c66('0x85'),'ut',_0x7c66('0x86'))[_0x7c66('0x4d')](_0x7c66('0x87'),_0x30ce30[_0x7c66('0x54')]['id']);for(var _0x335568=0x0;_0x335568<_0x109fda[_0x7c66('0x4a')];_0x335568+=0x1){let _0x1a4035=_0x109fda[_0x335568];for(var _0x752323=0x0;_0x752323<_0x1a4035['Agents'][_0x7c66('0x4a')];_0x752323+=0x1){let _0x1e8c91=_0x1a4035[_0x7c66('0x77')][_0x752323];var _0x3b3887=_0x22b794[_0x7c66('0x88')]();_0x3b3887[_0x7c66('0x4d')](_0x7c66('0x89'),_0x1e8c91['id']);_0x175313[_0x7c66('0x8a')](db[_0x7c66('0x8b')][_0x7c66('0x44')](_0x3b3887[_0x7c66('0x8c')](),{'type':db[_0x7c66('0x8b')][_0x7c66('0x8d')][_0x7c66('0x8e')]})[_0x7c66('0x22')](function(_0x226047){if(_0x226047['length']===0x1){return _0x1e8c91['id'];}else{var _0x415aac=_[_0x7c66('0x8f')](_[_0x7c66('0x3e')](_0x226047,'TeamId'),function(_0x1dfa84){return _[_0x7c66('0x90')](_0x5a1dd8,_0x1dfa84);});if(_0x415aac){return _0x1e8c91['id'];}}}));}}return BPromise['all'](_0x175313)[_0x7c66('0x22')](function(_0x9538e){_0x28551b=_(_0x28551b)[_0x7c66('0x91')](_0x9538e)[_0x7c66('0x92')]()[_0x7c66('0x93')]();return db[_0x7c66('0x3f')]['find']({'where':{'id':_0x30ce30[_0x7c66('0x54')]['id']}})[_0x7c66('0x22')](function(_0x57fdfd){return db['sequelize'][_0x7c66('0x78')](function(_0x56a2d8){return _0x57fdfd[_0x7c66('0x7e')](_0x30ce30[_0x7c66('0x44')][_0x7c66('0x73')],{'transaction':_0x56a2d8})['then'](function(){if(!_[_0x7c66('0x94')](_0x28551b)){return _0x57fdfd[_0x7c66('0x95')](_0x28551b,{'transaction':_0x56a2d8});}})[_0x7c66('0x22')](function(){_0x28551b[_0x7c66('0x7b')](function(_0x38c5ca){socket[_0x7c66('0x7c')](_0x7c66('0x96'),{'UserId':_0x38c5ca,'ChatQueueId':_0x57fdfd['id']});});});});});});})[_0x7c66('0x22')](respondWithStatusCode(_0x471730,null))[_0x7c66('0x57')](handleError(_0x471730,null));};exports[_0x7c66('0x97')]=function(_0x4f12e9,_0x154e80,_0xc37258){return db[_0x7c66('0x3f')][_0x7c66('0x5e')]({'where':{'id':_0x4f12e9[_0x7c66('0x54')]['id']}})['then'](handleEntityNotFound(_0x154e80,null))[_0x7c66('0x22')](function(_0x16fa61){if(_0x16fa61){return _0x16fa61['addAgents'](_0x4f12e9['body'][_0x7c66('0x73')],_[_0x7c66('0x98')](_0x4f12e9['body'],[_0x7c66('0x73'),'id'])||{})[_0x7c66('0x99')](function(_0xd7787b){for(var _0x4c5987=0x0;_0x4c5987<_0x4f12e9[_0x7c66('0x59')][_0x7c66('0x73')][_0x7c66('0x4a')];_0x4c5987+=0x1){socket[_0x7c66('0x7c')](_0x7c66('0x7d'),{'UserId':Number(_0x4f12e9[_0x7c66('0x59')][_0x7c66('0x73')][_0x4c5987]),'ChatQueueId':Number(_0x4f12e9[_0x7c66('0x54')]['id'])});}return _0xd7787b;});}})[_0x7c66('0x22')](respondWithResult(_0x154e80,null))[_0x7c66('0x57')](handleError(_0x154e80,null));};exports[_0x7c66('0x95')]=function(_0x24efe4,_0x3b1447,_0x5c2b50){return db['ChatQueue'][_0x7c66('0x5e')]({'where':{'id':_0x24efe4[_0x7c66('0x54')]['id']}})[_0x7c66('0x22')](handleEntityNotFound(_0x3b1447,null))[_0x7c66('0x22')](function(_0xb7ba91){if(_0xb7ba91){return _0xb7ba91['removeAgents'](_0x24efe4[_0x7c66('0x44')]['ids'])['then'](function(){if(_[_0x7c66('0x9a')](_0x24efe4[_0x7c66('0x44')]['ids'])){for(var _0x3d7dbf=0x0;_0x3d7dbf<_0x24efe4[_0x7c66('0x44')][_0x7c66('0x73')]['length'];_0x3d7dbf+=0x1){socket['emit'](_0x7c66('0x96'),{'UserId':Number(_0x24efe4[_0x7c66('0x44')][_0x7c66('0x73')][_0x3d7dbf]),'ChatQueueId':Number(_0x24efe4['params']['id'])});}}else{socket[_0x7c66('0x7c')](_0x7c66('0x96'),{'UserId':Number(_0x24efe4[_0x7c66('0x44')][_0x7c66('0x73')]),'ChatQueueId':Number(_0x24efe4[_0x7c66('0x54')]['id'])});}});}})[_0x7c66('0x22')](respondWithStatusCode(_0x3b1447,null))[_0x7c66('0x57')](handleError(_0x3b1447,null));};exports[_0x7c66('0x9b')]=function(_0x220461,_0x4c432a,_0x4fd2c0){var _0x27b7e9={};var _0x522070={};var _0x5d92e1;var _0x106518;return db[_0x7c66('0x3f')][_0x7c66('0x62')]({'where':{'id':_0x220461[_0x7c66('0x54')]['id']}})['then'](handleEntityNotFound(_0x4c432a,null))[_0x7c66('0x22')](function(_0x1e7d72){if(_0x1e7d72){_0x5d92e1=_0x1e7d72;_0x522070[_0x7c66('0x47')]=_[_0x7c66('0x45')](db['User']['rawAttributes']);_0x522070[_0x7c66('0x44')]=_[_0x7c66('0x45')](_0x220461[_0x7c66('0x44')]);_0x522070[_0x7c66('0x46')]=_[_0x7c66('0x55')](_0x522070[_0x7c66('0x47')],_0x522070['query']);_0x27b7e9[_0x7c66('0x49')]=_[_0x7c66('0x55')](_0x522070[_0x7c66('0x47')],qs[_0x7c66('0x48')](_0x220461[_0x7c66('0x44')][_0x7c66('0x48')]));_0x27b7e9[_0x7c66('0x49')]=_0x27b7e9[_0x7c66('0x49')][_0x7c66('0x4a')]?_0x27b7e9[_0x7c66('0x49')]:_0x522070['model'];_0x27b7e9[_0x7c66('0x4b')]=qs[_0x7c66('0x4c')](_0x220461[_0x7c66('0x44')][_0x7c66('0x4c')]);_0x27b7e9[_0x7c66('0x4d')]=qs[_0x7c66('0x46')](_['pick'](_0x220461[_0x7c66('0x44')],_0x522070[_0x7c66('0x46')]));if(_0x220461[_0x7c66('0x44')]['filter']){_0x27b7e9['where']=_[_0x7c66('0x4e')](_0x27b7e9[_0x7c66('0x4d')],{'$or':_['map'](_0x27b7e9[_0x7c66('0x49')],function(_0x2916e4){var _0x50d3c8={};_0x50d3c8[_0x2916e4]={'$like':'%'+_0x220461[_0x7c66('0x44')][_0x7c66('0x4f')]+'%'};return _0x50d3c8;})});}_0x27b7e9=_['merge']({},_0x27b7e9,_0x220461['options']);return _0x5d92e1[_0x7c66('0x9b')](_0x27b7e9);}})[_0x7c66('0x22')](function(_0x3c4cee){if(_0x3c4cee){_0x106518=_0x3c4cee[_0x7c66('0x4a')];if(!_0x220461['query']['hasOwnProperty'](_0x7c66('0x65'))){_0x27b7e9[_0x7c66('0x30')]=qs[_0x7c66('0x30')](_0x220461[_0x7c66('0x44')][_0x7c66('0x30')]);_0x27b7e9[_0x7c66('0x2e')]=qs[_0x7c66('0x2e')](_0x220461['query']['offset']);}return _0x5d92e1[_0x7c66('0x9b')](_0x27b7e9);}})[_0x7c66('0x22')](function(_0x20302b){if(_0x20302b){return _0x20302b?{'count':_0x106518,'rows':_0x20302b}:null;}})[_0x7c66('0x22')](respondWithResult(_0x4c432a,null))[_0x7c66('0x57')](handleError(_0x4c432a,null));};