Built motion from commit 9d0783e6.|2.6.13
[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 _0xfa03=['user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','getMembers','findOne','UserChatQueue','nolimit','order','ChatQueueId','User','chatPause','updatedAt','createdAt','format','%s/%s','SIP','Team','getTeams','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','removeTeams','ids','select','field','tq.TeamId','from','team_has_chat_queues','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','all','union','compact','value','isEmpty','userChatQueue:remove','addAgents','omit','spread','userChatQueue:save','removeAgents','getAgents','eml-format','rimraf','fast-json-patch','request-promise','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','offset','undefined','count','set','Content-Range','save','update','destroy','ChatQueues','end','name','send','index','ChatQueue','rawAttributes','fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','show','keys','find','create'];(function(_0x17dffb,_0x365d85){var _0x36dc9b=function(_0x4b8de7){while(--_0x4b8de7){_0x17dffb['push'](_0x17dffb['shift']());}};_0x36dc9b(++_0x365d85);}(_0xfa03,0xe3));var _0x3fa0=function(_0x55b64f,_0x1a0650){_0x55b64f=_0x55b64f-0x0;var _0x1eeea5=_0xfa03[_0x55b64f];return _0x1eeea5;};'use strict';var emlformat=require(_0x3fa0('0x0'));var rimraf=require(_0x3fa0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3fa0('0x2'));var rp=require(_0x3fa0('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3fa0('0x4'));var util=require(_0x3fa0('0x5'));var path=require(_0x3fa0('0x6'));var sox=require(_0x3fa0('0x7'));var csv=require('to-csv');var ejs=require(_0x3fa0('0x8'));var fs=require('fs');var fs_extra=require(_0x3fa0('0x9'));var _=require(_0x3fa0('0xa'));var squel=require(_0x3fa0('0xb'));var crypto=require(_0x3fa0('0xc'));var jsforce=require(_0x3fa0('0xd'));var deskjs=require(_0x3fa0('0xe'));var toCsv=require(_0x3fa0('0xf'));var querystring=require(_0x3fa0('0x10'));var Papa=require(_0x3fa0('0x11'));var Redis=require(_0x3fa0('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x3fa0('0x13'));var as=require(_0x3fa0('0x14'));var hardwareService=require(_0x3fa0('0x15'));var logger=require(_0x3fa0('0x16'))(_0x3fa0('0x17'));var utils=require('../../config/utils');var config=require(_0x3fa0('0x18'));var licenseUtil=require(_0x3fa0('0x19'));var db=require(_0x3fa0('0x1a'))['db'];config[_0x3fa0('0x1b')]=_[_0x3fa0('0x1c')](config[_0x3fa0('0x1b')],{'host':_0x3fa0('0x1d'),'port':0x18eb});var socket=require(_0x3fa0('0x1e'))(new Redis(config['redis']));require(_0x3fa0('0x1f'))[_0x3fa0('0x20')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3fa0('0x21')][_0x3fa0('0x22')]({'port':0x232a});function respondWithRpcPromise(_0x3f123f,_0x19e420,_0x48e875,_0x8bf61f){return new BPromise(function(_0x252044,_0x251d0d){var _0x2c1543=_0x8bf61f||client;return _0x2c1543[_0x3fa0('0x23')](_0x3f123f,_0x48e875)[_0x3fa0('0x24')](function(_0x3c5845){logger[_0x3fa0('0x25')](_0x3fa0('0x26'),_0x19e420,_0x3fa0('0x27'));logger[_0x3fa0('0x28')](_0x3fa0('0x29'),_0x19e420,_0x3fa0('0x27'),JSON['stringify'](_0x3c5845));if(_0x3c5845[_0x3fa0('0x2a')]){if(_0x3c5845['error'][_0x3fa0('0x2b')]===0x1f4){logger[_0x3fa0('0x2a')](_0x3fa0('0x26'),_0x19e420,_0x3c5845[_0x3fa0('0x2a')][_0x3fa0('0x2c')]);return _0x251d0d(_0x3c5845['error'][_0x3fa0('0x2c')]);}logger[_0x3fa0('0x2a')](_0x3fa0('0x26'),_0x19e420,_0x3c5845[_0x3fa0('0x2a')]['message']);return _0x252044(_0x3c5845['error']['message']);}else{logger['info'](_0x3fa0('0x26'),_0x19e420,_0x3fa0('0x27'));_0x252044(_0x3c5845[_0x3fa0('0x2d')][_0x3fa0('0x2c')]);}})[_0x3fa0('0x2e')](function(_0x374843){logger[_0x3fa0('0x2a')](_0x3fa0('0x26'),_0x19e420,_0x374843);_0x251d0d(_0x374843);});});}function respondWithStatusCode(_0xfc77f2,_0x21ac0b){_0x21ac0b=_0x21ac0b||0xcc;return function(_0x588b8f){if(_0x588b8f){return _0xfc77f2[_0x3fa0('0x2f')](_0x21ac0b);}return _0xfc77f2[_0x3fa0('0x30')](_0x21ac0b)['end']();};}function respondWithResult(_0x4478b9,_0xdec09f){_0xdec09f=_0xdec09f||0xc8;return function(_0x3899a5){if(_0x3899a5){return _0x4478b9[_0x3fa0('0x30')](_0xdec09f)[_0x3fa0('0x31')](_0x3899a5);}};}function respondWithFilteredResult(_0x134b8b,_0x1f810c){return function(_0x574e61){if(_0x574e61){var _0x82f589=typeof _0x1f810c[_0x3fa0('0x32')]===_0x3fa0('0x33')&&typeof _0x1f810c['limit']==='undefined';var _0xc123bd=_0x574e61['count'];var _0xa9b1cd=_0x82f589?0x0:_0x1f810c['offset'];var _0x29629f=_0x82f589?_0x574e61[_0x3fa0('0x34')]:_0x1f810c[_0x3fa0('0x32')]+_0x1f810c['limit'];var _0x3152be;if(_0x29629f>=_0xc123bd){_0x29629f=_0xc123bd;_0x3152be=0xc8;}else{_0x3152be=0xce;}_0x134b8b['status'](_0x3152be);return _0x134b8b[_0x3fa0('0x35')](_0x3fa0('0x36'),_0xa9b1cd+'-'+_0x29629f+'/'+_0xc123bd)['json'](_0x574e61);}return null;};}function patchUpdates(_0xd0d16){return function(_0xf658e7){try{jsonpatch['apply'](_0xf658e7,_0xd0d16,!![]);}catch(_0x1256c4){return BPromise['reject'](_0x1256c4);}return _0xf658e7[_0x3fa0('0x37')]();};}function saveUpdates(_0x556613,_0x2cd5d7){return function(_0x2b27a2){if(_0x2b27a2){return _0x2b27a2[_0x3fa0('0x38')](_0x556613)[_0x3fa0('0x24')](function(_0xfbc291){return _0xfbc291;});}return null;};}function removeEntity(_0x560842,_0x33b22e){return function(_0x4c6a61){if(_0x4c6a61){return _0x4c6a61[_0x3fa0('0x39')]()[_0x3fa0('0x24')](function(){var _0x396d4d=_0x4c6a61['get']({'plain':!![]});var _0x4b606d=_0x3fa0('0x3a');return db['UserProfileResource'][_0x3fa0('0x39')]({'where':{'type':_0x4b606d,'resourceId':_0x396d4d['id']}})[_0x3fa0('0x24')](function(){return _0x4c6a61;});})[_0x3fa0('0x24')](function(){_0x560842['status'](0xcc)[_0x3fa0('0x3b')]();});}};}function handleEntityNotFound(_0x1969db,_0x3e1fee){return function(_0x1305fb){if(!_0x1305fb){_0x1969db[_0x3fa0('0x2f')](0x194);}return _0x1305fb;};}function handleError(_0x562642,_0x4ef6f){_0x4ef6f=_0x4ef6f||0x1f4;return function(_0x2e9de0){logger['error'](_0x2e9de0['stack']);if(_0x2e9de0[_0x3fa0('0x3c')]){delete _0x2e9de0[_0x3fa0('0x3c')];}_0x562642[_0x3fa0('0x30')](_0x4ef6f)[_0x3fa0('0x3d')](_0x2e9de0);};}exports[_0x3fa0('0x3e')]=function(_0x33fb3b,_0x169831){var _0x3964f7={},_0x46aeae={},_0x6dbdb2={'count':0x0,'rows':[]};var _0x4e3bdf=_['map'](db[_0x3fa0('0x3f')][_0x3fa0('0x40')],function(_0xc9ed09){return{'name':_0xc9ed09[_0x3fa0('0x41')],'type':_0xc9ed09['type'][_0x3fa0('0x42')]};});_0x46aeae[_0x3fa0('0x43')]=_[_0x3fa0('0x44')](_0x4e3bdf,_0x3fa0('0x3c'));_0x46aeae[_0x3fa0('0x45')]=_['keys'](_0x33fb3b['query']);_0x46aeae[_0x3fa0('0x46')]=_[_0x3fa0('0x47')](_0x46aeae[_0x3fa0('0x43')],_0x46aeae[_0x3fa0('0x45')]);_0x3964f7[_0x3fa0('0x48')]=_[_0x3fa0('0x47')](_0x46aeae[_0x3fa0('0x43')],qs['fields'](_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x49')]));_0x3964f7[_0x3fa0('0x48')]=_0x3964f7[_0x3fa0('0x48')][_0x3fa0('0x4a')]?_0x3964f7[_0x3fa0('0x48')]:_0x46aeae[_0x3fa0('0x43')];if(!_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x4b')]('nolimit')){_0x3964f7[_0x3fa0('0x4c')]=qs[_0x3fa0('0x4c')](_0x33fb3b[_0x3fa0('0x45')]['limit']);_0x3964f7['offset']=qs['offset'](_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x32')]);}_0x3964f7['order']=qs[_0x3fa0('0x4d')](_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x4d')]);_0x3964f7['where']=qs[_0x3fa0('0x46')](_[_0x3fa0('0x4e')](_0x33fb3b[_0x3fa0('0x45')],_0x46aeae[_0x3fa0('0x46')]),_0x4e3bdf);if(_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x4f')]){_0x3964f7['where']=_['merge'](_0x3964f7[_0x3fa0('0x50')],{'$or':_['map'](_0x4e3bdf,function(_0xb2644){if(_0xb2644['type']!=='VIRTUAL'){var _0x3eb941={};_0x3eb941[_0xb2644['name']]={'$like':'%'+_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x4f')]+'%'};return _0x3eb941;}})});}_0x3964f7=_[_0x3fa0('0x51')]({},_0x3964f7,_0x33fb3b[_0x3fa0('0x52')]);var _0x151c6b={'where':_0x3964f7[_0x3fa0('0x50')]};return db[_0x3fa0('0x3f')][_0x3fa0('0x34')](_0x151c6b)[_0x3fa0('0x24')](function(_0x2db895){_0x6dbdb2['count']=_0x2db895;if(_0x33fb3b[_0x3fa0('0x45')][_0x3fa0('0x53')]){_0x3964f7[_0x3fa0('0x54')]=[{'all':!![]}];}return db[_0x3fa0('0x3f')][_0x3fa0('0x55')](_0x3964f7);})[_0x3fa0('0x24')](function(_0x826152){_0x6dbdb2[_0x3fa0('0x56')]=_0x826152;return _0x6dbdb2;})[_0x3fa0('0x24')](respondWithFilteredResult(_0x169831,_0x3964f7))[_0x3fa0('0x2e')](handleError(_0x169831,null));};exports[_0x3fa0('0x57')]=function(_0x373330,_0x50d606){var _0x10a3d0={'raw':!![],'where':{'id':_0x373330['params']['id']}},_0x3074e6={};_0x3074e6['model']=_[_0x3fa0('0x58')](db['ChatQueue']['rawAttributes']);_0x3074e6['query']=_[_0x3fa0('0x58')](_0x373330[_0x3fa0('0x45')]);_0x3074e6[_0x3fa0('0x46')]=_['intersection'](_0x3074e6[_0x3fa0('0x43')],_0x3074e6[_0x3fa0('0x45')]);_0x10a3d0[_0x3fa0('0x48')]=_[_0x3fa0('0x47')](_0x3074e6[_0x3fa0('0x43')],qs[_0x3fa0('0x49')](_0x373330[_0x3fa0('0x45')]['fields']));_0x10a3d0[_0x3fa0('0x48')]=_0x10a3d0[_0x3fa0('0x48')][_0x3fa0('0x4a')]?_0x10a3d0[_0x3fa0('0x48')]:_0x3074e6[_0x3fa0('0x43')];if(_0x373330[_0x3fa0('0x45')]['includeAll']){_0x10a3d0[_0x3fa0('0x54')]=[{'all':!![]}];}_0x10a3d0=_[_0x3fa0('0x51')]({},_0x10a3d0,_0x373330[_0x3fa0('0x52')]);return db[_0x3fa0('0x3f')][_0x3fa0('0x59')](_0x10a3d0)[_0x3fa0('0x24')](handleEntityNotFound(_0x50d606,null))[_0x3fa0('0x24')](respondWithResult(_0x50d606,null))['catch'](handleError(_0x50d606,null));};exports['create']=function(_0x215f95,_0x96c88){return db['ChatQueue'][_0x3fa0('0x5a')](_0x215f95['body'],{})[_0x3fa0('0x24')](function(_0xcf5276){var _0x16144b=_0x215f95[_0x3fa0('0x5b')]['get']({'plain':!![]});if(!_0x16144b)throw new Error(_0x3fa0('0x5c'));if(_0x16144b[_0x3fa0('0x5d')]===_0x3fa0('0x5b')){var _0x4620f8=_0xcf5276[_0x3fa0('0x5e')]({'plain':!![]});var _0x39c5c9=_0x3fa0('0x3a');return db[_0x3fa0('0x5f')]['find']({'where':{'name':_0x39c5c9,'userProfileId':_0x16144b[_0x3fa0('0x60')]},'raw':!![]})[_0x3fa0('0x24')](function(_0x114628){if(_0x114628&&_0x114628[_0x3fa0('0x61')]===0x0){return db[_0x3fa0('0x62')][_0x3fa0('0x5a')]({'name':_0x4620f8[_0x3fa0('0x3c')],'resourceId':_0x4620f8['id'],'type':_0x114628[_0x3fa0('0x3c')],'sectionId':_0x114628['id']},{})['then'](function(){return _0xcf5276;});}else{return _0xcf5276;}})['catch'](function(_0x2da37f){logger[_0x3fa0('0x2a')](_0x3fa0('0x63'),_0x2da37f);throw _0x2da37f;});}return _0xcf5276;})['then'](respondWithResult(_0x96c88,0xc9))[_0x3fa0('0x2e')](handleError(_0x96c88,null));};exports[_0x3fa0('0x38')]=function(_0x47c868,_0x379392){if(_0x47c868[_0x3fa0('0x64')]['id']){delete _0x47c868[_0x3fa0('0x64')]['id'];}return db['ChatQueue'][_0x3fa0('0x59')]({'where':{'id':_0x47c868[_0x3fa0('0x65')]['id']}})[_0x3fa0('0x24')](handleEntityNotFound(_0x379392,null))['then'](saveUpdates(_0x47c868['body'],null))[_0x3fa0('0x24')](respondWithResult(_0x379392,null))[_0x3fa0('0x2e')](handleError(_0x379392,null));};exports[_0x3fa0('0x39')]=function(_0x420793,_0x483fdf){return db[_0x3fa0('0x3f')][_0x3fa0('0x59')]({'where':{'id':_0x420793[_0x3fa0('0x65')]['id']}})[_0x3fa0('0x24')](handleEntityNotFound(_0x483fdf,null))['then'](removeEntity(_0x483fdf,null))['catch'](handleError(_0x483fdf,null));};exports[_0x3fa0('0x66')]=function(_0x4a219e,_0x4a779f){return db['ChatQueue'][_0x3fa0('0x66')]()[_0x3fa0('0x24')](respondWithResult(_0x4a779f,null))[_0x3fa0('0x2e')](handleError(_0x4a779f,null));};exports[_0x3fa0('0x67')]=function(_0x17d96b,_0x5c954d,_0x48ab58){var _0x3b2a41={'raw':!![],'where':{}},_0x28adea={},_0x56d7f2;return db['ChatQueue'][_0x3fa0('0x68')]({'where':{'id':_0x17d96b[_0x3fa0('0x65')]['id']}})[_0x3fa0('0x24')](handleEntityNotFound(_0x5c954d,null))[_0x3fa0('0x24')](function(_0x552470){if(_0x552470){_0x56d7f2=_0x552470[_0x3fa0('0x5e')]({'plain':!![]});_0x28adea[_0x3fa0('0x43')]=_[_0x3fa0('0x58')](db[_0x3fa0('0x69')][_0x3fa0('0x40')]);_0x28adea[_0x3fa0('0x45')]=_[_0x3fa0('0x58')](_0x17d96b[_0x3fa0('0x45')]);_0x28adea[_0x3fa0('0x46')]=_['intersection'](_0x28adea[_0x3fa0('0x43')],_0x28adea[_0x3fa0('0x45')]);_0x3b2a41['attributes']=_['intersection'](_0x28adea[_0x3fa0('0x43')],qs[_0x3fa0('0x49')](_0x17d96b[_0x3fa0('0x45')][_0x3fa0('0x49')]));_0x3b2a41[_0x3fa0('0x48')]=_0x3b2a41[_0x3fa0('0x48')][_0x3fa0('0x4a')]?_0x3b2a41[_0x3fa0('0x48')]:_0x28adea[_0x3fa0('0x43')];if(!_0x17d96b[_0x3fa0('0x45')][_0x3fa0('0x4b')](_0x3fa0('0x6a'))){_0x3b2a41[_0x3fa0('0x4c')]=qs[_0x3fa0('0x4c')](_0x17d96b[_0x3fa0('0x45')]['limit']);_0x3b2a41[_0x3fa0('0x32')]=qs['offset'](_0x17d96b['query'][_0x3fa0('0x32')]);}_0x3b2a41[_0x3fa0('0x6b')]=qs[_0x3fa0('0x4d')](_0x17d96b[_0x3fa0('0x45')][_0x3fa0('0x4d')]);_0x3b2a41[_0x3fa0('0x50')]=qs[_0x3fa0('0x46')](_[_0x3fa0('0x4e')](_0x17d96b[_0x3fa0('0x45')],_0x28adea[_0x3fa0('0x46')]));_0x3b2a41[_0x3fa0('0x50')][_0x3fa0('0x6c')]=_0x552470['id'];if(_0x17d96b[_0x3fa0('0x45')][_0x3fa0('0x4f')]){_0x3b2a41[_0x3fa0('0x50')]=_[_0x3fa0('0x51')](_0x3b2a41[_0x3fa0('0x50')],{'$or':_[_0x3fa0('0x44')](_0x3b2a41[_0x3fa0('0x48')],function(_0x2d9150){var _0x3059f8={};_0x3059f8[_0x2d9150]={'$like':'%'+_0x17d96b[_0x3fa0('0x45')][_0x3fa0('0x4f')]+'%'};return _0x3059f8;})});}_0x3b2a41=_[_0x3fa0('0x51')]({},_0x3b2a41,_0x17d96b[_0x3fa0('0x52')]);return db['UserChatQueue'][_0x3fa0('0x55')](_0x3b2a41);}})[_0x3fa0('0x24')](function(_0x40d374){if(_0x40d374){return db[_0x3fa0('0x6d')]['findAndCountAll']({'where':{'id':_[_0x3fa0('0x44')](_0x40d374,'UserId'),'role':'agent'},'attributes':['id',_0x3fa0('0x3c'),_0x3fa0('0x6e'),_0x3fa0('0x6f'),_0x3fa0('0x70')]});}})['then'](function(_0x5324ab){if(_0x5324ab){return{'count':_0x5324ab['count'],'rows':_[_0x3fa0('0x44')](_0x5324ab[_0x3fa0('0x56')],function(_0x32ab3a){return{'membername':_0x32ab3a['name'],'UserId':_0x32ab3a['id'],'queue_name':_0x56d7f2[_0x3fa0('0x3c')],'ChatQueueId':_0x56d7f2['id'],'interface':util[_0x3fa0('0x71')](_0x3fa0('0x72'),_0x3fa0('0x73'),_0x32ab3a['name']),'penalty':0x0,'paused':_0x32ab3a['chatPause'],'createdAt':_0x32ab3a[_0x3fa0('0x70')],'updatedAt':_0x32ab3a[_0x3fa0('0x6f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x3fa0('0x24')](respondWithFilteredResult(_0x5c954d,_0x3b2a41))['catch'](handleError(_0x5c954d,null));};exports['getTeams']=function(_0x5cae98,_0xd70ac7,_0x7f32f4){var _0x1ecf7e={};var _0x9fda1d={};var _0xd59d74;var _0x17f64d;return db[_0x3fa0('0x3f')]['findOne']({'where':{'id':_0x5cae98[_0x3fa0('0x65')]['id']}})['then'](handleEntityNotFound(_0xd70ac7,null))['then'](function(_0x15a29e){if(_0x15a29e){_0xd59d74=_0x15a29e;_0x9fda1d['model']=_[_0x3fa0('0x58')](db[_0x3fa0('0x74')][_0x3fa0('0x40')]);_0x9fda1d['query']=_[_0x3fa0('0x58')](_0x5cae98[_0x3fa0('0x45')]);_0x9fda1d[_0x3fa0('0x46')]=_[_0x3fa0('0x47')](_0x9fda1d[_0x3fa0('0x43')],_0x9fda1d[_0x3fa0('0x45')]);_0x1ecf7e[_0x3fa0('0x48')]=_[_0x3fa0('0x47')](_0x9fda1d[_0x3fa0('0x43')],qs[_0x3fa0('0x49')](_0x5cae98[_0x3fa0('0x45')][_0x3fa0('0x49')]));_0x1ecf7e['attributes']=_0x1ecf7e['attributes'][_0x3fa0('0x4a')]?_0x1ecf7e[_0x3fa0('0x48')]:_0x9fda1d['model'];_0x1ecf7e[_0x3fa0('0x6b')]=qs[_0x3fa0('0x4d')](_0x5cae98['query'][_0x3fa0('0x4d')]);_0x1ecf7e[_0x3fa0('0x50')]=qs[_0x3fa0('0x46')](_[_0x3fa0('0x4e')](_0x5cae98[_0x3fa0('0x45')],_0x9fda1d['filters']));if(_0x5cae98[_0x3fa0('0x45')]['filter']){_0x1ecf7e[_0x3fa0('0x50')]=_[_0x3fa0('0x51')](_0x1ecf7e['where'],{'$or':_['map'](_0x1ecf7e[_0x3fa0('0x48')],function(_0x4018e7){var _0x4094e1={};_0x4094e1[_0x4018e7]={'$like':'%'+_0x5cae98[_0x3fa0('0x45')][_0x3fa0('0x4f')]+'%'};return _0x4094e1;})});}_0x1ecf7e=_[_0x3fa0('0x51')]({},_0x1ecf7e,_0x5cae98['options']);return _0xd59d74[_0x3fa0('0x75')](_0x1ecf7e);}})[_0x3fa0('0x24')](function(_0x42a858){if(_0x42a858){_0x17f64d=_0x42a858[_0x3fa0('0x4a')];if(!_0x5cae98[_0x3fa0('0x45')]['hasOwnProperty'](_0x3fa0('0x6a'))){_0x1ecf7e[_0x3fa0('0x4c')]=qs[_0x3fa0('0x4c')](_0x5cae98[_0x3fa0('0x45')]['limit']);_0x1ecf7e[_0x3fa0('0x32')]=qs[_0x3fa0('0x32')](_0x5cae98['query'][_0x3fa0('0x32')]);}return _0xd59d74['getTeams'](_0x1ecf7e);}})['then'](function(_0x428650){if(_0x428650){return _0x428650?{'count':_0x17f64d,'rows':_0x428650}:null;}})['then'](respondWithResult(_0xd70ac7,null))['catch'](handleError(_0xd70ac7,null));};exports['addTeams']=function(_0x5841e3,_0x374108,_0x501d4c){var _0x23752e=_0x5841e3['body']['ids'];return db['Team'][_0x3fa0('0x55')]({'where':{'id':_0x23752e},'attributes':['id'],'include':[{'model':db['User'],'as':_0x3fa0('0x76'),'attributes':['id',_0x3fa0('0x3c'),_0x3fa0('0x77'),_0x3fa0('0x78'),_0x3fa0('0x79')],'raw':!![]}]})[_0x3fa0('0x24')](function(_0x1c7d28){if(_0x1c7d28){var _0x56a3b6=_[_0x3fa0('0x7a')](_0x1c7d28,function(_0x451cfe){var _0x4798d3=_0x451cfe[_0x3fa0('0x5e')]({'plain':!![]});return _0x4798d3[_0x3fa0('0x76')];});return db[_0x3fa0('0x3f')]['find']({'where':{'id':_0x5841e3[_0x3fa0('0x65')]['id']}})[_0x3fa0('0x24')](function(_0x583b4f){return db[_0x3fa0('0x7b')][_0x3fa0('0x7c')](function(_0x14dfc5){return _0x583b4f['addTeams'](_0x23752e,{'transaction':_0x14dfc5})[_0x3fa0('0x24')](function(){return BPromise[_0x3fa0('0x7d')](_0x56a3b6,function(_0x492b73){return db[_0x3fa0('0x69')][_0x3fa0('0x7e')]({'where':{'UserId':_0x492b73['id'],'ChatQueueId':_0x5841e3[_0x3fa0('0x65')]['id']},'transaction':_0x14dfc5});});})['then'](function(){_0x56a3b6[_0x3fa0('0x7f')](function(_0x1808b4){socket[_0x3fa0('0x80')]('userChatQueue:save',{'UserId':_0x1808b4['id'],'ChatQueueId':_0x583b4f['id']});});});});});}})[_0x3fa0('0x24')](respondWithStatusCode(_0x374108,null))['catch'](handleError(_0x374108,null));};exports[_0x3fa0('0x81')]=function(_0x341022,_0x2b359d,_0x47be59){return db['Team'][_0x3fa0('0x55')]({'where':{'id':_0x341022[_0x3fa0('0x45')][_0x3fa0('0x82')]},'attributes':['id'],'include':[{'model':db[_0x3fa0('0x6d')],'as':_0x3fa0('0x76'),'attributes':['id'],'raw':!![]}]})[_0x3fa0('0x24')](handleEntityNotFound(_0x2b359d,null))['then'](function(_0x6120dc){var _0x34b0e6=_['map'](_0x6120dc,'id');var _0x2291ba=[];var _0x5ef7d8=[];var _0x36de56=squel[_0x3fa0('0x83')]();_0x36de56[_0x3fa0('0x84')](_0x3fa0('0x85'))[_0x3fa0('0x86')](_0x3fa0('0x87'),'tq')[_0x3fa0('0x88')]('user_has_teams','ut',_0x3fa0('0x89'))[_0x3fa0('0x50')](_0x3fa0('0x8a'),_0x341022['params']['id']);for(var _0x1d79a8=0x0;_0x1d79a8<_0x6120dc[_0x3fa0('0x4a')];_0x1d79a8+=0x1){let _0x5359cc=_0x6120dc[_0x1d79a8];for(var _0x362e95=0x0;_0x362e95<_0x5359cc[_0x3fa0('0x76')][_0x3fa0('0x4a')];_0x362e95+=0x1){let _0x34df42=_0x5359cc[_0x3fa0('0x76')][_0x362e95];var _0x4429d4=_0x36de56[_0x3fa0('0x8b')]();_0x4429d4[_0x3fa0('0x50')](_0x3fa0('0x8c'),_0x34df42['id']);_0x5ef7d8[_0x3fa0('0x8d')](db[_0x3fa0('0x7b')]['query'](_0x4429d4[_0x3fa0('0x8e')](),{'type':db[_0x3fa0('0x7b')][_0x3fa0('0x8f')][_0x3fa0('0x90')]})[_0x3fa0('0x24')](function(_0xcc7895){if(_0xcc7895['length']===0x1){return _0x34df42['id'];}else{var _0x24c5a1=_[_0x3fa0('0x91')](_[_0x3fa0('0x44')](_0xcc7895,_0x3fa0('0x92')),function(_0x41b724){return _['includes'](_0x34b0e6,_0x41b724);});if(_0x24c5a1){return _0x34df42['id'];}}}));}}return BPromise[_0x3fa0('0x93')](_0x5ef7d8)['then'](function(_0x173a89){_0x2291ba=_(_0x2291ba)[_0x3fa0('0x94')](_0x173a89)[_0x3fa0('0x95')]()[_0x3fa0('0x96')]();return db[_0x3fa0('0x3f')]['find']({'where':{'id':_0x341022['params']['id']}})[_0x3fa0('0x24')](function(_0xc0c00d){return db[_0x3fa0('0x7b')][_0x3fa0('0x7c')](function(_0x3fcc34){return _0xc0c00d['removeTeams'](_0x341022[_0x3fa0('0x45')]['ids'],{'transaction':_0x3fcc34})['then'](function(){if(!_[_0x3fa0('0x97')](_0x2291ba)){return _0xc0c00d['removeAgents'](_0x2291ba,{'transaction':_0x3fcc34});}})[_0x3fa0('0x24')](function(){_0x2291ba[_0x3fa0('0x7f')](function(_0x17d202){socket[_0x3fa0('0x80')](_0x3fa0('0x98'),{'UserId':_0x17d202,'ChatQueueId':_0xc0c00d['id']});});});});});});})[_0x3fa0('0x24')](respondWithStatusCode(_0x2b359d,null))[_0x3fa0('0x2e')](handleError(_0x2b359d,null));};exports['addAgents']=function(_0x28a4a6,_0x4cb6b1,_0x264cc6){return db[_0x3fa0('0x3f')][_0x3fa0('0x59')]({'where':{'id':_0x28a4a6[_0x3fa0('0x65')]['id']}})['then'](handleEntityNotFound(_0x4cb6b1,null))[_0x3fa0('0x24')](function(_0x56fa86){if(_0x56fa86){return _0x56fa86[_0x3fa0('0x99')](_0x28a4a6[_0x3fa0('0x64')][_0x3fa0('0x82')],_[_0x3fa0('0x9a')](_0x28a4a6[_0x3fa0('0x64')],[_0x3fa0('0x82'),'id'])||{})[_0x3fa0('0x9b')](function(_0xb0213c){for(var _0x22b99e=0x0;_0x22b99e<_0x28a4a6[_0x3fa0('0x64')][_0x3fa0('0x82')][_0x3fa0('0x4a')];_0x22b99e+=0x1){socket[_0x3fa0('0x80')](_0x3fa0('0x9c'),{'UserId':Number(_0x28a4a6[_0x3fa0('0x64')][_0x3fa0('0x82')][_0x22b99e]),'ChatQueueId':Number(_0x28a4a6[_0x3fa0('0x65')]['id'])});}return _0xb0213c;});}})[_0x3fa0('0x24')](respondWithResult(_0x4cb6b1,null))[_0x3fa0('0x2e')](handleError(_0x4cb6b1,null));};exports[_0x3fa0('0x9d')]=function(_0x279b5a,_0x5b6d15,_0x1ad83f){return db['ChatQueue'][_0x3fa0('0x59')]({'where':{'id':_0x279b5a['params']['id']}})['then'](handleEntityNotFound(_0x5b6d15,null))[_0x3fa0('0x24')](function(_0x1c142f){if(_0x1c142f){return _0x1c142f['removeAgents'](_0x279b5a[_0x3fa0('0x45')][_0x3fa0('0x82')])[_0x3fa0('0x24')](function(){if(_['isArray'](_0x279b5a[_0x3fa0('0x45')][_0x3fa0('0x82')])){for(var _0x44a1f8=0x0;_0x44a1f8<_0x279b5a[_0x3fa0('0x45')]['ids']['length'];_0x44a1f8+=0x1){socket[_0x3fa0('0x80')](_0x3fa0('0x98'),{'UserId':Number(_0x279b5a['query'][_0x3fa0('0x82')][_0x44a1f8]),'ChatQueueId':Number(_0x279b5a[_0x3fa0('0x65')]['id'])});}}else{socket['emit'](_0x3fa0('0x98'),{'UserId':Number(_0x279b5a[_0x3fa0('0x45')][_0x3fa0('0x82')]),'ChatQueueId':Number(_0x279b5a['params']['id'])});}});}})['then'](respondWithStatusCode(_0x5b6d15,null))[_0x3fa0('0x2e')](handleError(_0x5b6d15,null));};exports[_0x3fa0('0x9e')]=function(_0x3587bd,_0x402035,_0x39fa2e){var _0x6e408f={};var _0x2e8739={};var _0x4b5c38;var _0x816468;return db[_0x3fa0('0x3f')]['findOne']({'where':{'id':_0x3587bd['params']['id']}})[_0x3fa0('0x24')](handleEntityNotFound(_0x402035,null))[_0x3fa0('0x24')](function(_0x32ceb2){if(_0x32ceb2){_0x4b5c38=_0x32ceb2;_0x2e8739[_0x3fa0('0x43')]=_['keys'](db[_0x3fa0('0x6d')][_0x3fa0('0x40')]);_0x2e8739[_0x3fa0('0x45')]=_['keys'](_0x3587bd[_0x3fa0('0x45')]);_0x2e8739['filters']=_[_0x3fa0('0x47')](_0x2e8739[_0x3fa0('0x43')],_0x2e8739[_0x3fa0('0x45')]);_0x6e408f[_0x3fa0('0x48')]=_[_0x3fa0('0x47')](_0x2e8739[_0x3fa0('0x43')],qs[_0x3fa0('0x49')](_0x3587bd['query'][_0x3fa0('0x49')]));_0x6e408f[_0x3fa0('0x48')]=_0x6e408f[_0x3fa0('0x48')][_0x3fa0('0x4a')]?_0x6e408f[_0x3fa0('0x48')]:_0x2e8739['model'];_0x6e408f['order']=qs[_0x3fa0('0x4d')](_0x3587bd[_0x3fa0('0x45')][_0x3fa0('0x4d')]);_0x6e408f[_0x3fa0('0x50')]=qs[_0x3fa0('0x46')](_[_0x3fa0('0x4e')](_0x3587bd['query'],_0x2e8739[_0x3fa0('0x46')]));if(_0x3587bd['query'][_0x3fa0('0x4f')]){_0x6e408f[_0x3fa0('0x50')]=_[_0x3fa0('0x51')](_0x6e408f['where'],{'$or':_[_0x3fa0('0x44')](_0x6e408f[_0x3fa0('0x48')],function(_0x14dabf){var _0x523e32={};_0x523e32[_0x14dabf]={'$like':'%'+_0x3587bd[_0x3fa0('0x45')][_0x3fa0('0x4f')]+'%'};return _0x523e32;})});}_0x6e408f=_[_0x3fa0('0x51')]({},_0x6e408f,_0x3587bd[_0x3fa0('0x52')]);return _0x4b5c38[_0x3fa0('0x9e')](_0x6e408f);}})[_0x3fa0('0x24')](function(_0x19bc5e){if(_0x19bc5e){_0x816468=_0x19bc5e[_0x3fa0('0x4a')];if(!_0x3587bd[_0x3fa0('0x45')]['hasOwnProperty'](_0x3fa0('0x6a'))){_0x6e408f[_0x3fa0('0x4c')]=qs[_0x3fa0('0x4c')](_0x3587bd[_0x3fa0('0x45')][_0x3fa0('0x4c')]);_0x6e408f[_0x3fa0('0x32')]=qs['offset'](_0x3587bd[_0x3fa0('0x45')][_0x3fa0('0x32')]);}return _0x4b5c38['getAgents'](_0x6e408f);}})[_0x3fa0('0x24')](function(_0x1463d9){if(_0x1463d9){return _0x1463d9?{'count':_0x816468,'rows':_0x1463d9}:null;}})['then'](respondWithResult(_0x402035,null))[_0x3fa0('0x2e')](handleError(_0x402035,null));};