Built motion from commit 85328c08.|2.5.50
[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 _0x50c2=['UserChatQueue','nolimit','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','SIP','chatPause','getTeams','Team','addTeams','ids','Agents','online','voicePause','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','field','tq.TeamId','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','toString','SELECT','every','TeamId','includes','all','union','isEmpty','removeAgents','userChatQueue:remove','omit','spread','isArray','getAgents','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','catch','end','status','json','offset','undefined','limit','count','set','apply','reject','then','ChatQueues','UserProfileResource','destroy','sendStatus','stack','name','send','map','ChatQueue','rawAttributes','fieldName','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','includeAll','include','findAll','rows','show','params','keys','length','merge','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne'];(function(_0xe8668f,_0x42446c){var _0xf3d4ff=function(_0x5447d6){while(--_0x5447d6){_0xe8668f['push'](_0xe8668f['shift']());}};_0xf3d4ff(++_0x42446c);}(_0x50c2,0x1e8));var _0x250c=function(_0x4a7244,_0x2eb6d3){_0x4a7244=_0x4a7244-0x0;var _0x551233=_0x50c2[_0x4a7244];return _0x551233;};'use strict';var emlformat=require(_0x250c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x250c('0x1'));var jsonpatch=require(_0x250c('0x2'));var rp=require('request-promise');var moment=require(_0x250c('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x250c('0x4'));var util=require(_0x250c('0x5'));var path=require(_0x250c('0x6'));var sox=require(_0x250c('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x250c('0x8'));var _=require(_0x250c('0x9'));var squel=require(_0x250c('0xa'));var crypto=require(_0x250c('0xb'));var jsforce=require(_0x250c('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x250c('0xd'));var Redis=require('ioredis');var authService=require(_0x250c('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x250c('0xf'));var hardwareService=require(_0x250c('0x10'));var logger=require(_0x250c('0x11'))('api');var utils=require(_0x250c('0x12'));var config=require(_0x250c('0x13'));var licenseUtil=require(_0x250c('0x14'));var db=require(_0x250c('0x15'))['db'];config[_0x250c('0x16')]=_[_0x250c('0x17')](config[_0x250c('0x16')],{'host':_0x250c('0x18'),'port':0x18eb});var socket=require(_0x250c('0x19'))(new Redis(config['redis']));require(_0x250c('0x1a'))[_0x250c('0x1b')](socket);var jayson=require(_0x250c('0x1c'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xb44357,_0x1d7263,_0x1a90db,_0x59f7fe){return new BPromise(function(_0x1c90b3,_0x2fdf70){var _0x3f36bb=_0x59f7fe||client;return _0x3f36bb['request'](_0xb44357,_0x1a90db)['then'](function(_0x2feecf){logger['info'](_0x250c('0x1d'),_0x1d7263,'request\x20sent');logger[_0x250c('0x1e')](_0x250c('0x1f'),_0x1d7263,'request\x20sent',JSON[_0x250c('0x20')](_0x2feecf));if(_0x2feecf[_0x250c('0x21')]){if(_0x2feecf['error'][_0x250c('0x22')]===0x1f4){logger[_0x250c('0x21')](_0x250c('0x1d'),_0x1d7263,_0x2feecf[_0x250c('0x21')][_0x250c('0x23')]);return _0x2fdf70(_0x2feecf[_0x250c('0x21')][_0x250c('0x23')]);}logger[_0x250c('0x21')](_0x250c('0x1d'),_0x1d7263,_0x2feecf[_0x250c('0x21')][_0x250c('0x23')]);return _0x1c90b3(_0x2feecf[_0x250c('0x21')][_0x250c('0x23')]);}else{logger[_0x250c('0x24')]('ChatQueue,\x20%s,\x20%s',_0x1d7263,_0x250c('0x25'));_0x1c90b3(_0x2feecf[_0x250c('0x26')][_0x250c('0x23')]);}})[_0x250c('0x27')](function(_0x24204a){logger['error'](_0x250c('0x1d'),_0x1d7263,_0x24204a);_0x2fdf70(_0x24204a);});});}function respondWithStatusCode(_0x40239c,_0x2b3fce){_0x2b3fce=_0x2b3fce||0xcc;return function(_0x4a5ab1){if(_0x4a5ab1){return _0x40239c['sendStatus'](_0x2b3fce);}return _0x40239c['status'](_0x2b3fce)[_0x250c('0x28')]();};}function respondWithResult(_0x595900,_0x2bb0f8){_0x2bb0f8=_0x2bb0f8||0xc8;return function(_0x38c2a5){if(_0x38c2a5){return _0x595900[_0x250c('0x29')](_0x2bb0f8)[_0x250c('0x2a')](_0x38c2a5);}};}function respondWithFilteredResult(_0xaca396,_0x4c388d){return function(_0x4a2ea1){if(_0x4a2ea1){var _0x24d97f=typeof _0x4c388d[_0x250c('0x2b')]===_0x250c('0x2c')&&typeof _0x4c388d[_0x250c('0x2d')]==='undefined';var _0x376af7=_0x4a2ea1[_0x250c('0x2e')];var _0x353ee5=_0x24d97f?0x0:_0x4c388d[_0x250c('0x2b')];var _0x53e3c0=_0x24d97f?_0x4a2ea1['count']:_0x4c388d['offset']+_0x4c388d['limit'];var _0x1d0685;if(_0x53e3c0>=_0x376af7){_0x53e3c0=_0x376af7;_0x1d0685=0xc8;}else{_0x1d0685=0xce;}_0xaca396['status'](_0x1d0685);return _0xaca396[_0x250c('0x2f')]('Content-Range',_0x353ee5+'-'+_0x53e3c0+'/'+_0x376af7)[_0x250c('0x2a')](_0x4a2ea1);}return null;};}function patchUpdates(_0x590bd8){return function(_0x2645a9){try{jsonpatch[_0x250c('0x30')](_0x2645a9,_0x590bd8,!![]);}catch(_0x176b6a){return BPromise[_0x250c('0x31')](_0x176b6a);}return _0x2645a9['save']();};}function saveUpdates(_0x1bebfb,_0x2a8691){return function(_0x276ddf){if(_0x276ddf){return _0x276ddf['update'](_0x1bebfb)[_0x250c('0x32')](function(_0x208c04){return _0x208c04;});}return null;};}function removeEntity(_0x387119,_0x40e18f){return function(_0xaad7e5){if(_0xaad7e5){return _0xaad7e5['destroy']()['then'](function(){var _0x549a53=_0xaad7e5['get']({'plain':!![]});var _0x38d75b=_0x250c('0x33');return db[_0x250c('0x34')][_0x250c('0x35')]({'where':{'type':_0x38d75b,'resourceId':_0x549a53['id']}})['then'](function(){return _0xaad7e5;});})[_0x250c('0x32')](function(){_0x387119[_0x250c('0x29')](0xcc)[_0x250c('0x28')]();});}};}function handleEntityNotFound(_0x19e43c,_0x50189c){return function(_0x3b3c2b){if(!_0x3b3c2b){_0x19e43c[_0x250c('0x36')](0x194);}return _0x3b3c2b;};}function handleError(_0x19cc86,_0x4d26d7){_0x4d26d7=_0x4d26d7||0x1f4;return function(_0x2b6e0e){logger[_0x250c('0x21')](_0x2b6e0e[_0x250c('0x37')]);if(_0x2b6e0e[_0x250c('0x38')]){delete _0x2b6e0e[_0x250c('0x38')];}_0x19cc86[_0x250c('0x29')](_0x4d26d7)[_0x250c('0x39')](_0x2b6e0e);};}exports['index']=function(_0x3744a4,_0x442de6){var _0x1501ff={},_0x3fe6db={},_0x38b6a4={'count':0x0,'rows':[]};var _0x408673=_[_0x250c('0x3a')](db[_0x250c('0x3b')][_0x250c('0x3c')],function(_0xda987d){return{'name':_0xda987d[_0x250c('0x3d')],'type':_0xda987d['type'][_0x250c('0x3e')]};});_0x3fe6db[_0x250c('0x3f')]=_[_0x250c('0x3a')](_0x408673,_0x250c('0x38'));_0x3fe6db[_0x250c('0x40')]=_['keys'](_0x3744a4['query']);_0x3fe6db[_0x250c('0x41')]=_[_0x250c('0x42')](_0x3fe6db['model'],_0x3fe6db['query']);_0x1501ff['attributes']=_[_0x250c('0x42')](_0x3fe6db[_0x250c('0x3f')],qs[_0x250c('0x43')](_0x3744a4['query']['fields']));_0x1501ff[_0x250c('0x44')]=_0x1501ff[_0x250c('0x44')]['length']?_0x1501ff['attributes']:_0x3fe6db[_0x250c('0x3f')];if(!_0x3744a4[_0x250c('0x40')][_0x250c('0x45')]('nolimit')){_0x1501ff[_0x250c('0x2d')]=qs[_0x250c('0x2d')](_0x3744a4[_0x250c('0x40')]['limit']);_0x1501ff['offset']=qs[_0x250c('0x2b')](_0x3744a4[_0x250c('0x40')][_0x250c('0x2b')]);}_0x1501ff[_0x250c('0x46')]=qs[_0x250c('0x47')](_0x3744a4[_0x250c('0x40')][_0x250c('0x47')]);_0x1501ff[_0x250c('0x48')]=qs['filters'](_[_0x250c('0x49')](_0x3744a4[_0x250c('0x40')],_0x3fe6db['filters']),_0x408673);if(_0x3744a4[_0x250c('0x40')][_0x250c('0x4a')]){_0x1501ff['where']=_['merge'](_0x1501ff[_0x250c('0x48')],{'$or':_[_0x250c('0x3a')](_0x408673,function(_0x20440b){if(_0x20440b['type']!==_0x250c('0x4b')){var _0x4f8521={};_0x4f8521[_0x20440b[_0x250c('0x38')]]={'$like':'%'+_0x3744a4['query'][_0x250c('0x4a')]+'%'};return _0x4f8521;}})});}_0x1501ff=_['merge']({},_0x1501ff,_0x3744a4['options']);var _0x40a7aa={'where':_0x1501ff[_0x250c('0x48')]};return db[_0x250c('0x3b')][_0x250c('0x2e')](_0x40a7aa)['then'](function(_0xe0a317){_0x38b6a4['count']=_0xe0a317;if(_0x3744a4[_0x250c('0x40')][_0x250c('0x4c')]){_0x1501ff[_0x250c('0x4d')]=[{'all':!![]}];}return db['ChatQueue'][_0x250c('0x4e')](_0x1501ff);})[_0x250c('0x32')](function(_0x30c2a2){_0x38b6a4[_0x250c('0x4f')]=_0x30c2a2;return _0x38b6a4;})['then'](respondWithFilteredResult(_0x442de6,_0x1501ff))[_0x250c('0x27')](handleError(_0x442de6,null));};exports[_0x250c('0x50')]=function(_0x2d05d6,_0x1a56e8){var _0x512dd5={'raw':!![],'where':{'id':_0x2d05d6[_0x250c('0x51')]['id']}},_0x4b6886={};_0x4b6886[_0x250c('0x3f')]=_[_0x250c('0x52')](db[_0x250c('0x3b')][_0x250c('0x3c')]);_0x4b6886['query']=_['keys'](_0x2d05d6[_0x250c('0x40')]);_0x4b6886[_0x250c('0x41')]=_[_0x250c('0x42')](_0x4b6886[_0x250c('0x3f')],_0x4b6886[_0x250c('0x40')]);_0x512dd5[_0x250c('0x44')]=_[_0x250c('0x42')](_0x4b6886[_0x250c('0x3f')],qs[_0x250c('0x43')](_0x2d05d6[_0x250c('0x40')]['fields']));_0x512dd5[_0x250c('0x44')]=_0x512dd5['attributes'][_0x250c('0x53')]?_0x512dd5[_0x250c('0x44')]:_0x4b6886[_0x250c('0x3f')];if(_0x2d05d6[_0x250c('0x40')][_0x250c('0x4c')]){_0x512dd5['include']=[{'all':!![]}];}_0x512dd5=_[_0x250c('0x54')]({},_0x512dd5,_0x2d05d6[_0x250c('0x55')]);return db[_0x250c('0x3b')][_0x250c('0x56')](_0x512dd5)[_0x250c('0x32')](handleEntityNotFound(_0x1a56e8,null))[_0x250c('0x32')](respondWithResult(_0x1a56e8,null))[_0x250c('0x27')](handleError(_0x1a56e8,null));};exports[_0x250c('0x57')]=function(_0x4bfd34,_0x5549e5){return db[_0x250c('0x3b')][_0x250c('0x57')](_0x4bfd34[_0x250c('0x58')],{})[_0x250c('0x32')](function(_0x39fb27){var _0x385365=_0x4bfd34[_0x250c('0x59')][_0x250c('0x5a')]({'plain':!![]});if(!_0x385365)throw new Error(_0x250c('0x5b'));if(_0x385365['role']===_0x250c('0x59')){var _0x3441a8=_0x39fb27[_0x250c('0x5a')]({'plain':!![]});var _0x376f00='ChatQueues';return db[_0x250c('0x5c')]['find']({'where':{'name':_0x376f00,'userProfileId':_0x385365[_0x250c('0x5d')]},'raw':!![]})[_0x250c('0x32')](function(_0x4c59e5){if(_0x4c59e5&&_0x4c59e5[_0x250c('0x5e')]===0x0){return db[_0x250c('0x34')]['create']({'name':_0x3441a8[_0x250c('0x38')],'resourceId':_0x3441a8['id'],'type':_0x4c59e5[_0x250c('0x38')],'sectionId':_0x4c59e5['id']},{})[_0x250c('0x32')](function(){return _0x39fb27;});}else{return _0x39fb27;}})['catch'](function(_0x412217){logger[_0x250c('0x21')](_0x250c('0x5f'),_0x412217);throw _0x412217;});}return _0x39fb27;})[_0x250c('0x32')](respondWithResult(_0x5549e5,0xc9))[_0x250c('0x27')](handleError(_0x5549e5,null));};exports[_0x250c('0x60')]=function(_0x2fd085,_0x43872b){if(_0x2fd085[_0x250c('0x58')]['id']){delete _0x2fd085['body']['id'];}return db[_0x250c('0x3b')]['find']({'where':{'id':_0x2fd085[_0x250c('0x51')]['id']}})[_0x250c('0x32')](handleEntityNotFound(_0x43872b,null))[_0x250c('0x32')](saveUpdates(_0x2fd085[_0x250c('0x58')],null))['then'](respondWithResult(_0x43872b,null))[_0x250c('0x27')](handleError(_0x43872b,null));};exports[_0x250c('0x35')]=function(_0x3cddd2,_0x1d32ad){return db[_0x250c('0x3b')]['find']({'where':{'id':_0x3cddd2[_0x250c('0x51')]['id']}})[_0x250c('0x32')](handleEntityNotFound(_0x1d32ad,null))[_0x250c('0x32')](removeEntity(_0x1d32ad,null))[_0x250c('0x27')](handleError(_0x1d32ad,null));};exports[_0x250c('0x61')]=function(_0x2596b8,_0x4bc91a){return db[_0x250c('0x3b')][_0x250c('0x61')]()[_0x250c('0x32')](respondWithResult(_0x4bc91a,null))[_0x250c('0x27')](handleError(_0x4bc91a,null));};exports[_0x250c('0x62')]=function(_0x1b2976,_0x1cb3ac,_0x26bcbd){var _0x3f1b7a={'raw':!![],'where':{}},_0xc6569={},_0x2d8ddd;return db[_0x250c('0x3b')][_0x250c('0x63')]({'where':{'id':_0x1b2976['params']['id']}})['then'](handleEntityNotFound(_0x1cb3ac,null))[_0x250c('0x32')](function(_0x247f75){if(_0x247f75){_0x2d8ddd=_0x247f75[_0x250c('0x5a')]({'plain':!![]});_0xc6569[_0x250c('0x3f')]=_['keys'](db[_0x250c('0x64')][_0x250c('0x3c')]);_0xc6569['query']=_[_0x250c('0x52')](_0x1b2976[_0x250c('0x40')]);_0xc6569[_0x250c('0x41')]=_['intersection'](_0xc6569[_0x250c('0x3f')],_0xc6569[_0x250c('0x40')]);_0x3f1b7a['attributes']=_['intersection'](_0xc6569['model'],qs[_0x250c('0x43')](_0x1b2976[_0x250c('0x40')][_0x250c('0x43')]));_0x3f1b7a[_0x250c('0x44')]=_0x3f1b7a[_0x250c('0x44')][_0x250c('0x53')]?_0x3f1b7a[_0x250c('0x44')]:_0xc6569[_0x250c('0x3f')];if(!_0x1b2976['query'][_0x250c('0x45')](_0x250c('0x65'))){_0x3f1b7a[_0x250c('0x2d')]=qs[_0x250c('0x2d')](_0x1b2976['query'][_0x250c('0x2d')]);_0x3f1b7a['offset']=qs['offset'](_0x1b2976[_0x250c('0x40')]['offset']);}_0x3f1b7a['order']=qs['sort'](_0x1b2976['query'][_0x250c('0x47')]);_0x3f1b7a['where']=qs[_0x250c('0x41')](_[_0x250c('0x49')](_0x1b2976[_0x250c('0x40')],_0xc6569[_0x250c('0x41')]));_0x3f1b7a[_0x250c('0x48')]['ChatQueueId']=_0x247f75['id'];if(_0x1b2976[_0x250c('0x40')][_0x250c('0x4a')]){_0x3f1b7a['where']=_[_0x250c('0x54')](_0x3f1b7a[_0x250c('0x48')],{'$or':_['map'](_0x3f1b7a[_0x250c('0x44')],function(_0x3e479f){var _0x22e983={};_0x22e983[_0x3e479f]={'$like':'%'+_0x1b2976['query'][_0x250c('0x4a')]+'%'};return _0x22e983;})});}_0x3f1b7a=_[_0x250c('0x54')]({},_0x3f1b7a,_0x1b2976['options']);return db[_0x250c('0x64')][_0x250c('0x4e')](_0x3f1b7a);}})[_0x250c('0x32')](function(_0x1e8698){if(_0x1e8698){return db[_0x250c('0x66')][_0x250c('0x67')]({'where':{'id':_[_0x250c('0x3a')](_0x1e8698,_0x250c('0x68')),'role':_0x250c('0x69')},'attributes':['id','name','chatPause',_0x250c('0x6a'),_0x250c('0x6b')]});}})[_0x250c('0x32')](function(_0x14b892){if(_0x14b892){return{'count':_0x14b892[_0x250c('0x2e')],'rows':_[_0x250c('0x3a')](_0x14b892[_0x250c('0x4f')],function(_0x3d2574){return{'membername':_0x3d2574[_0x250c('0x38')],'UserId':_0x3d2574['id'],'queue_name':_0x2d8ddd[_0x250c('0x38')],'ChatQueueId':_0x2d8ddd['id'],'interface':util[_0x250c('0x6c')]('%s/%s',_0x250c('0x6d'),_0x3d2574['name']),'penalty':0x0,'paused':_0x3d2574[_0x250c('0x6e')],'createdAt':_0x3d2574[_0x250c('0x6b')],'updatedAt':_0x3d2574[_0x250c('0x6a')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x250c('0x32')](respondWithFilteredResult(_0x1cb3ac,_0x3f1b7a))['catch'](handleError(_0x1cb3ac,null));};exports[_0x250c('0x6f')]=function(_0x43160d,_0x99aeef,_0x28a684){var _0x61a35={};var _0xf28a3b={};var _0x7bc1a6;var _0x302996;return db[_0x250c('0x3b')]['findOne']({'where':{'id':_0x43160d[_0x250c('0x51')]['id']}})[_0x250c('0x32')](handleEntityNotFound(_0x99aeef,null))['then'](function(_0x4b3687){if(_0x4b3687){_0x7bc1a6=_0x4b3687;_0xf28a3b[_0x250c('0x3f')]=_[_0x250c('0x52')](db[_0x250c('0x70')][_0x250c('0x3c')]);_0xf28a3b[_0x250c('0x40')]=_[_0x250c('0x52')](_0x43160d[_0x250c('0x40')]);_0xf28a3b['filters']=_[_0x250c('0x42')](_0xf28a3b['model'],_0xf28a3b[_0x250c('0x40')]);_0x61a35[_0x250c('0x44')]=_[_0x250c('0x42')](_0xf28a3b[_0x250c('0x3f')],qs[_0x250c('0x43')](_0x43160d[_0x250c('0x40')]['fields']));_0x61a35[_0x250c('0x44')]=_0x61a35[_0x250c('0x44')][_0x250c('0x53')]?_0x61a35[_0x250c('0x44')]:_0xf28a3b[_0x250c('0x3f')];_0x61a35[_0x250c('0x46')]=qs[_0x250c('0x47')](_0x43160d[_0x250c('0x40')][_0x250c('0x47')]);_0x61a35[_0x250c('0x48')]=qs['filters'](_[_0x250c('0x49')](_0x43160d[_0x250c('0x40')],_0xf28a3b[_0x250c('0x41')]));if(_0x43160d[_0x250c('0x40')][_0x250c('0x4a')]){_0x61a35[_0x250c('0x48')]=_['merge'](_0x61a35[_0x250c('0x48')],{'$or':_[_0x250c('0x3a')](_0x61a35['attributes'],function(_0x50feda){var _0x73b10={};_0x73b10[_0x50feda]={'$like':'%'+_0x43160d[_0x250c('0x40')]['filter']+'%'};return _0x73b10;})});}_0x61a35=_[_0x250c('0x54')]({},_0x61a35,_0x43160d[_0x250c('0x55')]);return _0x7bc1a6[_0x250c('0x6f')](_0x61a35);}})[_0x250c('0x32')](function(_0x52effa){if(_0x52effa){_0x302996=_0x52effa[_0x250c('0x53')];if(!_0x43160d['query'][_0x250c('0x45')](_0x250c('0x65'))){_0x61a35[_0x250c('0x2d')]=qs['limit'](_0x43160d[_0x250c('0x40')]['limit']);_0x61a35[_0x250c('0x2b')]=qs[_0x250c('0x2b')](_0x43160d[_0x250c('0x40')][_0x250c('0x2b')]);}return _0x7bc1a6['getTeams'](_0x61a35);}})[_0x250c('0x32')](function(_0x5a4131){if(_0x5a4131){return _0x5a4131?{'count':_0x302996,'rows':_0x5a4131}:null;}})[_0x250c('0x32')](respondWithResult(_0x99aeef,null))[_0x250c('0x27')](handleError(_0x99aeef,null));};exports[_0x250c('0x71')]=function(_0xd31f5,_0x353b93,_0x25017e){var _0x1b2052=_0xd31f5[_0x250c('0x58')][_0x250c('0x72')];return db[_0x250c('0x70')]['findAll']({'where':{'id':_0x1b2052},'attributes':['id'],'include':[{'model':db['User'],'as':_0x250c('0x73'),'attributes':['id',_0x250c('0x38'),_0x250c('0x74'),_0x250c('0x75'),'interface'],'raw':!![]}]})[_0x250c('0x32')](function(_0x30130a){if(_0x30130a){var _0x7c3a0c=_[_0x250c('0x76')](_0x30130a,function(_0x4d7402){var _0x2fd7a5=_0x4d7402['get']({'plain':!![]});return _0x2fd7a5[_0x250c('0x73')];});return db['ChatQueue'][_0x250c('0x56')]({'where':{'id':_0xd31f5[_0x250c('0x51')]['id']}})['then'](function(_0x259adb){return db[_0x250c('0x77')][_0x250c('0x78')](function(_0x1befbe){return _0x259adb[_0x250c('0x71')](_0x1b2052,{'transaction':_0x1befbe})[_0x250c('0x32')](function(){return BPromise[_0x250c('0x79')](_0x7c3a0c,function(_0x4d9ae0){return db[_0x250c('0x64')][_0x250c('0x7a')]({'where':{'UserId':_0x4d9ae0['id'],'ChatQueueId':_0xd31f5['params']['id']},'transaction':_0x1befbe});});})[_0x250c('0x32')](function(){_0x7c3a0c[_0x250c('0x7b')](function(_0x5b46be){socket[_0x250c('0x7c')](_0x250c('0x7d'),{'UserId':_0x5b46be['id'],'ChatQueueId':_0x259adb['id']});});});});});}})[_0x250c('0x32')](respondWithStatusCode(_0x353b93,null))['catch'](handleError(_0x353b93,null));};exports[_0x250c('0x7e')]=function(_0x53d06d,_0x474be3,_0x1f517c){return db[_0x250c('0x70')][_0x250c('0x4e')]({'where':{'id':_0x53d06d[_0x250c('0x40')]['ids']},'attributes':['id'],'include':[{'model':db[_0x250c('0x66')],'as':_0x250c('0x73'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x474be3,null))[_0x250c('0x32')](function(_0x3dcfb3){var _0x118712=_['map'](_0x3dcfb3,'id');var _0x5065f0=[];var _0x48d631=[];var _0x3cc2ae=squel['select']();_0x3cc2ae[_0x250c('0x7f')](_0x250c('0x80'))['from']('team_has_chat_queues','tq')[_0x250c('0x81')](_0x250c('0x82'),'ut',_0x250c('0x83'))[_0x250c('0x48')]('ChatQueueId\x20=\x20?',_0x53d06d[_0x250c('0x51')]['id']);for(var _0x1d974d=0x0;_0x1d974d<_0x3dcfb3[_0x250c('0x53')];_0x1d974d+=0x1){let _0x140fa1=_0x3dcfb3[_0x1d974d];for(var _0x35855d=0x0;_0x35855d<_0x140fa1[_0x250c('0x73')][_0x250c('0x53')];_0x35855d+=0x1){let _0x572408=_0x140fa1[_0x250c('0x73')][_0x35855d];var _0x2c9c10=_0x3cc2ae[_0x250c('0x84')]();_0x2c9c10[_0x250c('0x48')]('ut.UserId\x20=\x20?',_0x572408['id']);_0x48d631['push'](db['sequelize'][_0x250c('0x40')](_0x2c9c10[_0x250c('0x85')](),{'type':db['sequelize']['QueryTypes'][_0x250c('0x86')]})['then'](function(_0x2a30c9){if(_0x2a30c9[_0x250c('0x53')]===0x1){return _0x572408['id'];}else{var _0x5e7274=_[_0x250c('0x87')](_['map'](_0x2a30c9,_0x250c('0x88')),function(_0x53d14f){return _[_0x250c('0x89')](_0x118712,_0x53d14f);});if(_0x5e7274){return _0x572408['id'];}}}));}}return BPromise[_0x250c('0x8a')](_0x48d631)[_0x250c('0x32')](function(_0x25220f){_0x5065f0=_(_0x5065f0)[_0x250c('0x8b')](_0x25220f)['compact']()['value']();return db[_0x250c('0x3b')][_0x250c('0x56')]({'where':{'id':_0x53d06d['params']['id']}})[_0x250c('0x32')](function(_0x4b9e34){return db[_0x250c('0x77')][_0x250c('0x78')](function(_0xd9e69f){return _0x4b9e34[_0x250c('0x7e')](_0x53d06d[_0x250c('0x40')][_0x250c('0x72')],{'transaction':_0xd9e69f})[_0x250c('0x32')](function(){if(!_[_0x250c('0x8c')](_0x5065f0)){return _0x4b9e34[_0x250c('0x8d')](_0x5065f0,{'transaction':_0xd9e69f});}})['then'](function(){_0x5065f0[_0x250c('0x7b')](function(_0x37c10d){socket['emit'](_0x250c('0x8e'),{'UserId':_0x37c10d,'ChatQueueId':_0x4b9e34['id']});});});});});});})[_0x250c('0x32')](respondWithStatusCode(_0x474be3,null))[_0x250c('0x27')](handleError(_0x474be3,null));};exports['addAgents']=function(_0x4f8fcd,_0x4bcc6f,_0x42253f){return db['ChatQueue'][_0x250c('0x56')]({'where':{'id':_0x4f8fcd[_0x250c('0x51')]['id']}})[_0x250c('0x32')](handleEntityNotFound(_0x4bcc6f,null))[_0x250c('0x32')](function(_0x2a1604){if(_0x2a1604){return _0x2a1604['addAgents'](_0x4f8fcd[_0x250c('0x58')]['ids'],_[_0x250c('0x8f')](_0x4f8fcd[_0x250c('0x58')],[_0x250c('0x72'),'id'])||{})[_0x250c('0x90')](function(_0x128f27){for(var _0x564e8f=0x0;_0x564e8f<_0x4f8fcd[_0x250c('0x58')][_0x250c('0x72')][_0x250c('0x53')];_0x564e8f+=0x1){socket[_0x250c('0x7c')]('userChatQueue:save',{'UserId':Number(_0x4f8fcd[_0x250c('0x58')][_0x250c('0x72')][_0x564e8f]),'ChatQueueId':Number(_0x4f8fcd[_0x250c('0x51')]['id'])});}return _0x128f27;});}})[_0x250c('0x32')](respondWithResult(_0x4bcc6f,null))[_0x250c('0x27')](handleError(_0x4bcc6f,null));};exports[_0x250c('0x8d')]=function(_0x1249a7,_0x27c807,_0x20f128){return db[_0x250c('0x3b')][_0x250c('0x56')]({'where':{'id':_0x1249a7[_0x250c('0x51')]['id']}})['then'](handleEntityNotFound(_0x27c807,null))['then'](function(_0x2632ae){if(_0x2632ae){return _0x2632ae[_0x250c('0x8d')](_0x1249a7['query'][_0x250c('0x72')])[_0x250c('0x32')](function(){if(_[_0x250c('0x91')](_0x1249a7[_0x250c('0x40')][_0x250c('0x72')])){for(var _0x1e3d0b=0x0;_0x1e3d0b<_0x1249a7[_0x250c('0x40')]['ids']['length'];_0x1e3d0b+=0x1){socket[_0x250c('0x7c')]('userChatQueue:remove',{'UserId':Number(_0x1249a7[_0x250c('0x40')][_0x250c('0x72')][_0x1e3d0b]),'ChatQueueId':Number(_0x1249a7[_0x250c('0x51')]['id'])});}}else{socket[_0x250c('0x7c')](_0x250c('0x8e'),{'UserId':Number(_0x1249a7['query']['ids']),'ChatQueueId':Number(_0x1249a7[_0x250c('0x51')]['id'])});}});}})[_0x250c('0x32')](respondWithStatusCode(_0x27c807,null))[_0x250c('0x27')](handleError(_0x27c807,null));};exports['getAgents']=function(_0x115164,_0x27e479,_0x16ef29){var _0x20027f={};var _0x2c3470={};var _0x23d101;var _0x1299e4;return db[_0x250c('0x3b')][_0x250c('0x63')]({'where':{'id':_0x115164['params']['id']}})['then'](handleEntityNotFound(_0x27e479,null))[_0x250c('0x32')](function(_0x1ee55d){if(_0x1ee55d){_0x23d101=_0x1ee55d;_0x2c3470[_0x250c('0x3f')]=_[_0x250c('0x52')](db[_0x250c('0x66')][_0x250c('0x3c')]);_0x2c3470[_0x250c('0x40')]=_[_0x250c('0x52')](_0x115164[_0x250c('0x40')]);_0x2c3470[_0x250c('0x41')]=_[_0x250c('0x42')](_0x2c3470[_0x250c('0x3f')],_0x2c3470[_0x250c('0x40')]);_0x20027f[_0x250c('0x44')]=_['intersection'](_0x2c3470[_0x250c('0x3f')],qs[_0x250c('0x43')](_0x115164[_0x250c('0x40')]['fields']));_0x20027f['attributes']=_0x20027f[_0x250c('0x44')][_0x250c('0x53')]?_0x20027f[_0x250c('0x44')]:_0x2c3470[_0x250c('0x3f')];_0x20027f[_0x250c('0x46')]=qs[_0x250c('0x47')](_0x115164[_0x250c('0x40')][_0x250c('0x47')]);_0x20027f[_0x250c('0x48')]=qs[_0x250c('0x41')](_['pick'](_0x115164['query'],_0x2c3470[_0x250c('0x41')]));if(_0x115164[_0x250c('0x40')]['filter']){_0x20027f[_0x250c('0x48')]=_['merge'](_0x20027f[_0x250c('0x48')],{'$or':_[_0x250c('0x3a')](_0x20027f[_0x250c('0x44')],function(_0x1bf9f0){var _0x49e578={};_0x49e578[_0x1bf9f0]={'$like':'%'+_0x115164[_0x250c('0x40')][_0x250c('0x4a')]+'%'};return _0x49e578;})});}_0x20027f=_[_0x250c('0x54')]({},_0x20027f,_0x115164[_0x250c('0x55')]);return _0x23d101['getAgents'](_0x20027f);}})['then'](function(_0x4c60b2){if(_0x4c60b2){_0x1299e4=_0x4c60b2[_0x250c('0x53')];if(!_0x115164[_0x250c('0x40')]['hasOwnProperty'](_0x250c('0x65'))){_0x20027f[_0x250c('0x2d')]=qs['limit'](_0x115164[_0x250c('0x40')][_0x250c('0x2d')]);_0x20027f[_0x250c('0x2b')]=qs[_0x250c('0x2b')](_0x115164[_0x250c('0x40')][_0x250c('0x2b')]);}return _0x23d101[_0x250c('0x92')](_0x20027f);}})['then'](function(_0xe39f25){if(_0xe39f25){return _0xe39f25?{'count':_0x1299e4,'rows':_0xe39f25}:null;}})['then'](respondWithResult(_0x27e479,null))[_0x250c('0x27')](handleError(_0x27e479,null));};