19e1979378de43aec21ada297dfe2f56620b25cc
[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 _0x9529=['find','create','body','role','user','UserProfileSection','autoAssociation','UserProfileResource','params','describe','getMembers','UserChatQueue','fields','nolimit','ChatQueueId','User','findAndCountAll','agent','chatPause','updatedAt','createdAt','format','SIP','getTeams','findOne','Team','addTeams','ids','Agents','online','voicePause','interface','sequelize','transaction','findOrCreate','forEach','userChatQueue:save','removeTeams','select','field','tq.TeamId','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','push','toString','QueryTypes','SELECT','every','all','compact','removeAgents','emit','userChatQueue:remove','addAgents','omit','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','request','then','info','ChatQueue,\x20%s,\x20%s','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','get','ChatQueues','stack','name','send','index','map','fieldName','key','query','intersection','model','length','hasOwnProperty','order','sort','where','pick','filters','type','VIRTUAL','filter','merge','options','ChatQueue','include','findAll','rows','show','rawAttributes','keys','attributes','includeAll'];(function(_0x4e9d3c,_0x1f4b98){var _0x2d0825=function(_0x384676){while(--_0x384676){_0x4e9d3c['push'](_0x4e9d3c['shift']());}};_0x2d0825(++_0x1f4b98);}(_0x9529,0xce));var _0x9952=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x9529[_0x20a584];return _0x4b41a8;};'use strict';var pdf=require(_0x9952('0x0'));var emlformat=require(_0x9952('0x1'));var rimraf=require(_0x9952('0x2'));var zipdir=require(_0x9952('0x3'));var jsonpatch=require(_0x9952('0x4'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9952('0x5'));var util=require(_0x9952('0x6'));var path=require(_0x9952('0x7'));var sox=require(_0x9952('0x8'));var csv=require(_0x9952('0x9'));var ejs=require(_0x9952('0xa'));var fs=require('fs');var _=require(_0x9952('0xb'));var squel=require('squel');var crypto=require(_0x9952('0xc'));var jsforce=require(_0x9952('0xd'));var deskjs=require(_0x9952('0xe'));var toCsv=require(_0x9952('0x9'));var querystring=require('querystring');var Papa=require(_0x9952('0xf'));var Redis=require('ioredis');var authService=require(_0x9952('0x10'));var qs=require(_0x9952('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9952('0x12'))(_0x9952('0x13'));var utils=require(_0x9952('0x14'));var config=require(_0x9952('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x9952('0x16'))['db'];config[_0x9952('0x17')]=_[_0x9952('0x18')](config[_0x9952('0x17')],{'host':'localhost','port':0x18eb});var socket=require(_0x9952('0x19'))(new Redis(config[_0x9952('0x17')]));require(_0x9952('0x1a'))[_0x9952('0x1b')](socket);var jayson=require(_0x9952('0x1c'));var client=jayson['client'][_0x9952('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x47d9a1,_0x189466,_0x22af4b,_0xe87c46){return new BPromise(function(_0x4b7cbc,_0xfd31b5){var _0x412d2f=_0xe87c46||client;return _0x412d2f[_0x9952('0x1e')](_0x47d9a1,_0x22af4b)[_0x9952('0x1f')](function(_0x4be11d){logger[_0x9952('0x20')](_0x9952('0x21'),_0x189466,'request\x20sent');logger['debug'](_0x9952('0x22'),_0x189466,_0x9952('0x23'),JSON['stringify'](_0x4be11d));if(_0x4be11d[_0x9952('0x24')]){if(_0x4be11d['error'][_0x9952('0x25')]===0x1f4){logger[_0x9952('0x24')](_0x9952('0x21'),_0x189466,_0x4be11d[_0x9952('0x24')][_0x9952('0x26')]);return _0xfd31b5(_0x4be11d['error'][_0x9952('0x26')]);}logger['error'](_0x9952('0x21'),_0x189466,_0x4be11d[_0x9952('0x24')][_0x9952('0x26')]);return _0x4b7cbc(_0x4be11d[_0x9952('0x24')]['message']);}else{logger['info'](_0x9952('0x21'),_0x189466,_0x9952('0x23'));_0x4b7cbc(_0x4be11d[_0x9952('0x27')][_0x9952('0x26')]);}})[_0x9952('0x28')](function(_0x59040c){logger['error']('ChatQueue,\x20%s,\x20%s',_0x189466,_0x59040c);_0xfd31b5(_0x59040c);});});}function respondWithStatusCode(_0x1cde9f,_0x1d0728){_0x1d0728=_0x1d0728||0xcc;return function(_0x7c0284){if(_0x7c0284){return _0x1cde9f[_0x9952('0x29')](_0x1d0728);}return _0x1cde9f[_0x9952('0x2a')](_0x1d0728)[_0x9952('0x2b')]();};}function respondWithResult(_0x380201,_0x3d14d7){_0x3d14d7=_0x3d14d7||0xc8;return function(_0x43370c){if(_0x43370c){return _0x380201[_0x9952('0x2a')](_0x3d14d7)[_0x9952('0x2c')](_0x43370c);}};}function respondWithFilteredResult(_0x2b9aa8,_0xa7740e){return function(_0x494f9f){if(_0x494f9f){var _0x5b461c=_0x494f9f[_0x9952('0x2d')],_0x22eaa4=_0xa7740e[_0x9952('0x2e')],_0x46a337=_0xa7740e[_0x9952('0x2e')]+_0xa7740e[_0x9952('0x2f')],_0x49c45e;if(_0x46a337>=_0x5b461c){_0x46a337=_0x5b461c;_0x49c45e=0xc8;}else{_0x49c45e=0xce;}_0x2b9aa8['status'](_0x49c45e);return _0x2b9aa8[_0x9952('0x30')](_0x9952('0x31'),_0x22eaa4+'-'+_0x46a337+'/'+_0x5b461c)[_0x9952('0x2c')](_0x494f9f);}return null;};}function patchUpdates(_0x834181){return function(_0x5145c5){try{jsonpatch[_0x9952('0x32')](_0x5145c5,_0x834181,!![]);}catch(_0xcd1768){return BPromise[_0x9952('0x33')](_0xcd1768);}return _0x5145c5[_0x9952('0x34')]();};}function saveUpdates(_0x582fcc,_0x1c0e01){return function(_0xf130c5){if(_0xf130c5){return _0xf130c5[_0x9952('0x35')](_0x582fcc)[_0x9952('0x1f')](function(_0x4ac17e){return _0x4ac17e;});}return null;};}function removeEntity(_0x2d8cc4,_0x19102f){return function(_0x52749b){if(_0x52749b){return _0x52749b[_0x9952('0x36')]()[_0x9952('0x1f')](function(){var _0x20d6b5=_0x52749b[_0x9952('0x37')]({'plain':!![]});var _0x4878ed=_0x9952('0x38');return db['UserProfileResource'][_0x9952('0x36')]({'where':{'type':_0x4878ed,'resourceId':_0x20d6b5['id']}})[_0x9952('0x1f')](function(){return _0x52749b;});})[_0x9952('0x1f')](function(){_0x2d8cc4[_0x9952('0x2a')](0xcc)[_0x9952('0x2b')]();});}};}function handleEntityNotFound(_0x290661,_0x328737){return function(_0x3e4037){if(!_0x3e4037){_0x290661['sendStatus'](0x194);}return _0x3e4037;};}function handleError(_0x4a374e,_0x4f8ffd){_0x4f8ffd=_0x4f8ffd||0x1f4;return function(_0x2155a7){logger[_0x9952('0x24')](_0x2155a7[_0x9952('0x39')]);if(_0x2155a7[_0x9952('0x3a')]){delete _0x2155a7[_0x9952('0x3a')];}_0x4a374e[_0x9952('0x2a')](_0x4f8ffd)[_0x9952('0x3b')](_0x2155a7);};}exports[_0x9952('0x3c')]=function(_0x28a98e,_0x5d53dd){var _0x5306cb={},_0x2fe541={},_0x4ce028={'count':0x0,'rows':[]};var _0x492786=_[_0x9952('0x3d')](db['ChatQueue']['rawAttributes'],function(_0x12bda6){return{'name':_0x12bda6[_0x9952('0x3e')],'type':_0x12bda6['type'][_0x9952('0x3f')]};});_0x2fe541['model']=_['map'](_0x492786,_0x9952('0x3a'));_0x2fe541[_0x9952('0x40')]=_['keys'](_0x28a98e['query']);_0x2fe541['filters']=_[_0x9952('0x41')](_0x2fe541[_0x9952('0x42')],_0x2fe541[_0x9952('0x40')]);_0x5306cb['attributes']=_[_0x9952('0x41')](_0x2fe541[_0x9952('0x42')],qs['fields'](_0x28a98e['query']['fields']));_0x5306cb['attributes']=_0x5306cb['attributes'][_0x9952('0x43')]?_0x5306cb['attributes']:_0x2fe541[_0x9952('0x42')];if(!_0x28a98e[_0x9952('0x40')][_0x9952('0x44')]('nolimit')){_0x5306cb[_0x9952('0x2f')]=qs['limit'](_0x28a98e[_0x9952('0x40')]['limit']);_0x5306cb[_0x9952('0x2e')]=qs['offset'](_0x28a98e[_0x9952('0x40')]['offset']);}_0x5306cb[_0x9952('0x45')]=qs[_0x9952('0x46')](_0x28a98e[_0x9952('0x40')][_0x9952('0x46')]);_0x5306cb[_0x9952('0x47')]=qs['filters'](_[_0x9952('0x48')](_0x28a98e['query'],_0x2fe541[_0x9952('0x49')]),_0x492786);if(_0x28a98e[_0x9952('0x40')]['filter']){_0x5306cb['where']=_['merge'](_0x5306cb[_0x9952('0x47')],{'$or':_[_0x9952('0x3d')](_0x492786,function(_0x270a5e){if(_0x270a5e[_0x9952('0x4a')]!==_0x9952('0x4b')){var _0x38d870={};_0x38d870[_0x270a5e['name']]={'$like':'%'+_0x28a98e[_0x9952('0x40')][_0x9952('0x4c')]+'%'};return _0x38d870;}})});}_0x5306cb=_[_0x9952('0x4d')]({},_0x5306cb,_0x28a98e[_0x9952('0x4e')]);var _0x4b41e0={'where':_0x5306cb['where']};return db[_0x9952('0x4f')]['count'](_0x4b41e0)[_0x9952('0x1f')](function(_0xdac7f7){_0x4ce028['count']=_0xdac7f7;if(_0x28a98e[_0x9952('0x40')]['includeAll']){_0x5306cb[_0x9952('0x50')]=[{'all':!![]}];}return db[_0x9952('0x4f')][_0x9952('0x51')](_0x5306cb);})[_0x9952('0x1f')](function(_0x49dbf9){_0x4ce028[_0x9952('0x52')]=_0x49dbf9;return _0x4ce028;})['then'](respondWithFilteredResult(_0x5d53dd,_0x5306cb))[_0x9952('0x28')](handleError(_0x5d53dd,null));};exports[_0x9952('0x53')]=function(_0x2cbbc0,_0x49ff75){var _0x8baf02={'raw':!![],'where':{'id':_0x2cbbc0['params']['id']}},_0xb98bee={};_0xb98bee['model']=_['keys'](db[_0x9952('0x4f')][_0x9952('0x54')]);_0xb98bee[_0x9952('0x40')]=_[_0x9952('0x55')](_0x2cbbc0[_0x9952('0x40')]);_0xb98bee[_0x9952('0x49')]=_[_0x9952('0x41')](_0xb98bee['model'],_0xb98bee[_0x9952('0x40')]);_0x8baf02['attributes']=_['intersection'](_0xb98bee['model'],qs['fields'](_0x2cbbc0[_0x9952('0x40')]['fields']));_0x8baf02[_0x9952('0x56')]=_0x8baf02[_0x9952('0x56')][_0x9952('0x43')]?_0x8baf02[_0x9952('0x56')]:_0xb98bee[_0x9952('0x42')];if(_0x2cbbc0['query'][_0x9952('0x57')]){_0x8baf02['include']=[{'all':!![]}];}_0x8baf02=_[_0x9952('0x4d')]({},_0x8baf02,_0x2cbbc0['options']);return db[_0x9952('0x4f')][_0x9952('0x58')](_0x8baf02)['then'](handleEntityNotFound(_0x49ff75,null))[_0x9952('0x1f')](respondWithResult(_0x49ff75,null))[_0x9952('0x28')](handleError(_0x49ff75,null));};exports['create']=function(_0x50a3b3,_0x1e17ad){return db['ChatQueue'][_0x9952('0x59')](_0x50a3b3[_0x9952('0x5a')],{})[_0x9952('0x1f')](function(_0xe44cf3){var _0x364f46=_0x50a3b3['user'][_0x9952('0x37')]({'plain':!![]});if(!_0x364f46)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x364f46[_0x9952('0x5b')]===_0x9952('0x5c')){var _0x45441c=_0xe44cf3[_0x9952('0x37')]({'plain':!![]});var _0xbd3471=_0x9952('0x38');return db[_0x9952('0x5d')][_0x9952('0x58')]({'where':{'name':_0xbd3471,'userProfileId':_0x364f46['userProfileId']},'raw':!![]})[_0x9952('0x1f')](function(_0x52c663){if(_0x52c663&&_0x52c663[_0x9952('0x5e')]===0x0){return db[_0x9952('0x5f')]['create']({'name':_0x45441c[_0x9952('0x3a')],'resourceId':_0x45441c['id'],'type':_0x52c663[_0x9952('0x3a')],'sectionId':_0x52c663['id']},{})[_0x9952('0x1f')](function(){return _0xe44cf3;});}else{return _0xe44cf3;}})['catch'](function(_0x5595e8){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5595e8);throw _0x5595e8;});}return _0xe44cf3;})['then'](respondWithResult(_0x1e17ad,0xc9))['catch'](handleError(_0x1e17ad,null));};exports['update']=function(_0x3293be,_0xd76323){if(_0x3293be[_0x9952('0x5a')]['id']){delete _0x3293be['body']['id'];}return db[_0x9952('0x4f')]['find']({'where':{'id':_0x3293be[_0x9952('0x60')]['id']}})['then'](handleEntityNotFound(_0xd76323,null))[_0x9952('0x1f')](saveUpdates(_0x3293be['body'],null))[_0x9952('0x1f')](respondWithResult(_0xd76323,null))[_0x9952('0x28')](handleError(_0xd76323,null));};exports[_0x9952('0x36')]=function(_0x26162d,_0x228cc7){return db['ChatQueue'][_0x9952('0x58')]({'where':{'id':_0x26162d[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](handleEntityNotFound(_0x228cc7,null))[_0x9952('0x1f')](removeEntity(_0x228cc7,null))[_0x9952('0x28')](handleError(_0x228cc7,null));};exports[_0x9952('0x61')]=function(_0x4bb8ef,_0x7a8a9c){return db[_0x9952('0x4f')][_0x9952('0x61')]()[_0x9952('0x1f')](respondWithResult(_0x7a8a9c,null))['catch'](handleError(_0x7a8a9c,null));};exports[_0x9952('0x62')]=function(_0x159b67,_0x1d8c46,_0x342987){var _0x11b704={'raw':!![],'where':{}},_0x27b4f1={},_0x360537;return db[_0x9952('0x4f')]['findOne']({'where':{'id':_0x159b67[_0x9952('0x60')]['id']}})['then'](handleEntityNotFound(_0x1d8c46,null))['then'](function(_0x30e8f6){if(_0x30e8f6){_0x360537=_0x30e8f6[_0x9952('0x37')]({'plain':!![]});_0x27b4f1['model']=_[_0x9952('0x55')](db[_0x9952('0x63')][_0x9952('0x54')]);_0x27b4f1[_0x9952('0x40')]=_[_0x9952('0x55')](_0x159b67['query']);_0x27b4f1[_0x9952('0x49')]=_[_0x9952('0x41')](_0x27b4f1[_0x9952('0x42')],_0x27b4f1[_0x9952('0x40')]);_0x11b704[_0x9952('0x56')]=_[_0x9952('0x41')](_0x27b4f1['model'],qs[_0x9952('0x64')](_0x159b67[_0x9952('0x40')][_0x9952('0x64')]));_0x11b704[_0x9952('0x56')]=_0x11b704['attributes'][_0x9952('0x43')]?_0x11b704[_0x9952('0x56')]:_0x27b4f1['model'];if(!_0x159b67['query'][_0x9952('0x44')](_0x9952('0x65'))){_0x11b704[_0x9952('0x2f')]=qs[_0x9952('0x2f')](_0x159b67[_0x9952('0x40')][_0x9952('0x2f')]);_0x11b704[_0x9952('0x2e')]=qs[_0x9952('0x2e')](_0x159b67[_0x9952('0x40')]['offset']);}_0x11b704[_0x9952('0x45')]=qs[_0x9952('0x46')](_0x159b67['query'][_0x9952('0x46')]);_0x11b704[_0x9952('0x47')]=qs['filters'](_[_0x9952('0x48')](_0x159b67['query'],_0x27b4f1[_0x9952('0x49')]));_0x11b704[_0x9952('0x47')][_0x9952('0x66')]=_0x30e8f6['id'];if(_0x159b67[_0x9952('0x40')][_0x9952('0x4c')]){_0x11b704[_0x9952('0x47')]=_[_0x9952('0x4d')](_0x11b704[_0x9952('0x47')],{'$or':_[_0x9952('0x3d')](_0x11b704[_0x9952('0x56')],function(_0x2f7043){var _0x4e0d43={};_0x4e0d43[_0x2f7043]={'$like':'%'+_0x159b67[_0x9952('0x40')][_0x9952('0x4c')]+'%'};return _0x4e0d43;})});}_0x11b704=_[_0x9952('0x4d')]({},_0x11b704,_0x159b67[_0x9952('0x4e')]);return db[_0x9952('0x63')][_0x9952('0x51')](_0x11b704);}})['then'](function(_0x41d62d){if(_0x41d62d){return db[_0x9952('0x67')][_0x9952('0x68')]({'where':{'id':_[_0x9952('0x3d')](_0x41d62d,'UserId'),'role':_0x9952('0x69')},'attributes':['id','name',_0x9952('0x6a'),_0x9952('0x6b'),_0x9952('0x6c')]});}})[_0x9952('0x1f')](function(_0x678163){if(_0x678163){return{'count':_0x678163[_0x9952('0x2d')],'rows':_[_0x9952('0x3d')](_0x678163[_0x9952('0x52')],function(_0x4a723f){return{'membername':_0x4a723f[_0x9952('0x3a')],'UserId':_0x4a723f['id'],'queue_name':_0x360537['name'],'ChatQueueId':_0x360537['id'],'interface':util[_0x9952('0x6d')]('%s/%s',_0x9952('0x6e'),_0x4a723f['name']),'penalty':0x0,'paused':_0x4a723f['chatPause'],'createdAt':_0x4a723f[_0x9952('0x6c')],'updatedAt':_0x4a723f[_0x9952('0x6b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9952('0x1f')](respondWithFilteredResult(_0x1d8c46,_0x11b704))[_0x9952('0x28')](handleError(_0x1d8c46,null));};exports[_0x9952('0x6f')]=function(_0x267153,_0x35f706,_0x39f673){var _0x9c9a0f={};var _0x2c5878={};var _0x23e9af;var _0x528ee2;return db[_0x9952('0x4f')][_0x9952('0x70')]({'where':{'id':_0x267153[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](handleEntityNotFound(_0x35f706,null))[_0x9952('0x1f')](function(_0x2fc05f){if(_0x2fc05f){_0x23e9af=_0x2fc05f;_0x2c5878['model']=_[_0x9952('0x55')](db[_0x9952('0x71')][_0x9952('0x54')]);_0x2c5878[_0x9952('0x40')]=_[_0x9952('0x55')](_0x267153['query']);_0x2c5878['filters']=_[_0x9952('0x41')](_0x2c5878[_0x9952('0x42')],_0x2c5878[_0x9952('0x40')]);_0x9c9a0f[_0x9952('0x56')]=_['intersection'](_0x2c5878[_0x9952('0x42')],qs[_0x9952('0x64')](_0x267153['query'][_0x9952('0x64')]));_0x9c9a0f['attributes']=_0x9c9a0f[_0x9952('0x56')][_0x9952('0x43')]?_0x9c9a0f['attributes']:_0x2c5878[_0x9952('0x42')];_0x9c9a0f[_0x9952('0x45')]=qs['sort'](_0x267153[_0x9952('0x40')][_0x9952('0x46')]);_0x9c9a0f[_0x9952('0x47')]=qs[_0x9952('0x49')](_[_0x9952('0x48')](_0x267153[_0x9952('0x40')],_0x2c5878['filters']));if(_0x267153['query']['filter']){_0x9c9a0f['where']=_[_0x9952('0x4d')](_0x9c9a0f[_0x9952('0x47')],{'$or':_['map'](_0x9c9a0f[_0x9952('0x56')],function(_0x52f69d){var _0x10f339={};_0x10f339[_0x52f69d]={'$like':'%'+_0x267153[_0x9952('0x40')][_0x9952('0x4c')]+'%'};return _0x10f339;})});}_0x9c9a0f=_['merge']({},_0x9c9a0f,_0x267153[_0x9952('0x4e')]);return _0x23e9af['getTeams'](_0x9c9a0f);}})['then'](function(_0x285171){if(_0x285171){_0x528ee2=_0x285171['length'];if(!_0x267153['query'][_0x9952('0x44')](_0x9952('0x65'))){_0x9c9a0f[_0x9952('0x2f')]=qs[_0x9952('0x2f')](_0x267153[_0x9952('0x40')]['limit']);_0x9c9a0f['offset']=qs[_0x9952('0x2e')](_0x267153[_0x9952('0x40')][_0x9952('0x2e')]);}return _0x23e9af[_0x9952('0x6f')](_0x9c9a0f);}})['then'](function(_0x4abd43){if(_0x4abd43){return _0x4abd43?{'count':_0x528ee2,'rows':_0x4abd43}:null;}})[_0x9952('0x1f')](respondWithResult(_0x35f706,null))[_0x9952('0x28')](handleError(_0x35f706,null));};exports[_0x9952('0x72')]=function(_0x334079,_0x2c4c94,_0x4f3e03){var _0x22bf6a=_0x334079[_0x9952('0x5a')][_0x9952('0x73')];return db[_0x9952('0x71')][_0x9952('0x51')]({'where':{'id':_0x22bf6a},'attributes':['id'],'include':[{'model':db[_0x9952('0x67')],'as':_0x9952('0x74'),'attributes':['id',_0x9952('0x3a'),_0x9952('0x75'),_0x9952('0x76'),_0x9952('0x77')],'raw':!![]}]})[_0x9952('0x1f')](function(_0xe47855){if(_0xe47855){var _0x5711c1=_['flatMap'](_0xe47855,function(_0x18b2ce){var _0x235a3b=_0x18b2ce[_0x9952('0x37')]({'plain':!![]});return _0x235a3b['Agents'];});return db['ChatQueue'][_0x9952('0x58')]({'where':{'id':_0x334079[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](function(_0x3a47d8){return db[_0x9952('0x78')][_0x9952('0x79')](function(_0x59ff3f){return _0x3a47d8[_0x9952('0x72')](_0x22bf6a,{'transaction':_0x59ff3f})[_0x9952('0x1f')](function(){return BPromise['each'](_0x5711c1,function(_0x2a9c50){return db[_0x9952('0x63')][_0x9952('0x7a')]({'where':{'UserId':_0x2a9c50['id'],'ChatQueueId':_0x334079[_0x9952('0x60')]['id']},'transaction':_0x59ff3f});});})[_0x9952('0x1f')](function(){_0x5711c1[_0x9952('0x7b')](function(_0x4e060e){socket['emit'](_0x9952('0x7c'),{'UserId':_0x4e060e['id'],'ChatQueueId':_0x3a47d8['id']});});});});});}})[_0x9952('0x1f')](respondWithStatusCode(_0x2c4c94,null))[_0x9952('0x28')](handleError(_0x2c4c94,null));};exports[_0x9952('0x7d')]=function(_0x16e5cf,_0x40476f,_0x13e0c5){return db[_0x9952('0x71')][_0x9952('0x51')]({'where':{'id':_0x16e5cf[_0x9952('0x40')]['ids']},'attributes':['id'],'include':[{'model':db[_0x9952('0x67')],'as':_0x9952('0x74'),'attributes':['id'],'raw':!![]}]})[_0x9952('0x1f')](handleEntityNotFound(_0x40476f,null))[_0x9952('0x1f')](function(_0x19410a){var _0xabaaaa=_[_0x9952('0x3d')](_0x19410a,'id');var _0x578ca8=[];var _0x257f39=[];var _0x5cbbbb=squel[_0x9952('0x7e')]();_0x5cbbbb[_0x9952('0x7f')](_0x9952('0x80'))['from'](_0x9952('0x81'),'tq')[_0x9952('0x82')](_0x9952('0x83'),'ut',_0x9952('0x84'))[_0x9952('0x47')](_0x9952('0x85'),_0x16e5cf[_0x9952('0x60')]['id']);for(var _0x46bf0f=0x0;_0x46bf0f<_0x19410a[_0x9952('0x43')];_0x46bf0f+=0x1){let _0x5dce46=_0x19410a[_0x46bf0f];for(var _0x293d4e=0x0;_0x293d4e<_0x5dce46[_0x9952('0x74')]['length'];_0x293d4e+=0x1){let _0x1ca235=_0x5dce46[_0x9952('0x74')][_0x293d4e];var _0x20b845=_0x5cbbbb[_0x9952('0x86')]();_0x20b845[_0x9952('0x47')]('ut.UserId\x20=\x20?',_0x1ca235['id']);_0x257f39[_0x9952('0x87')](db[_0x9952('0x78')][_0x9952('0x40')](_0x20b845[_0x9952('0x88')](),{'type':db[_0x9952('0x78')][_0x9952('0x89')][_0x9952('0x8a')]})[_0x9952('0x1f')](function(_0x1bc52a){if(_0x1bc52a[_0x9952('0x43')]===0x1){return _0x1ca235['id'];}else{var _0x2a7b3f=_[_0x9952('0x8b')](_['map'](_0x1bc52a,'TeamId'),function(_0x5bcc69){return _['includes'](_0xabaaaa,_0x5bcc69);});if(_0x2a7b3f){return _0x1ca235['id'];}}}));}}return BPromise[_0x9952('0x8c')](_0x257f39)[_0x9952('0x1f')](function(_0x101e8a){_0x578ca8=_(_0x578ca8)['union'](_0x101e8a)[_0x9952('0x8d')]()['value']();return db[_0x9952('0x4f')]['find']({'where':{'id':_0x16e5cf[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](function(_0x5508b7){return db['sequelize'][_0x9952('0x79')](function(_0x356d0d){return _0x5508b7[_0x9952('0x7d')](_0x16e5cf[_0x9952('0x40')][_0x9952('0x73')],{'transaction':_0x356d0d})['then'](function(){if(!_['isEmpty'](_0x578ca8)){return _0x5508b7[_0x9952('0x8e')](_0x578ca8,{'transaction':_0x356d0d});}})['then'](function(){_0x578ca8['forEach'](function(_0x2dd2d3){socket[_0x9952('0x8f')](_0x9952('0x90'),{'UserId':_0x2dd2d3,'ChatQueueId':_0x5508b7['id']});});});});});});})['then'](respondWithStatusCode(_0x40476f,null))[_0x9952('0x28')](handleError(_0x40476f,null));};exports[_0x9952('0x91')]=function(_0x4c2ca3,_0x419307,_0x139877){return db['ChatQueue'][_0x9952('0x58')]({'where':{'id':_0x4c2ca3[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](handleEntityNotFound(_0x419307,null))['then'](function(_0x2bd2f3){if(_0x2bd2f3){return _0x2bd2f3[_0x9952('0x91')](_0x4c2ca3[_0x9952('0x5a')][_0x9952('0x73')],_[_0x9952('0x92')](_0x4c2ca3['body'],[_0x9952('0x73'),'id'])||{})['spread'](function(_0x20cf5b){for(var _0x1bc710=0x0;_0x1bc710<_0x4c2ca3[_0x9952('0x5a')][_0x9952('0x73')][_0x9952('0x43')];_0x1bc710+=0x1){socket[_0x9952('0x8f')](_0x9952('0x7c'),{'UserId':_0x4c2ca3[_0x9952('0x5a')][_0x9952('0x73')][_0x1bc710],'ChatQueueId':_0x4c2ca3[_0x9952('0x60')]['id']});}return _0x20cf5b;});}})[_0x9952('0x1f')](respondWithResult(_0x419307,null))[_0x9952('0x28')](handleError(_0x419307,null));};exports['removeAgents']=function(_0x48fa2e,_0x1c027c,_0x1d10d6){return db[_0x9952('0x4f')][_0x9952('0x58')]({'where':{'id':_0x48fa2e[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](handleEntityNotFound(_0x1c027c,null))[_0x9952('0x1f')](function(_0x266c45){if(_0x266c45){return _0x266c45['removeAgents'](_0x48fa2e[_0x9952('0x40')]['ids'])[_0x9952('0x1f')](function(){if(_['isArray'](_0x48fa2e[_0x9952('0x40')][_0x9952('0x73')])){for(var _0x5166d0=0x0;_0x5166d0<_0x48fa2e['query'][_0x9952('0x73')][_0x9952('0x43')];_0x5166d0+=0x1){socket['emit'](_0x9952('0x90'),{'UserId':Number(_0x48fa2e[_0x9952('0x40')][_0x9952('0x73')][_0x5166d0]),'ChatQueueId':Number(_0x48fa2e[_0x9952('0x60')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x48fa2e['query'][_0x9952('0x73')]),'ChatQueueId':Number(_0x48fa2e[_0x9952('0x60')]['id'])});}});}})['then'](respondWithStatusCode(_0x1c027c,null))[_0x9952('0x28')](handleError(_0x1c027c,null));};exports['getAgents']=function(_0x4aaa71,_0x3ec6b7,_0x228388){var _0x3700a4={};var _0x107661={};var _0xb2dedc;var _0x11130d;return db['ChatQueue']['findOne']({'where':{'id':_0x4aaa71[_0x9952('0x60')]['id']}})[_0x9952('0x1f')](handleEntityNotFound(_0x3ec6b7,null))[_0x9952('0x1f')](function(_0x6b4521){if(_0x6b4521){_0xb2dedc=_0x6b4521;_0x107661[_0x9952('0x42')]=_['keys'](db['User'][_0x9952('0x54')]);_0x107661['query']=_['keys'](_0x4aaa71[_0x9952('0x40')]);_0x107661[_0x9952('0x49')]=_[_0x9952('0x41')](_0x107661['model'],_0x107661[_0x9952('0x40')]);_0x3700a4[_0x9952('0x56')]=_['intersection'](_0x107661['model'],qs[_0x9952('0x64')](_0x4aaa71[_0x9952('0x40')]['fields']));_0x3700a4['attributes']=_0x3700a4[_0x9952('0x56')]['length']?_0x3700a4[_0x9952('0x56')]:_0x107661[_0x9952('0x42')];_0x3700a4['order']=qs[_0x9952('0x46')](_0x4aaa71[_0x9952('0x40')][_0x9952('0x46')]);_0x3700a4['where']=qs[_0x9952('0x49')](_['pick'](_0x4aaa71[_0x9952('0x40')],_0x107661[_0x9952('0x49')]));if(_0x4aaa71[_0x9952('0x40')][_0x9952('0x4c')]){_0x3700a4[_0x9952('0x47')]=_[_0x9952('0x4d')](_0x3700a4[_0x9952('0x47')],{'$or':_[_0x9952('0x3d')](_0x3700a4['attributes'],function(_0x2b4256){var _0x38358a={};_0x38358a[_0x2b4256]={'$like':'%'+_0x4aaa71[_0x9952('0x40')][_0x9952('0x4c')]+'%'};return _0x38358a;})});}_0x3700a4=_[_0x9952('0x4d')]({},_0x3700a4,_0x4aaa71[_0x9952('0x4e')]);return _0xb2dedc['getAgents'](_0x3700a4);}})[_0x9952('0x1f')](function(_0x4b0775){if(_0x4b0775){_0x11130d=_0x4b0775[_0x9952('0x43')];if(!_0x4aaa71['query'][_0x9952('0x44')]('nolimit')){_0x3700a4[_0x9952('0x2f')]=qs[_0x9952('0x2f')](_0x4aaa71[_0x9952('0x40')][_0x9952('0x2f')]);_0x3700a4[_0x9952('0x2e')]=qs[_0x9952('0x2e')](_0x4aaa71[_0x9952('0x40')][_0x9952('0x2e')]);}return _0xb2dedc['getAgents'](_0x3700a4);}})[_0x9952('0x1f')](function(_0x356cfd){if(_0x356cfd){return _0x356cfd?{'count':_0x11130d,'rows':_0x356cfd}:null;}})['then'](respondWithResult(_0x3ec6b7,null))[_0x9952('0x28')](handleError(_0x3ec6b7,null));};