a27b6cbc071bd5053d99fa91ed4a3a750756acad
[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 _0xb5eb=['findOne','UserChatQueue','pick','ChatQueueId','User','findAndCountAll','chatPause','updatedAt','createdAt','%s/%s','SIP','getTeams','nolimit','addTeams','ids','Team','Agents','voicePause','interface','flatMap','sequelize','each','forEach','emit','userChatQueue:save','removeTeams','select','field','from','team_has_chat_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','isArray','getAgents','eml-format','rimraf','zip-dir','moment','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','then','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','status','end','json','count','offset','limit','set','apply','reject','update','destroy','get','sendStatus','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','filtears','find','create','body','user','role','ChatQueues','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','describe','getMembers'];(function(_0x126f99,_0x429e39){var _0x36c745=function(_0xd27cf){while(--_0xd27cf){_0x126f99['push'](_0x126f99['shift']());}};_0x36c745(++_0x429e39);}(_0xb5eb,0xd1));var _0xbb5e=function(_0x5b247c,_0x59a1c5){_0x5b247c=_0x5b247c-0x0;var _0x515947=_0xb5eb[_0x5b247c];return _0x515947;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xbb5e('0x0'));var rimraf=require(_0xbb5e('0x1'));var zipdir=require(_0xbb5e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xbb5e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xbb5e('0x4'));var util=require('util');var path=require(_0xbb5e('0x5'));var sox=require(_0xbb5e('0x6'));var csv=require(_0xbb5e('0x7'));var ejs=require(_0xbb5e('0x8'));var fs=require('fs');var _=require(_0xbb5e('0x9'));var squel=require(_0xbb5e('0xa'));var crypto=require('crypto');var jsforce=require(_0xbb5e('0xb'));var deskjs=require(_0xbb5e('0xc'));var toCsv=require('to-csv');var querystring=require(_0xbb5e('0xd'));var Papa=require(_0xbb5e('0xe'));var Redis=require(_0xbb5e('0xf'));var authService=require(_0xbb5e('0x10'));var qs=require(_0xbb5e('0x11'));var as=require(_0xbb5e('0x12'));var hardwareService=require(_0xbb5e('0x13'));var logger=require(_0xbb5e('0x14'))(_0xbb5e('0x15'));var utils=require(_0xbb5e('0x16'));var config=require(_0xbb5e('0x17'));var licenseUtil=require(_0xbb5e('0x18'));var db=require(_0xbb5e('0x19'))['db'];config[_0xbb5e('0x1a')]=_[_0xbb5e('0x1b')](config[_0xbb5e('0x1a')],{'host':_0xbb5e('0x1c'),'port':0x18eb});var socket=require(_0xbb5e('0x1d'))(new Redis(config[_0xbb5e('0x1a')]));require(_0xbb5e('0x1e'))[_0xbb5e('0x1f')](socket);var jayson=require(_0xbb5e('0x20'));var client=jayson[_0xbb5e('0x21')][_0xbb5e('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x1b73fe,_0x131cbc,_0x258857,_0xef77ce){return new BPromise(function(_0x8982c4,_0x3fab4b){var _0x334e36=_0xef77ce||client;return _0x334e36['request'](_0x1b73fe,_0x258857)[_0xbb5e('0x23')](function(_0x23b5f4){logger['info'](_0xbb5e('0x24'),_0x131cbc,_0xbb5e('0x25'));logger[_0xbb5e('0x26')](_0xbb5e('0x27'),_0x131cbc,_0xbb5e('0x25'),JSON['stringify'](_0x23b5f4));if(_0x23b5f4[_0xbb5e('0x28')]){if(_0x23b5f4[_0xbb5e('0x28')][_0xbb5e('0x29')]===0x1f4){logger[_0xbb5e('0x28')](_0xbb5e('0x24'),_0x131cbc,_0x23b5f4[_0xbb5e('0x28')][_0xbb5e('0x2a')]);return _0x3fab4b(_0x23b5f4['error'][_0xbb5e('0x2a')]);}logger[_0xbb5e('0x28')](_0xbb5e('0x24'),_0x131cbc,_0x23b5f4['error']['message']);return _0x8982c4(_0x23b5f4[_0xbb5e('0x28')]['message']);}else{logger[_0xbb5e('0x2b')](_0xbb5e('0x24'),_0x131cbc,_0xbb5e('0x25'));_0x8982c4(_0x23b5f4[_0xbb5e('0x2c')][_0xbb5e('0x2a')]);}})[_0xbb5e('0x2d')](function(_0xa23232){logger[_0xbb5e('0x28')](_0xbb5e('0x24'),_0x131cbc,_0xa23232);_0x3fab4b(_0xa23232);});});}function respondWithStatusCode(_0x5ae9a1,_0x53eb1e){_0x53eb1e=_0x53eb1e||0xcc;return function(_0x2a8b03){if(_0x2a8b03){return _0x5ae9a1['sendStatus'](_0x53eb1e);}return _0x5ae9a1[_0xbb5e('0x2e')](_0x53eb1e)[_0xbb5e('0x2f')]();};}function respondWithResult(_0x44f3b1,_0x1a1822){_0x1a1822=_0x1a1822||0xc8;return function(_0x5bb721){if(_0x5bb721){return _0x44f3b1[_0xbb5e('0x2e')](_0x1a1822)[_0xbb5e('0x30')](_0x5bb721);}};}function respondWithFilteredResult(_0x1d454d,_0xd80d6d){return function(_0x262379){if(_0x262379){var _0xb77cda=_0x262379[_0xbb5e('0x31')],_0x407284=_0xd80d6d['offset'],_0x216114=_0xd80d6d[_0xbb5e('0x32')]+_0xd80d6d[_0xbb5e('0x33')],_0xac38b8;if(_0x216114>=_0xb77cda){_0x216114=_0xb77cda;_0xac38b8=0xc8;}else{_0xac38b8=0xce;}_0x1d454d['status'](_0xac38b8);return _0x1d454d[_0xbb5e('0x34')]('Content-Range',_0x407284+'-'+_0x216114+'/'+_0xb77cda)[_0xbb5e('0x30')](_0x262379);}return null;};}function patchUpdates(_0x89bb09){return function(_0x2c173b){try{jsonpatch[_0xbb5e('0x35')](_0x2c173b,_0x89bb09,!![]);}catch(_0x1484cd){return BPromise[_0xbb5e('0x36')](_0x1484cd);}return _0x2c173b['save']();};}function saveUpdates(_0xfbb76d,_0x3aa7bb){return function(_0x57e78f){if(_0x57e78f){return _0x57e78f[_0xbb5e('0x37')](_0xfbb76d)[_0xbb5e('0x23')](function(_0x4b3180){return _0x4b3180;});}return null;};}function removeEntity(_0x23422a,_0x5756b3){return function(_0x2e6c24){if(_0x2e6c24){return _0x2e6c24[_0xbb5e('0x38')]()['then'](function(){var _0x504a61=_0x2e6c24[_0xbb5e('0x39')]({'plain':!![]});var _0xc3d630='ChatQueues';return db['UserProfileResource'][_0xbb5e('0x38')]({'where':{'type':_0xc3d630,'resourceId':_0x504a61['id']}})['then'](function(){return _0x2e6c24;});})[_0xbb5e('0x23')](function(){_0x23422a[_0xbb5e('0x2e')](0xcc)[_0xbb5e('0x2f')]();});}};}function handleEntityNotFound(_0x58106e,_0x58fcfc){return function(_0x2a3105){if(!_0x2a3105){_0x58106e[_0xbb5e('0x3a')](0x194);}return _0x2a3105;};}function handleError(_0xd3305c,_0x355767){_0x355767=_0x355767||0x1f4;return function(_0x56c8a0){logger[_0xbb5e('0x28')](_0x56c8a0['stack']);if(_0x56c8a0[_0xbb5e('0x3b')]){delete _0x56c8a0[_0xbb5e('0x3b')];}_0xd3305c[_0xbb5e('0x2e')](_0x355767)[_0xbb5e('0x3c')](_0x56c8a0);};}exports[_0xbb5e('0x3d')]=function(_0x34839d,_0x526501){var _0x436f8a={},_0x59cfea={},_0x1a5c9b={'count':0x0,'rows':[]};var _0x1ed926=_[_0xbb5e('0x3e')](db[_0xbb5e('0x3f')][_0xbb5e('0x40')],function(_0x8facd6){return{'name':_0x8facd6[_0xbb5e('0x41')],'type':_0x8facd6[_0xbb5e('0x42')][_0xbb5e('0x43')]};});_0x59cfea[_0xbb5e('0x44')]=_[_0xbb5e('0x3e')](_0x1ed926,_0xbb5e('0x3b'));_0x59cfea[_0xbb5e('0x45')]=_[_0xbb5e('0x46')](_0x34839d[_0xbb5e('0x45')]);_0x59cfea[_0xbb5e('0x47')]=_[_0xbb5e('0x48')](_0x59cfea[_0xbb5e('0x44')],_0x59cfea['query']);_0x436f8a[_0xbb5e('0x49')]=_[_0xbb5e('0x48')](_0x59cfea['model'],qs[_0xbb5e('0x4a')](_0x34839d['query']['fields']));_0x436f8a[_0xbb5e('0x49')]=_0x436f8a[_0xbb5e('0x49')][_0xbb5e('0x4b')]?_0x436f8a[_0xbb5e('0x49')]:_0x59cfea['model'];if(!_0x34839d[_0xbb5e('0x45')][_0xbb5e('0x4c')]('nolimit')){_0x436f8a[_0xbb5e('0x33')]=qs[_0xbb5e('0x33')](_0x34839d[_0xbb5e('0x45')]['limit']);_0x436f8a[_0xbb5e('0x32')]=qs[_0xbb5e('0x32')](_0x34839d['query'][_0xbb5e('0x32')]);}_0x436f8a[_0xbb5e('0x4d')]=qs['sort'](_0x34839d['query'][_0xbb5e('0x4e')]);_0x436f8a['where']=qs[_0xbb5e('0x47')](_['pick'](_0x34839d[_0xbb5e('0x45')],_0x59cfea[_0xbb5e('0x47')]),_0x1ed926);if(_0x34839d[_0xbb5e('0x45')][_0xbb5e('0x4f')]){_0x436f8a[_0xbb5e('0x50')]=_[_0xbb5e('0x51')](_0x436f8a[_0xbb5e('0x50')],{'$or':_[_0xbb5e('0x3e')](_0x1ed926,function(_0x43b561){if(_0x43b561[_0xbb5e('0x42')]!==_0xbb5e('0x52')){var _0x4970a3={};_0x4970a3[_0x43b561[_0xbb5e('0x3b')]]={'$like':'%'+_0x34839d['query']['filter']+'%'};return _0x4970a3;}})});}_0x436f8a=_[_0xbb5e('0x51')]({},_0x436f8a,_0x34839d[_0xbb5e('0x53')]);var _0x113fff={'where':_0x436f8a[_0xbb5e('0x50')]};return db[_0xbb5e('0x3f')][_0xbb5e('0x31')](_0x113fff)['then'](function(_0x180e3c){_0x1a5c9b[_0xbb5e('0x31')]=_0x180e3c;if(_0x34839d[_0xbb5e('0x45')][_0xbb5e('0x54')]){_0x436f8a[_0xbb5e('0x55')]=[{'all':!![]}];}return db['ChatQueue'][_0xbb5e('0x56')](_0x436f8a);})[_0xbb5e('0x23')](function(_0x20af67){_0x1a5c9b[_0xbb5e('0x57')]=_0x20af67;return _0x1a5c9b;})[_0xbb5e('0x23')](respondWithFilteredResult(_0x526501,_0x436f8a))['catch'](handleError(_0x526501,null));};exports[_0xbb5e('0x58')]=function(_0x4e0407,_0x54d1c1){var _0x297909={'raw':!![],'where':{'id':_0x4e0407[_0xbb5e('0x59')]['id']}},_0x42f02b={};_0x42f02b[_0xbb5e('0x44')]=_[_0xbb5e('0x46')](db[_0xbb5e('0x3f')][_0xbb5e('0x40')]);_0x42f02b[_0xbb5e('0x45')]=_[_0xbb5e('0x46')](_0x4e0407[_0xbb5e('0x45')]);_0x42f02b[_0xbb5e('0x5a')]=_['intersection'](_0x42f02b[_0xbb5e('0x44')],_0x42f02b['query']);_0x297909[_0xbb5e('0x49')]=_['intersection'](_0x42f02b[_0xbb5e('0x44')],qs[_0xbb5e('0x4a')](_0x4e0407['query'][_0xbb5e('0x4a')]));_0x297909['attributes']=_0x297909[_0xbb5e('0x49')][_0xbb5e('0x4b')]?_0x297909[_0xbb5e('0x49')]:_0x42f02b[_0xbb5e('0x44')];if(_0x4e0407[_0xbb5e('0x45')]['includeAll']){_0x297909['include']=[{'all':!![]}];}_0x297909=_['merge']({},_0x297909,_0x4e0407[_0xbb5e('0x53')]);return db['ChatQueue'][_0xbb5e('0x5b')](_0x297909)[_0xbb5e('0x23')](handleEntityNotFound(_0x54d1c1,null))['then'](respondWithResult(_0x54d1c1,null))[_0xbb5e('0x2d')](handleError(_0x54d1c1,null));};exports['create']=function(_0xf570e1,_0x445334){return db[_0xbb5e('0x3f')][_0xbb5e('0x5c')](_0xf570e1[_0xbb5e('0x5d')],{})['then'](function(_0xca3ac6){var _0x15d907=_0xf570e1[_0xbb5e('0x5e')]['get']({'plain':!![]});if(!_0x15d907)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x15d907[_0xbb5e('0x5f')]===_0xbb5e('0x5e')){var _0x3566f0=_0xca3ac6[_0xbb5e('0x39')]({'plain':!![]});var _0x6a468b=_0xbb5e('0x60');return db[_0xbb5e('0x61')][_0xbb5e('0x5b')]({'where':{'name':_0x6a468b,'userProfileId':_0x15d907[_0xbb5e('0x62')]},'raw':!![]})['then'](function(_0x4427a0){if(_0x4427a0&&_0x4427a0[_0xbb5e('0x63')]===0x0){return db[_0xbb5e('0x64')][_0xbb5e('0x5c')]({'name':_0x3566f0[_0xbb5e('0x3b')],'resourceId':_0x3566f0['id'],'type':_0x4427a0[_0xbb5e('0x3b')],'sectionId':_0x4427a0['id']},{})['then'](function(){return _0xca3ac6;});}else{return _0xca3ac6;}})[_0xbb5e('0x2d')](function(_0x2de586){logger[_0xbb5e('0x28')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2de586);throw _0x2de586;});}return _0xca3ac6;})[_0xbb5e('0x23')](respondWithResult(_0x445334,0xc9))['catch'](handleError(_0x445334,null));};exports[_0xbb5e('0x37')]=function(_0x57f9ec,_0x588227){if(_0x57f9ec[_0xbb5e('0x5d')]['id']){delete _0x57f9ec[_0xbb5e('0x5d')]['id'];}return db[_0xbb5e('0x3f')][_0xbb5e('0x5b')]({'where':{'id':_0x57f9ec[_0xbb5e('0x59')]['id']}})['then'](handleEntityNotFound(_0x588227,null))['then'](saveUpdates(_0x57f9ec[_0xbb5e('0x5d')],null))[_0xbb5e('0x23')](respondWithResult(_0x588227,null))[_0xbb5e('0x2d')](handleError(_0x588227,null));};exports[_0xbb5e('0x38')]=function(_0x5a685e,_0x1a6286){return db[_0xbb5e('0x3f')]['find']({'where':{'id':_0x5a685e[_0xbb5e('0x59')]['id']}})[_0xbb5e('0x23')](handleEntityNotFound(_0x1a6286,null))[_0xbb5e('0x23')](removeEntity(_0x1a6286,null))['catch'](handleError(_0x1a6286,null));};exports[_0xbb5e('0x65')]=function(_0x5983c1,_0x126546){return db[_0xbb5e('0x3f')][_0xbb5e('0x65')]()[_0xbb5e('0x23')](respondWithResult(_0x126546,null))[_0xbb5e('0x2d')](handleError(_0x126546,null));};exports[_0xbb5e('0x66')]=function(_0x46c0cd,_0x5c2ed6,_0x37fd82){var _0xeaf8bd={'raw':!![],'where':{}},_0x245c38={},_0x12f3dc;return db[_0xbb5e('0x3f')][_0xbb5e('0x67')]({'where':{'id':_0x46c0cd['params']['id']}})['then'](handleEntityNotFound(_0x5c2ed6,null))['then'](function(_0x92d271){if(_0x92d271){_0x12f3dc=_0x92d271[_0xbb5e('0x39')]({'plain':!![]});_0x245c38['model']=_[_0xbb5e('0x46')](db[_0xbb5e('0x68')][_0xbb5e('0x40')]);_0x245c38['query']=_[_0xbb5e('0x46')](_0x46c0cd['query']);_0x245c38[_0xbb5e('0x47')]=_[_0xbb5e('0x48')](_0x245c38[_0xbb5e('0x44')],_0x245c38[_0xbb5e('0x45')]);_0xeaf8bd[_0xbb5e('0x49')]=_[_0xbb5e('0x48')](_0x245c38[_0xbb5e('0x44')],qs['fields'](_0x46c0cd[_0xbb5e('0x45')]['fields']));_0xeaf8bd[_0xbb5e('0x49')]=_0xeaf8bd['attributes'][_0xbb5e('0x4b')]?_0xeaf8bd[_0xbb5e('0x49')]:_0x245c38[_0xbb5e('0x44')];if(!_0x46c0cd[_0xbb5e('0x45')]['hasOwnProperty']('nolimit')){_0xeaf8bd['limit']=qs[_0xbb5e('0x33')](_0x46c0cd[_0xbb5e('0x45')]['limit']);_0xeaf8bd[_0xbb5e('0x32')]=qs[_0xbb5e('0x32')](_0x46c0cd[_0xbb5e('0x45')][_0xbb5e('0x32')]);}_0xeaf8bd[_0xbb5e('0x4d')]=qs[_0xbb5e('0x4e')](_0x46c0cd['query'][_0xbb5e('0x4e')]);_0xeaf8bd[_0xbb5e('0x50')]=qs['filters'](_[_0xbb5e('0x69')](_0x46c0cd[_0xbb5e('0x45')],_0x245c38[_0xbb5e('0x47')]));_0xeaf8bd['where'][_0xbb5e('0x6a')]=_0x92d271['id'];if(_0x46c0cd['query'][_0xbb5e('0x4f')]){_0xeaf8bd[_0xbb5e('0x50')]=_[_0xbb5e('0x51')](_0xeaf8bd['where'],{'$or':_[_0xbb5e('0x3e')](_0xeaf8bd[_0xbb5e('0x49')],function(_0x36c333){var _0x3369b3={};_0x3369b3[_0x36c333]={'$like':'%'+_0x46c0cd[_0xbb5e('0x45')][_0xbb5e('0x4f')]+'%'};return _0x3369b3;})});}_0xeaf8bd=_['merge']({},_0xeaf8bd,_0x46c0cd[_0xbb5e('0x53')]);return db['UserChatQueue'][_0xbb5e('0x56')](_0xeaf8bd);}})[_0xbb5e('0x23')](function(_0x3f21c1){if(_0x3f21c1){return db[_0xbb5e('0x6b')][_0xbb5e('0x6c')]({'where':{'id':_[_0xbb5e('0x3e')](_0x3f21c1,'UserId'),'role':'agent'},'attributes':['id',_0xbb5e('0x3b'),_0xbb5e('0x6d'),_0xbb5e('0x6e'),_0xbb5e('0x6f')]});}})[_0xbb5e('0x23')](function(_0x25a001){if(_0x25a001){return{'count':_0x25a001[_0xbb5e('0x31')],'rows':_[_0xbb5e('0x3e')](_0x25a001[_0xbb5e('0x57')],function(_0x33928c){return{'membername':_0x33928c[_0xbb5e('0x3b')],'UserId':_0x33928c['id'],'queue_name':_0x12f3dc[_0xbb5e('0x3b')],'ChatQueueId':_0x12f3dc['id'],'interface':util['format'](_0xbb5e('0x70'),_0xbb5e('0x71'),_0x33928c[_0xbb5e('0x3b')]),'penalty':0x0,'paused':_0x33928c[_0xbb5e('0x6d')],'createdAt':_0x33928c[_0xbb5e('0x6f')],'updatedAt':_0x33928c['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xbb5e('0x23')](respondWithFilteredResult(_0x5c2ed6,_0xeaf8bd))[_0xbb5e('0x2d')](handleError(_0x5c2ed6,null));};exports[_0xbb5e('0x72')]=function(_0x25370a,_0x3e889f,_0x14fac9){var _0x191d29={};var _0x56b904={};var _0xcf03bd;var _0x59f7a5;return db[_0xbb5e('0x3f')][_0xbb5e('0x67')]({'where':{'id':_0x25370a[_0xbb5e('0x59')]['id']}})[_0xbb5e('0x23')](handleEntityNotFound(_0x3e889f,null))[_0xbb5e('0x23')](function(_0x54474a){if(_0x54474a){_0xcf03bd=_0x54474a;_0x56b904['model']=_['keys'](db['Team'][_0xbb5e('0x40')]);_0x56b904[_0xbb5e('0x45')]=_[_0xbb5e('0x46')](_0x25370a['query']);_0x56b904['filters']=_[_0xbb5e('0x48')](_0x56b904['model'],_0x56b904[_0xbb5e('0x45')]);_0x191d29[_0xbb5e('0x49')]=_[_0xbb5e('0x48')](_0x56b904['model'],qs['fields'](_0x25370a['query']['fields']));_0x191d29['attributes']=_0x191d29[_0xbb5e('0x49')]['length']?_0x191d29[_0xbb5e('0x49')]:_0x56b904[_0xbb5e('0x44')];_0x191d29[_0xbb5e('0x4d')]=qs[_0xbb5e('0x4e')](_0x25370a[_0xbb5e('0x45')][_0xbb5e('0x4e')]);_0x191d29['where']=qs[_0xbb5e('0x47')](_[_0xbb5e('0x69')](_0x25370a[_0xbb5e('0x45')],_0x56b904[_0xbb5e('0x47')]));if(_0x25370a[_0xbb5e('0x45')][_0xbb5e('0x4f')]){_0x191d29[_0xbb5e('0x50')]=_['merge'](_0x191d29[_0xbb5e('0x50')],{'$or':_[_0xbb5e('0x3e')](_0x191d29[_0xbb5e('0x49')],function(_0x2ba52d){var _0x5d42e5={};_0x5d42e5[_0x2ba52d]={'$like':'%'+_0x25370a[_0xbb5e('0x45')][_0xbb5e('0x4f')]+'%'};return _0x5d42e5;})});}_0x191d29=_[_0xbb5e('0x51')]({},_0x191d29,_0x25370a['options']);return _0xcf03bd['getTeams'](_0x191d29);}})['then'](function(_0x257a94){if(_0x257a94){_0x59f7a5=_0x257a94[_0xbb5e('0x4b')];if(!_0x25370a[_0xbb5e('0x45')][_0xbb5e('0x4c')](_0xbb5e('0x73'))){_0x191d29['limit']=qs['limit'](_0x25370a[_0xbb5e('0x45')]['limit']);_0x191d29['offset']=qs[_0xbb5e('0x32')](_0x25370a[_0xbb5e('0x45')][_0xbb5e('0x32')]);}return _0xcf03bd[_0xbb5e('0x72')](_0x191d29);}})[_0xbb5e('0x23')](function(_0x441d9a){if(_0x441d9a){return _0x441d9a?{'count':_0x59f7a5,'rows':_0x441d9a}:null;}})['then'](respondWithResult(_0x3e889f,null))[_0xbb5e('0x2d')](handleError(_0x3e889f,null));};exports[_0xbb5e('0x74')]=function(_0x252c37,_0x3220e6,_0x3f4750){var _0xb51900=_0x252c37[_0xbb5e('0x5d')][_0xbb5e('0x75')];return db[_0xbb5e('0x76')][_0xbb5e('0x56')]({'where':{'id':_0xb51900},'attributes':['id'],'include':[{'model':db[_0xbb5e('0x6b')],'as':_0xbb5e('0x77'),'attributes':['id',_0xbb5e('0x3b'),'online',_0xbb5e('0x78'),_0xbb5e('0x79')],'raw':!![]}]})[_0xbb5e('0x23')](function(_0x3e0bc0){if(_0x3e0bc0){var _0x4d8ae2=_[_0xbb5e('0x7a')](_0x3e0bc0,function(_0x1d936c){var _0x5ec31f=_0x1d936c[_0xbb5e('0x39')]({'plain':!![]});return _0x5ec31f[_0xbb5e('0x77')];});return db[_0xbb5e('0x3f')][_0xbb5e('0x5b')]({'where':{'id':_0x252c37['params']['id']}})[_0xbb5e('0x23')](function(_0x541338){return db[_0xbb5e('0x7b')]['transaction'](function(_0x205cf7){return _0x541338[_0xbb5e('0x74')](_0xb51900,{'transaction':_0x205cf7})['then'](function(){return BPromise[_0xbb5e('0x7c')](_0x4d8ae2,function(_0x88f4c){return db[_0xbb5e('0x68')]['findOrCreate']({'where':{'UserId':_0x88f4c['id'],'ChatQueueId':_0x252c37[_0xbb5e('0x59')]['id']},'transaction':_0x205cf7});});})[_0xbb5e('0x23')](function(){_0x4d8ae2[_0xbb5e('0x7d')](function(_0x273b17){socket[_0xbb5e('0x7e')](_0xbb5e('0x7f'),{'UserId':_0x273b17['id'],'ChatQueueId':_0x541338['id']});});});});});}})[_0xbb5e('0x23')](respondWithStatusCode(_0x3220e6,null))[_0xbb5e('0x2d')](handleError(_0x3220e6,null));};exports[_0xbb5e('0x80')]=function(_0x5a989c,_0x36df39,_0x243914){return db['Team'][_0xbb5e('0x56')]({'where':{'id':_0x5a989c[_0xbb5e('0x45')]['ids']},'attributes':['id'],'include':[{'model':db[_0xbb5e('0x6b')],'as':_0xbb5e('0x77'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x36df39,null))[_0xbb5e('0x23')](function(_0x44f3bd){var _0x4d30f8=_['map'](_0x44f3bd,'id');var _0x47e9fb=[];var _0x1836f1=[];var _0x362b15=squel[_0xbb5e('0x81')]();_0x362b15[_0xbb5e('0x82')]('tq.TeamId')[_0xbb5e('0x83')](_0xbb5e('0x84'),'tq')['join'](_0xbb5e('0x85'),'ut',_0xbb5e('0x86'))['where'](_0xbb5e('0x87'),_0x5a989c[_0xbb5e('0x59')]['id']);for(var _0x2d0d1b=0x0;_0x2d0d1b<_0x44f3bd[_0xbb5e('0x4b')];_0x2d0d1b+=0x1){let _0x14cb82=_0x44f3bd[_0x2d0d1b];for(var _0x1ef92b=0x0;_0x1ef92b<_0x14cb82[_0xbb5e('0x77')][_0xbb5e('0x4b')];_0x1ef92b+=0x1){let _0x20f945=_0x14cb82['Agents'][_0x1ef92b];var _0x4d3b2a=_0x362b15[_0xbb5e('0x88')]();_0x4d3b2a[_0xbb5e('0x50')](_0xbb5e('0x89'),_0x20f945['id']);_0x1836f1[_0xbb5e('0x8a')](db['sequelize'][_0xbb5e('0x45')](_0x4d3b2a[_0xbb5e('0x8b')](),{'type':db[_0xbb5e('0x7b')][_0xbb5e('0x8c')][_0xbb5e('0x8d')]})[_0xbb5e('0x23')](function(_0x5812bf){if(_0x5812bf[_0xbb5e('0x4b')]===0x1){return _0x20f945['id'];}else{var _0x49d6f6=_[_0xbb5e('0x8e')](_[_0xbb5e('0x3e')](_0x5812bf,_0xbb5e('0x8f')),function(_0xd55f23){return _[_0xbb5e('0x90')](_0x4d30f8,_0xd55f23);});if(_0x49d6f6){return _0x20f945['id'];}}}));}}return BPromise[_0xbb5e('0x91')](_0x1836f1)[_0xbb5e('0x23')](function(_0x10d1dc){_0x47e9fb=_(_0x47e9fb)[_0xbb5e('0x92')](_0x10d1dc)[_0xbb5e('0x93')]()[_0xbb5e('0x94')]();return db[_0xbb5e('0x3f')][_0xbb5e('0x5b')]({'where':{'id':_0x5a989c[_0xbb5e('0x59')]['id']}})[_0xbb5e('0x23')](function(_0x1ec5fd){return db[_0xbb5e('0x7b')]['transaction'](function(_0x5ce86f){return _0x1ec5fd[_0xbb5e('0x80')](_0x5a989c[_0xbb5e('0x45')][_0xbb5e('0x75')],{'transaction':_0x5ce86f})[_0xbb5e('0x23')](function(){if(!_[_0xbb5e('0x95')](_0x47e9fb)){return _0x1ec5fd[_0xbb5e('0x96')](_0x47e9fb,{'transaction':_0x5ce86f});}})['then'](function(){_0x47e9fb[_0xbb5e('0x7d')](function(_0x3a91d5){socket[_0xbb5e('0x7e')](_0xbb5e('0x97'),{'UserId':_0x3a91d5,'ChatQueueId':_0x1ec5fd['id']});});});});});});})[_0xbb5e('0x23')](respondWithStatusCode(_0x36df39,null))[_0xbb5e('0x2d')](handleError(_0x36df39,null));};exports['addAgents']=function(_0x1c6d89,_0x1857c6,_0x247994){return db[_0xbb5e('0x3f')][_0xbb5e('0x5b')]({'where':{'id':_0x1c6d89[_0xbb5e('0x59')]['id']}})[_0xbb5e('0x23')](handleEntityNotFound(_0x1857c6,null))[_0xbb5e('0x23')](function(_0x10aab8){if(_0x10aab8){return _0x10aab8[_0xbb5e('0x98')](_0x1c6d89[_0xbb5e('0x5d')][_0xbb5e('0x75')],_[_0xbb5e('0x99')](_0x1c6d89[_0xbb5e('0x5d')],[_0xbb5e('0x75'),'id'])||{})['spread'](function(_0xb22636){for(var _0x55586b=0x0;_0x55586b<_0x1c6d89['body']['ids'][_0xbb5e('0x4b')];_0x55586b+=0x1){socket['emit'](_0xbb5e('0x7f'),{'UserId':_0x1c6d89[_0xbb5e('0x5d')]['ids'][_0x55586b],'ChatQueueId':_0x1c6d89[_0xbb5e('0x59')]['id']});}return _0xb22636;});}})[_0xbb5e('0x23')](respondWithResult(_0x1857c6,null))['catch'](handleError(_0x1857c6,null));};exports[_0xbb5e('0x96')]=function(_0x4c315c,_0x541dc7,_0x2db530){return db[_0xbb5e('0x3f')][_0xbb5e('0x5b')]({'where':{'id':_0x4c315c[_0xbb5e('0x59')]['id']}})[_0xbb5e('0x23')](handleEntityNotFound(_0x541dc7,null))[_0xbb5e('0x23')](function(_0x32d893){if(_0x32d893){return _0x32d893[_0xbb5e('0x96')](_0x4c315c[_0xbb5e('0x45')][_0xbb5e('0x75')])['then'](function(){if(_[_0xbb5e('0x9a')](_0x4c315c[_0xbb5e('0x45')][_0xbb5e('0x75')])){for(var _0x16daf6=0x0;_0x16daf6<_0x4c315c[_0xbb5e('0x45')][_0xbb5e('0x75')][_0xbb5e('0x4b')];_0x16daf6+=0x1){socket[_0xbb5e('0x7e')](_0xbb5e('0x97'),{'UserId':Number(_0x4c315c['query'][_0xbb5e('0x75')][_0x16daf6]),'ChatQueueId':Number(_0x4c315c[_0xbb5e('0x59')]['id'])});}}else{socket[_0xbb5e('0x7e')](_0xbb5e('0x97'),{'UserId':Number(_0x4c315c[_0xbb5e('0x45')][_0xbb5e('0x75')]),'ChatQueueId':Number(_0x4c315c[_0xbb5e('0x59')]['id'])});}});}})[_0xbb5e('0x23')](respondWithStatusCode(_0x541dc7,null))[_0xbb5e('0x2d')](handleError(_0x541dc7,null));};exports[_0xbb5e('0x9b')]=function(_0x4d254b,_0xc40c37,_0x3cb615){var _0x2ac9d1={};var _0x391cce={};var _0xe9559e;var _0x15c184;return db[_0xbb5e('0x3f')][_0xbb5e('0x67')]({'where':{'id':_0x4d254b['params']['id']}})[_0xbb5e('0x23')](handleEntityNotFound(_0xc40c37,null))[_0xbb5e('0x23')](function(_0x207346){if(_0x207346){_0xe9559e=_0x207346;_0x391cce[_0xbb5e('0x44')]=_[_0xbb5e('0x46')](db[_0xbb5e('0x6b')]['rawAttributes']);_0x391cce['query']=_[_0xbb5e('0x46')](_0x4d254b[_0xbb5e('0x45')]);_0x391cce['filters']=_[_0xbb5e('0x48')](_0x391cce[_0xbb5e('0x44')],_0x391cce[_0xbb5e('0x45')]);_0x2ac9d1[_0xbb5e('0x49')]=_['intersection'](_0x391cce[_0xbb5e('0x44')],qs[_0xbb5e('0x4a')](_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x4a')]));_0x2ac9d1['attributes']=_0x2ac9d1['attributes'][_0xbb5e('0x4b')]?_0x2ac9d1[_0xbb5e('0x49')]:_0x391cce['model'];_0x2ac9d1[_0xbb5e('0x4d')]=qs[_0xbb5e('0x4e')](_0x4d254b['query'][_0xbb5e('0x4e')]);_0x2ac9d1[_0xbb5e('0x50')]=qs[_0xbb5e('0x47')](_[_0xbb5e('0x69')](_0x4d254b[_0xbb5e('0x45')],_0x391cce[_0xbb5e('0x47')]));if(_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x4f')]){_0x2ac9d1['where']=_[_0xbb5e('0x51')](_0x2ac9d1['where'],{'$or':_[_0xbb5e('0x3e')](_0x2ac9d1['attributes'],function(_0x3c6882){var _0x3b3867={};_0x3b3867[_0x3c6882]={'$like':'%'+_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x4f')]+'%'};return _0x3b3867;})});}_0x2ac9d1=_[_0xbb5e('0x51')]({},_0x2ac9d1,_0x4d254b[_0xbb5e('0x53')]);return _0xe9559e[_0xbb5e('0x9b')](_0x2ac9d1);}})[_0xbb5e('0x23')](function(_0x13a915){if(_0x13a915){_0x15c184=_0x13a915[_0xbb5e('0x4b')];if(!_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x4c')](_0xbb5e('0x73'))){_0x2ac9d1[_0xbb5e('0x33')]=qs['limit'](_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x33')]);_0x2ac9d1[_0xbb5e('0x32')]=qs[_0xbb5e('0x32')](_0x4d254b[_0xbb5e('0x45')][_0xbb5e('0x32')]);}return _0xe9559e[_0xbb5e('0x9b')](_0x2ac9d1);}})[_0xbb5e('0x23')](function(_0x3163a0){if(_0x3163a0){return _0x3163a0?{'count':_0x15c184,'rows':_0x3163a0}:null;}})[_0xbb5e('0x23')](respondWithResult(_0xc40c37,null))[_0xbb5e('0x2d')](handleError(_0xc40c37,null));};