Built motion from commit 616d3211.|2.6.4
[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 _0x3992=['field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','sequelize','QueryTypes','SELECT','every','includes','all','value','ids','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','stringify','error','ChatQueue,\x20%s,\x20%s','message','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','get','UserProfileResource','destroy','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where','filter','type','VIRTUAL','options','includeAll','include','findAll','show','params','merge','find','catch','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserChatQueue','nolimit','order','pick','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','rows','format','%s/%s','getTeams','Agents','voicePause','interface','flatMap','transaction','addTeams','each','findOrCreate','forEach','emit','userChatQueue:save','Team','select'];(function(_0x55256c,_0x2374cb){var _0x3649d2=function(_0x21c4b4){while(--_0x21c4b4){_0x55256c['push'](_0x55256c['shift']());}};_0x3649d2(++_0x2374cb);}(_0x3992,0x157));var _0x2399=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0x3992[_0x31e29a];return _0x32d892;};'use strict';var emlformat=require(_0x2399('0x0'));var rimraf=require(_0x2399('0x1'));var zipdir=require(_0x2399('0x2'));var jsonpatch=require(_0x2399('0x3'));var rp=require(_0x2399('0x4'));var moment=require('moment');var BPromise=require(_0x2399('0x5'));var Mustache=require('mustache');var util=require(_0x2399('0x6'));var path=require(_0x2399('0x7'));var sox=require(_0x2399('0x8'));var csv=require(_0x2399('0x9'));var ejs=require(_0x2399('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2399('0xb'));var squel=require(_0x2399('0xc'));var crypto=require(_0x2399('0xd'));var jsforce=require(_0x2399('0xe'));var deskjs=require(_0x2399('0xf'));var toCsv=require(_0x2399('0x9'));var querystring=require(_0x2399('0x10'));var Papa=require(_0x2399('0x11'));var Redis=require(_0x2399('0x12'));var authService=require(_0x2399('0x13'));var qs=require(_0x2399('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2399('0x15'));var logger=require('../../config/logger')(_0x2399('0x16'));var utils=require(_0x2399('0x17'));var config=require(_0x2399('0x18'));var licenseUtil=require(_0x2399('0x19'));var db=require(_0x2399('0x1a'))['db'];config[_0x2399('0x1b')]=_[_0x2399('0x1c')](config[_0x2399('0x1b')],{'host':_0x2399('0x1d'),'port':0x18eb});var socket=require(_0x2399('0x1e'))(new Redis(config[_0x2399('0x1b')]));require(_0x2399('0x1f'))[_0x2399('0x20')](socket);var jayson=require(_0x2399('0x21'));var client=jayson[_0x2399('0x22')][_0x2399('0x23')]({'port':0x232a});function respondWithRpcPromise(_0xc0c363,_0x30bbde,_0x5dc91c,_0x57373b){return new BPromise(function(_0x235478,_0x135aa3){var _0xdd4ce8=_0x57373b||client;return _0xdd4ce8[_0x2399('0x24')](_0xc0c363,_0x5dc91c)[_0x2399('0x25')](function(_0x4a4b0b){logger[_0x2399('0x26')]('ChatQueue,\x20%s,\x20%s',_0x30bbde,_0x2399('0x27'));logger[_0x2399('0x28')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x30bbde,_0x2399('0x27'),JSON[_0x2399('0x29')](_0x4a4b0b));if(_0x4a4b0b[_0x2399('0x2a')]){if(_0x4a4b0b[_0x2399('0x2a')]['code']===0x1f4){logger[_0x2399('0x2a')](_0x2399('0x2b'),_0x30bbde,_0x4a4b0b[_0x2399('0x2a')][_0x2399('0x2c')]);return _0x135aa3(_0x4a4b0b[_0x2399('0x2a')][_0x2399('0x2c')]);}logger[_0x2399('0x2a')](_0x2399('0x2b'),_0x30bbde,_0x4a4b0b[_0x2399('0x2a')]['message']);return _0x235478(_0x4a4b0b[_0x2399('0x2a')][_0x2399('0x2c')]);}else{logger[_0x2399('0x26')]('ChatQueue,\x20%s,\x20%s',_0x30bbde,_0x2399('0x27'));_0x235478(_0x4a4b0b['result'][_0x2399('0x2c')]);}})['catch'](function(_0x3e2ced){logger['error'](_0x2399('0x2b'),_0x30bbde,_0x3e2ced);_0x135aa3(_0x3e2ced);});});}function respondWithStatusCode(_0x29a885,_0x3e48b6){_0x3e48b6=_0x3e48b6||0xcc;return function(_0xbf7698){if(_0xbf7698){return _0x29a885[_0x2399('0x2d')](_0x3e48b6);}return _0x29a885[_0x2399('0x2e')](_0x3e48b6)[_0x2399('0x2f')]();};}function respondWithResult(_0x255b47,_0xffd356){_0xffd356=_0xffd356||0xc8;return function(_0xb5d303){if(_0xb5d303){return _0x255b47[_0x2399('0x2e')](_0xffd356)['json'](_0xb5d303);}};}function respondWithFilteredResult(_0x8e74f4,_0x13d98c){return function(_0x1e019c){if(_0x1e019c){var _0x8881f6=typeof _0x13d98c[_0x2399('0x30')]===_0x2399('0x31')&&typeof _0x13d98c['limit']===_0x2399('0x31');var _0x102295=_0x1e019c[_0x2399('0x32')];var _0xfaaa4f=_0x8881f6?0x0:_0x13d98c[_0x2399('0x30')];var _0x376047=_0x8881f6?_0x1e019c['count']:_0x13d98c[_0x2399('0x30')]+_0x13d98c[_0x2399('0x33')];var _0x5b9e90;if(_0x376047>=_0x102295){_0x376047=_0x102295;_0x5b9e90=0xc8;}else{_0x5b9e90=0xce;}_0x8e74f4[_0x2399('0x2e')](_0x5b9e90);return _0x8e74f4[_0x2399('0x34')](_0x2399('0x35'),_0xfaaa4f+'-'+_0x376047+'/'+_0x102295)[_0x2399('0x36')](_0x1e019c);}return null;};}function patchUpdates(_0x3b6a33){return function(_0x444498){try{jsonpatch[_0x2399('0x37')](_0x444498,_0x3b6a33,!![]);}catch(_0x33a8f4){return BPromise[_0x2399('0x38')](_0x33a8f4);}return _0x444498[_0x2399('0x39')]();};}function saveUpdates(_0x5f16b0,_0x526aac){return function(_0x4ac8a8){if(_0x4ac8a8){return _0x4ac8a8[_0x2399('0x3a')](_0x5f16b0)['then'](function(_0x2882c8){return _0x2882c8;});}return null;};}function removeEntity(_0x4c08b7,_0x143cd6){return function(_0x42a3fa){if(_0x42a3fa){return _0x42a3fa['destroy']()[_0x2399('0x25')](function(){var _0x29b480=_0x42a3fa[_0x2399('0x3b')]({'plain':!![]});var _0x580993='ChatQueues';return db[_0x2399('0x3c')][_0x2399('0x3d')]({'where':{'type':_0x580993,'resourceId':_0x29b480['id']}})['then'](function(){return _0x42a3fa;});})[_0x2399('0x25')](function(){_0x4c08b7[_0x2399('0x2e')](0xcc)[_0x2399('0x2f')]();});}};}function handleEntityNotFound(_0x44b1d1,_0x1fc912){return function(_0x4b2dba){if(!_0x4b2dba){_0x44b1d1[_0x2399('0x2d')](0x194);}return _0x4b2dba;};}function handleError(_0x33c20d,_0x50e7f4){_0x50e7f4=_0x50e7f4||0x1f4;return function(_0x4b86c0){logger[_0x2399('0x2a')](_0x4b86c0[_0x2399('0x3e')]);if(_0x4b86c0[_0x2399('0x3f')]){delete _0x4b86c0[_0x2399('0x3f')];}_0x33c20d[_0x2399('0x2e')](_0x50e7f4)[_0x2399('0x40')](_0x4b86c0);};}exports[_0x2399('0x41')]=function(_0x48d7fa,_0xac5e21){var _0x47fe15={},_0x1d5178={},_0x2f8a7e={'count':0x0,'rows':[]};var _0x2b032b=_[_0x2399('0x42')](db[_0x2399('0x43')][_0x2399('0x44')],function(_0x4d8710){return{'name':_0x4d8710[_0x2399('0x45')],'type':_0x4d8710['type'][_0x2399('0x46')]};});_0x1d5178[_0x2399('0x47')]=_[_0x2399('0x42')](_0x2b032b,_0x2399('0x3f'));_0x1d5178[_0x2399('0x48')]=_[_0x2399('0x49')](_0x48d7fa[_0x2399('0x48')]);_0x1d5178[_0x2399('0x4a')]=_['intersection'](_0x1d5178[_0x2399('0x47')],_0x1d5178[_0x2399('0x48')]);_0x47fe15[_0x2399('0x4b')]=_[_0x2399('0x4c')](_0x1d5178[_0x2399('0x47')],qs[_0x2399('0x4d')](_0x48d7fa[_0x2399('0x48')][_0x2399('0x4d')]));_0x47fe15[_0x2399('0x4b')]=_0x47fe15[_0x2399('0x4b')][_0x2399('0x4e')]?_0x47fe15['attributes']:_0x1d5178['model'];if(!_0x48d7fa[_0x2399('0x48')][_0x2399('0x4f')]('nolimit')){_0x47fe15[_0x2399('0x33')]=qs['limit'](_0x48d7fa['query'][_0x2399('0x33')]);_0x47fe15['offset']=qs[_0x2399('0x30')](_0x48d7fa[_0x2399('0x48')][_0x2399('0x30')]);}_0x47fe15['order']=qs[_0x2399('0x50')](_0x48d7fa['query'][_0x2399('0x50')]);_0x47fe15[_0x2399('0x51')]=qs[_0x2399('0x4a')](_['pick'](_0x48d7fa[_0x2399('0x48')],_0x1d5178[_0x2399('0x4a')]),_0x2b032b);if(_0x48d7fa[_0x2399('0x48')][_0x2399('0x52')]){_0x47fe15[_0x2399('0x51')]=_['merge'](_0x47fe15['where'],{'$or':_[_0x2399('0x42')](_0x2b032b,function(_0x156842){if(_0x156842[_0x2399('0x53')]!==_0x2399('0x54')){var _0x9c9c97={};_0x9c9c97[_0x156842[_0x2399('0x3f')]]={'$like':'%'+_0x48d7fa[_0x2399('0x48')][_0x2399('0x52')]+'%'};return _0x9c9c97;}})});}_0x47fe15=_['merge']({},_0x47fe15,_0x48d7fa[_0x2399('0x55')]);var _0x4b4534={'where':_0x47fe15['where']};return db[_0x2399('0x43')]['count'](_0x4b4534)['then'](function(_0x1f08fb){_0x2f8a7e[_0x2399('0x32')]=_0x1f08fb;if(_0x48d7fa['query'][_0x2399('0x56')]){_0x47fe15[_0x2399('0x57')]=[{'all':!![]}];}return db[_0x2399('0x43')][_0x2399('0x58')](_0x47fe15);})[_0x2399('0x25')](function(_0x25ad8b){_0x2f8a7e['rows']=_0x25ad8b;return _0x2f8a7e;})[_0x2399('0x25')](respondWithFilteredResult(_0xac5e21,_0x47fe15))['catch'](handleError(_0xac5e21,null));};exports[_0x2399('0x59')]=function(_0x1925e7,_0x495347){var _0x43e3bc={'raw':!![],'where':{'id':_0x1925e7[_0x2399('0x5a')]['id']}},_0xf4ebe5={};_0xf4ebe5[_0x2399('0x47')]=_['keys'](db[_0x2399('0x43')][_0x2399('0x44')]);_0xf4ebe5[_0x2399('0x48')]=_[_0x2399('0x49')](_0x1925e7[_0x2399('0x48')]);_0xf4ebe5[_0x2399('0x4a')]=_[_0x2399('0x4c')](_0xf4ebe5[_0x2399('0x47')],_0xf4ebe5[_0x2399('0x48')]);_0x43e3bc[_0x2399('0x4b')]=_['intersection'](_0xf4ebe5[_0x2399('0x47')],qs[_0x2399('0x4d')](_0x1925e7['query'][_0x2399('0x4d')]));_0x43e3bc[_0x2399('0x4b')]=_0x43e3bc[_0x2399('0x4b')]['length']?_0x43e3bc[_0x2399('0x4b')]:_0xf4ebe5[_0x2399('0x47')];if(_0x1925e7['query'][_0x2399('0x56')]){_0x43e3bc[_0x2399('0x57')]=[{'all':!![]}];}_0x43e3bc=_[_0x2399('0x5b')]({},_0x43e3bc,_0x1925e7[_0x2399('0x55')]);return db[_0x2399('0x43')][_0x2399('0x5c')](_0x43e3bc)[_0x2399('0x25')](handleEntityNotFound(_0x495347,null))['then'](respondWithResult(_0x495347,null))[_0x2399('0x5d')](handleError(_0x495347,null));};exports[_0x2399('0x5e')]=function(_0x362150,_0x201abc){return db[_0x2399('0x43')][_0x2399('0x5e')](_0x362150[_0x2399('0x5f')],{})[_0x2399('0x25')](function(_0x2bbf4a){var _0x4b904e=_0x362150[_0x2399('0x60')][_0x2399('0x3b')]({'plain':!![]});if(!_0x4b904e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b904e[_0x2399('0x61')]===_0x2399('0x60')){var _0x22c22a=_0x2bbf4a[_0x2399('0x3b')]({'plain':!![]});var _0xb7a01='ChatQueues';return db[_0x2399('0x62')][_0x2399('0x5c')]({'where':{'name':_0xb7a01,'userProfileId':_0x4b904e[_0x2399('0x63')]},'raw':!![]})[_0x2399('0x25')](function(_0x8852be){if(_0x8852be&&_0x8852be[_0x2399('0x64')]===0x0){return db[_0x2399('0x3c')]['create']({'name':_0x22c22a[_0x2399('0x3f')],'resourceId':_0x22c22a['id'],'type':_0x8852be[_0x2399('0x3f')],'sectionId':_0x8852be['id']},{})[_0x2399('0x25')](function(){return _0x2bbf4a;});}else{return _0x2bbf4a;}})[_0x2399('0x5d')](function(_0x2e6940){logger[_0x2399('0x2a')](_0x2399('0x65'),_0x2e6940);throw _0x2e6940;});}return _0x2bbf4a;})['then'](respondWithResult(_0x201abc,0xc9))[_0x2399('0x5d')](handleError(_0x201abc,null));};exports[_0x2399('0x3a')]=function(_0x313e1a,_0x386a29){if(_0x313e1a[_0x2399('0x5f')]['id']){delete _0x313e1a[_0x2399('0x5f')]['id'];}return db[_0x2399('0x43')][_0x2399('0x5c')]({'where':{'id':_0x313e1a['params']['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x386a29,null))[_0x2399('0x25')](saveUpdates(_0x313e1a['body'],null))[_0x2399('0x25')](respondWithResult(_0x386a29,null))[_0x2399('0x5d')](handleError(_0x386a29,null));};exports['destroy']=function(_0x5d9f80,_0x3cd9d3){return db[_0x2399('0x43')][_0x2399('0x5c')]({'where':{'id':_0x5d9f80[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x3cd9d3,null))[_0x2399('0x25')](removeEntity(_0x3cd9d3,null))[_0x2399('0x5d')](handleError(_0x3cd9d3,null));};exports[_0x2399('0x66')]=function(_0x3e16e5,_0x512057){return db[_0x2399('0x43')][_0x2399('0x66')]()['then'](respondWithResult(_0x512057,null))[_0x2399('0x5d')](handleError(_0x512057,null));};exports[_0x2399('0x67')]=function(_0x99ebcc,_0x2bec6f,_0x30b1bd){var _0x4af343={'raw':!![],'where':{}},_0x3e794d={},_0x53abd3;return db[_0x2399('0x43')][_0x2399('0x68')]({'where':{'id':_0x99ebcc[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x2bec6f,null))[_0x2399('0x25')](function(_0x3b5917){if(_0x3b5917){_0x53abd3=_0x3b5917[_0x2399('0x3b')]({'plain':!![]});_0x3e794d[_0x2399('0x47')]=_['keys'](db[_0x2399('0x69')][_0x2399('0x44')]);_0x3e794d['query']=_[_0x2399('0x49')](_0x99ebcc[_0x2399('0x48')]);_0x3e794d[_0x2399('0x4a')]=_[_0x2399('0x4c')](_0x3e794d[_0x2399('0x47')],_0x3e794d[_0x2399('0x48')]);_0x4af343['attributes']=_[_0x2399('0x4c')](_0x3e794d[_0x2399('0x47')],qs[_0x2399('0x4d')](_0x99ebcc[_0x2399('0x48')]['fields']));_0x4af343['attributes']=_0x4af343[_0x2399('0x4b')][_0x2399('0x4e')]?_0x4af343[_0x2399('0x4b')]:_0x3e794d[_0x2399('0x47')];if(!_0x99ebcc['query'][_0x2399('0x4f')](_0x2399('0x6a'))){_0x4af343[_0x2399('0x33')]=qs[_0x2399('0x33')](_0x99ebcc[_0x2399('0x48')][_0x2399('0x33')]);_0x4af343[_0x2399('0x30')]=qs[_0x2399('0x30')](_0x99ebcc[_0x2399('0x48')][_0x2399('0x30')]);}_0x4af343[_0x2399('0x6b')]=qs[_0x2399('0x50')](_0x99ebcc['query'][_0x2399('0x50')]);_0x4af343[_0x2399('0x51')]=qs['filters'](_[_0x2399('0x6c')](_0x99ebcc[_0x2399('0x48')],_0x3e794d['filters']));_0x4af343[_0x2399('0x51')][_0x2399('0x6d')]=_0x3b5917['id'];if(_0x99ebcc[_0x2399('0x48')][_0x2399('0x52')]){_0x4af343[_0x2399('0x51')]=_[_0x2399('0x5b')](_0x4af343[_0x2399('0x51')],{'$or':_[_0x2399('0x42')](_0x4af343[_0x2399('0x4b')],function(_0x2c950d){var _0x47c4ea={};_0x47c4ea[_0x2c950d]={'$like':'%'+_0x99ebcc[_0x2399('0x48')]['filter']+'%'};return _0x47c4ea;})});}_0x4af343=_[_0x2399('0x5b')]({},_0x4af343,_0x99ebcc[_0x2399('0x55')]);return db['UserChatQueue']['findAll'](_0x4af343);}})[_0x2399('0x25')](function(_0x18f07e){if(_0x18f07e){return db[_0x2399('0x6e')][_0x2399('0x6f')]({'where':{'id':_[_0x2399('0x42')](_0x18f07e,_0x2399('0x70')),'role':_0x2399('0x71')},'attributes':['id',_0x2399('0x3f'),_0x2399('0x72'),_0x2399('0x73'),_0x2399('0x74')]});}})[_0x2399('0x25')](function(_0x277224){if(_0x277224){return{'count':_0x277224[_0x2399('0x32')],'rows':_[_0x2399('0x42')](_0x277224[_0x2399('0x75')],function(_0x402876){return{'membername':_0x402876['name'],'UserId':_0x402876['id'],'queue_name':_0x53abd3[_0x2399('0x3f')],'ChatQueueId':_0x53abd3['id'],'interface':util[_0x2399('0x76')](_0x2399('0x77'),'SIP',_0x402876[_0x2399('0x3f')]),'penalty':0x0,'paused':_0x402876['chatPause'],'createdAt':_0x402876[_0x2399('0x74')],'updatedAt':_0x402876[_0x2399('0x73')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x2399('0x25')](respondWithFilteredResult(_0x2bec6f,_0x4af343))[_0x2399('0x5d')](handleError(_0x2bec6f,null));};exports[_0x2399('0x78')]=function(_0x1db08f,_0x5e8d7a,_0x1633e0){var _0x9d0e47={};var _0x31181b={};var _0x5edf79;var _0x2b1c2d;return db['ChatQueue'][_0x2399('0x68')]({'where':{'id':_0x1db08f['params']['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x5e8d7a,null))[_0x2399('0x25')](function(_0xb3f9aa){if(_0xb3f9aa){_0x5edf79=_0xb3f9aa;_0x31181b['model']=_[_0x2399('0x49')](db['Team'][_0x2399('0x44')]);_0x31181b[_0x2399('0x48')]=_['keys'](_0x1db08f['query']);_0x31181b[_0x2399('0x4a')]=_[_0x2399('0x4c')](_0x31181b[_0x2399('0x47')],_0x31181b[_0x2399('0x48')]);_0x9d0e47[_0x2399('0x4b')]=_[_0x2399('0x4c')](_0x31181b['model'],qs[_0x2399('0x4d')](_0x1db08f[_0x2399('0x48')][_0x2399('0x4d')]));_0x9d0e47[_0x2399('0x4b')]=_0x9d0e47[_0x2399('0x4b')]['length']?_0x9d0e47[_0x2399('0x4b')]:_0x31181b[_0x2399('0x47')];_0x9d0e47['order']=qs['sort'](_0x1db08f[_0x2399('0x48')][_0x2399('0x50')]);_0x9d0e47[_0x2399('0x51')]=qs[_0x2399('0x4a')](_[_0x2399('0x6c')](_0x1db08f[_0x2399('0x48')],_0x31181b[_0x2399('0x4a')]));if(_0x1db08f[_0x2399('0x48')][_0x2399('0x52')]){_0x9d0e47[_0x2399('0x51')]=_['merge'](_0x9d0e47[_0x2399('0x51')],{'$or':_['map'](_0x9d0e47[_0x2399('0x4b')],function(_0x2410fe){var _0x4503ae={};_0x4503ae[_0x2410fe]={'$like':'%'+_0x1db08f['query'][_0x2399('0x52')]+'%'};return _0x4503ae;})});}_0x9d0e47=_['merge']({},_0x9d0e47,_0x1db08f[_0x2399('0x55')]);return _0x5edf79['getTeams'](_0x9d0e47);}})[_0x2399('0x25')](function(_0x515b21){if(_0x515b21){_0x2b1c2d=_0x515b21[_0x2399('0x4e')];if(!_0x1db08f[_0x2399('0x48')][_0x2399('0x4f')](_0x2399('0x6a'))){_0x9d0e47['limit']=qs[_0x2399('0x33')](_0x1db08f[_0x2399('0x48')][_0x2399('0x33')]);_0x9d0e47[_0x2399('0x30')]=qs[_0x2399('0x30')](_0x1db08f[_0x2399('0x48')][_0x2399('0x30')]);}return _0x5edf79[_0x2399('0x78')](_0x9d0e47);}})['then'](function(_0x5ef630){if(_0x5ef630){return _0x5ef630?{'count':_0x2b1c2d,'rows':_0x5ef630}:null;}})['then'](respondWithResult(_0x5e8d7a,null))[_0x2399('0x5d')](handleError(_0x5e8d7a,null));};exports['addTeams']=function(_0x5e3ddf,_0xe53984,_0x4f111d){var _0x4eb1cd=_0x5e3ddf['body']['ids'];return db['Team'][_0x2399('0x58')]({'where':{'id':_0x4eb1cd},'attributes':['id'],'include':[{'model':db[_0x2399('0x6e')],'as':_0x2399('0x79'),'attributes':['id',_0x2399('0x3f'),'online',_0x2399('0x7a'),_0x2399('0x7b')],'raw':!![]}]})[_0x2399('0x25')](function(_0x1b9517){if(_0x1b9517){var _0x25c8e2=_[_0x2399('0x7c')](_0x1b9517,function(_0x1ae2d6){var _0x34b6d7=_0x1ae2d6[_0x2399('0x3b')]({'plain':!![]});return _0x34b6d7[_0x2399('0x79')];});return db['ChatQueue'][_0x2399('0x5c')]({'where':{'id':_0x5e3ddf[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](function(_0x15d65e){return db['sequelize'][_0x2399('0x7d')](function(_0x54462f){return _0x15d65e[_0x2399('0x7e')](_0x4eb1cd,{'transaction':_0x54462f})[_0x2399('0x25')](function(){return BPromise[_0x2399('0x7f')](_0x25c8e2,function(_0x59ddde){return db[_0x2399('0x69')][_0x2399('0x80')]({'where':{'UserId':_0x59ddde['id'],'ChatQueueId':_0x5e3ddf['params']['id']},'transaction':_0x54462f});});})['then'](function(){_0x25c8e2[_0x2399('0x81')](function(_0x4109a9){socket[_0x2399('0x82')](_0x2399('0x83'),{'UserId':_0x4109a9['id'],'ChatQueueId':_0x15d65e['id']});});});});});}})[_0x2399('0x25')](respondWithStatusCode(_0xe53984,null))['catch'](handleError(_0xe53984,null));};exports['removeTeams']=function(_0x49e3f8,_0x1b440b,_0x437e27){return db[_0x2399('0x84')][_0x2399('0x58')]({'where':{'id':_0x49e3f8[_0x2399('0x48')]['ids']},'attributes':['id'],'include':[{'model':db[_0x2399('0x6e')],'as':_0x2399('0x79'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x1b440b,null))[_0x2399('0x25')](function(_0x2b69af){var _0x50a013=_['map'](_0x2b69af,'id');var _0x2c8228=[];var _0x53863a=[];var _0x1ca7e8=squel[_0x2399('0x85')]();_0x1ca7e8[_0x2399('0x86')](_0x2399('0x87'))[_0x2399('0x88')](_0x2399('0x89'),'tq')[_0x2399('0x8a')](_0x2399('0x8b'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x2399('0x8c'),_0x49e3f8['params']['id']);for(var _0x428c25=0x0;_0x428c25<_0x2b69af['length'];_0x428c25+=0x1){let _0x238944=_0x2b69af[_0x428c25];for(var _0x3cf652=0x0;_0x3cf652<_0x238944[_0x2399('0x79')]['length'];_0x3cf652+=0x1){let _0x32c1f7=_0x238944[_0x2399('0x79')][_0x3cf652];var _0x1a9c49=_0x1ca7e8['clone']();_0x1a9c49['where'](_0x2399('0x8d'),_0x32c1f7['id']);_0x53863a[_0x2399('0x8e')](db['sequelize'][_0x2399('0x48')](_0x1a9c49[_0x2399('0x8f')](),{'type':db[_0x2399('0x90')][_0x2399('0x91')][_0x2399('0x92')]})[_0x2399('0x25')](function(_0x51e053){if(_0x51e053[_0x2399('0x4e')]===0x1){return _0x32c1f7['id'];}else{var _0x34fb5d=_[_0x2399('0x93')](_[_0x2399('0x42')](_0x51e053,'TeamId'),function(_0xecff96){return _[_0x2399('0x94')](_0x50a013,_0xecff96);});if(_0x34fb5d){return _0x32c1f7['id'];}}}));}}return BPromise[_0x2399('0x95')](_0x53863a)[_0x2399('0x25')](function(_0x4b5fd5){_0x2c8228=_(_0x2c8228)['union'](_0x4b5fd5)['compact']()[_0x2399('0x96')]();return db['ChatQueue'][_0x2399('0x5c')]({'where':{'id':_0x49e3f8[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](function(_0x434b76){return db[_0x2399('0x90')][_0x2399('0x7d')](function(_0x366533){return _0x434b76['removeTeams'](_0x49e3f8[_0x2399('0x48')][_0x2399('0x97')],{'transaction':_0x366533})[_0x2399('0x25')](function(){if(!_[_0x2399('0x98')](_0x2c8228)){return _0x434b76[_0x2399('0x99')](_0x2c8228,{'transaction':_0x366533});}})[_0x2399('0x25')](function(){_0x2c8228[_0x2399('0x81')](function(_0x10ea1b){socket[_0x2399('0x82')](_0x2399('0x9a'),{'UserId':_0x10ea1b,'ChatQueueId':_0x434b76['id']});});});});});});})[_0x2399('0x25')](respondWithStatusCode(_0x1b440b,null))[_0x2399('0x5d')](handleError(_0x1b440b,null));};exports[_0x2399('0x9b')]=function(_0x17c008,_0x19232b,_0x2aa7da){return db[_0x2399('0x43')][_0x2399('0x5c')]({'where':{'id':_0x17c008[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x19232b,null))[_0x2399('0x25')](function(_0x3fb603){if(_0x3fb603){return _0x3fb603[_0x2399('0x9b')](_0x17c008[_0x2399('0x5f')]['ids'],_[_0x2399('0x9c')](_0x17c008[_0x2399('0x5f')],['ids','id'])||{})['spread'](function(_0xa6a63a){for(var _0x5cae1a=0x0;_0x5cae1a<_0x17c008[_0x2399('0x5f')]['ids'][_0x2399('0x4e')];_0x5cae1a+=0x1){socket[_0x2399('0x82')](_0x2399('0x83'),{'UserId':Number(_0x17c008[_0x2399('0x5f')]['ids'][_0x5cae1a]),'ChatQueueId':Number(_0x17c008[_0x2399('0x5a')]['id'])});}return _0xa6a63a;});}})['then'](respondWithResult(_0x19232b,null))[_0x2399('0x5d')](handleError(_0x19232b,null));};exports[_0x2399('0x99')]=function(_0x1b0453,_0x27f8c4,_0x28914a){return db[_0x2399('0x43')][_0x2399('0x5c')]({'where':{'id':_0x1b0453['params']['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x27f8c4,null))['then'](function(_0x489b7c){if(_0x489b7c){return _0x489b7c['removeAgents'](_0x1b0453[_0x2399('0x48')][_0x2399('0x97')])[_0x2399('0x25')](function(){if(_[_0x2399('0x9d')](_0x1b0453[_0x2399('0x48')]['ids'])){for(var _0x382cab=0x0;_0x382cab<_0x1b0453['query'][_0x2399('0x97')][_0x2399('0x4e')];_0x382cab+=0x1){socket[_0x2399('0x82')](_0x2399('0x9a'),{'UserId':Number(_0x1b0453[_0x2399('0x48')][_0x2399('0x97')][_0x382cab]),'ChatQueueId':Number(_0x1b0453[_0x2399('0x5a')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x1b0453[_0x2399('0x48')][_0x2399('0x97')]),'ChatQueueId':Number(_0x1b0453[_0x2399('0x5a')]['id'])});}});}})['then'](respondWithStatusCode(_0x27f8c4,null))[_0x2399('0x5d')](handleError(_0x27f8c4,null));};exports[_0x2399('0x9e')]=function(_0x251474,_0x45905d,_0x2955fd){var _0x349f9b={};var _0x37e414={};var _0x42907c;var _0x19c7bf;return db[_0x2399('0x43')][_0x2399('0x68')]({'where':{'id':_0x251474[_0x2399('0x5a')]['id']}})[_0x2399('0x25')](handleEntityNotFound(_0x45905d,null))[_0x2399('0x25')](function(_0x323fbf){if(_0x323fbf){_0x42907c=_0x323fbf;_0x37e414['model']=_[_0x2399('0x49')](db['User'][_0x2399('0x44')]);_0x37e414[_0x2399('0x48')]=_[_0x2399('0x49')](_0x251474[_0x2399('0x48')]);_0x37e414['filters']=_[_0x2399('0x4c')](_0x37e414['model'],_0x37e414[_0x2399('0x48')]);_0x349f9b[_0x2399('0x4b')]=_[_0x2399('0x4c')](_0x37e414[_0x2399('0x47')],qs['fields'](_0x251474[_0x2399('0x48')]['fields']));_0x349f9b[_0x2399('0x4b')]=_0x349f9b[_0x2399('0x4b')]['length']?_0x349f9b[_0x2399('0x4b')]:_0x37e414[_0x2399('0x47')];_0x349f9b[_0x2399('0x6b')]=qs['sort'](_0x251474['query'][_0x2399('0x50')]);_0x349f9b['where']=qs[_0x2399('0x4a')](_['pick'](_0x251474[_0x2399('0x48')],_0x37e414['filters']));if(_0x251474[_0x2399('0x48')][_0x2399('0x52')]){_0x349f9b[_0x2399('0x51')]=_[_0x2399('0x5b')](_0x349f9b[_0x2399('0x51')],{'$or':_[_0x2399('0x42')](_0x349f9b['attributes'],function(_0x2d96bc){var _0x2bc7eb={};_0x2bc7eb[_0x2d96bc]={'$like':'%'+_0x251474[_0x2399('0x48')]['filter']+'%'};return _0x2bc7eb;})});}_0x349f9b=_['merge']({},_0x349f9b,_0x251474[_0x2399('0x55')]);return _0x42907c[_0x2399('0x9e')](_0x349f9b);}})[_0x2399('0x25')](function(_0x1cfe6f){if(_0x1cfe6f){_0x19c7bf=_0x1cfe6f[_0x2399('0x4e')];if(!_0x251474[_0x2399('0x48')][_0x2399('0x4f')](_0x2399('0x6a'))){_0x349f9b[_0x2399('0x33')]=qs[_0x2399('0x33')](_0x251474[_0x2399('0x48')][_0x2399('0x33')]);_0x349f9b[_0x2399('0x30')]=qs[_0x2399('0x30')](_0x251474[_0x2399('0x48')][_0x2399('0x30')]);}return _0x42907c['getAgents'](_0x349f9b);}})[_0x2399('0x25')](function(_0x53731c){if(_0x53731c){return _0x53731c?{'count':_0x19c7bf,'rows':_0x53731c}:null;}})[_0x2399('0x25')](respondWithResult(_0x45905d,null))[_0x2399('0x5d')](handleError(_0x45905d,null));};