4b04368c9d9b849303ae771b5c26e5fe92072432
[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 _0xdf28=['join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','sequelize','toString','SELECT','all','union','compact','value','removeAgents','userChatQueue:remove','addAgents','omit','spread','emit','userChatQueue:save','isArray','getAgents','eml-format','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','jayson/promise','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','sendStatus','status','end','offset','undefined','limit','count','set','apply','save','destroy','UserProfileResource','name','send','index','map','ChatQueue','rawAttributes','fieldName','type','query','keys','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','show','params','length','find','create','body','user','ChatQueues','UserProfileSection','userProfileId','autoAssociation','update','describe','getMembers','findOne','get','ChatQueueId','UserChatQueue','User','findAndCountAll','UserId','chatPause','updatedAt','format','SIP','createdAt','Team','getTeams','Agents','online','voicePause','flatMap','transaction','each','forEach','ids','field','tq.TeamId','from','team_has_chat_queues'];(function(_0x2c2a5e,_0x2e453b){var _0x2fb8db=function(_0x43ad18){while(--_0x43ad18){_0x2c2a5e['push'](_0x2c2a5e['shift']());}};_0x2fb8db(++_0x2e453b);}(_0xdf28,0x1c3));var _0x8df2=function(_0x59c301,_0x359c50){_0x59c301=_0x59c301-0x0;var _0x3866b9=_0xdf28[_0x59c301];return _0x3866b9;};'use strict';var emlformat=require(_0x8df2('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8df2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8df2('0x2'));var moment=require(_0x8df2('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8df2('0x4'));var util=require(_0x8df2('0x5'));var path=require(_0x8df2('0x6'));var sox=require(_0x8df2('0x7'));var csv=require(_0x8df2('0x8'));var ejs=require(_0x8df2('0x9'));var fs=require('fs');var fs_extra=require(_0x8df2('0xa'));var _=require(_0x8df2('0xb'));var squel=require(_0x8df2('0xc'));var crypto=require(_0x8df2('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x8df2('0xe'));var toCsv=require(_0x8df2('0x8'));var querystring=require(_0x8df2('0xf'));var Papa=require(_0x8df2('0x10'));var Redis=require(_0x8df2('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8df2('0x12'));var logger=require(_0x8df2('0x13'))('api');var utils=require(_0x8df2('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x8df2('0x15'));var db=require(_0x8df2('0x16'))['db'];config[_0x8df2('0x17')]=_[_0x8df2('0x18')](config['redis'],{'host':_0x8df2('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8df2('0x17')]));require('./chatQueue.socket')['register'](socket);var jayson=require(_0x8df2('0x1a'));var client=jayson[_0x8df2('0x1b')][_0x8df2('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x78958c,_0x1aa3b9,_0xce0ae7,_0x1b71ff){return new BPromise(function(_0x1e91dd,_0x51953d){var _0x525b0a=_0x1b71ff||client;return _0x525b0a[_0x8df2('0x1d')](_0x78958c,_0xce0ae7)[_0x8df2('0x1e')](function(_0x386788){logger[_0x8df2('0x1f')](_0x8df2('0x20'),_0x1aa3b9,'request\x20sent');logger[_0x8df2('0x21')](_0x8df2('0x22'),_0x1aa3b9,_0x8df2('0x23'),JSON[_0x8df2('0x24')](_0x386788));if(_0x386788[_0x8df2('0x25')]){if(_0x386788['error'][_0x8df2('0x26')]===0x1f4){logger[_0x8df2('0x25')]('ChatQueue,\x20%s,\x20%s',_0x1aa3b9,_0x386788[_0x8df2('0x25')]['message']);return _0x51953d(_0x386788['error']['message']);}logger[_0x8df2('0x25')](_0x8df2('0x20'),_0x1aa3b9,_0x386788[_0x8df2('0x25')]['message']);return _0x1e91dd(_0x386788[_0x8df2('0x25')][_0x8df2('0x27')]);}else{logger[_0x8df2('0x1f')]('ChatQueue,\x20%s,\x20%s',_0x1aa3b9,'request\x20sent');_0x1e91dd(_0x386788['result']['message']);}})['catch'](function(_0xfca1f1){logger[_0x8df2('0x25')](_0x8df2('0x20'),_0x1aa3b9,_0xfca1f1);_0x51953d(_0xfca1f1);});});}function respondWithStatusCode(_0x2a0cbc,_0x1ea7a3){_0x1ea7a3=_0x1ea7a3||0xcc;return function(_0x5498ce){if(_0x5498ce){return _0x2a0cbc[_0x8df2('0x28')](_0x1ea7a3);}return _0x2a0cbc[_0x8df2('0x29')](_0x1ea7a3)[_0x8df2('0x2a')]();};}function respondWithResult(_0x52ee00,_0x3f2727){_0x3f2727=_0x3f2727||0xc8;return function(_0x543bd6){if(_0x543bd6){return _0x52ee00[_0x8df2('0x29')](_0x3f2727)['json'](_0x543bd6);}};}function respondWithFilteredResult(_0x5c5a95,_0x4384dd){return function(_0x525b3b){if(_0x525b3b){var _0xffef2e=typeof _0x4384dd[_0x8df2('0x2b')]===_0x8df2('0x2c')&&typeof _0x4384dd[_0x8df2('0x2d')]==='undefined';var _0x5ebc92=_0x525b3b['count'];var _0x8deb30=_0xffef2e?0x0:_0x4384dd[_0x8df2('0x2b')];var _0x264792=_0xffef2e?_0x525b3b[_0x8df2('0x2e')]:_0x4384dd[_0x8df2('0x2b')]+_0x4384dd['limit'];var _0x878ae1;if(_0x264792>=_0x5ebc92){_0x264792=_0x5ebc92;_0x878ae1=0xc8;}else{_0x878ae1=0xce;}_0x5c5a95[_0x8df2('0x29')](_0x878ae1);return _0x5c5a95[_0x8df2('0x2f')]('Content-Range',_0x8deb30+'-'+_0x264792+'/'+_0x5ebc92)['json'](_0x525b3b);}return null;};}function patchUpdates(_0x425641){return function(_0x2fcbef){try{jsonpatch[_0x8df2('0x30')](_0x2fcbef,_0x425641,!![]);}catch(_0x30adef){return BPromise['reject'](_0x30adef);}return _0x2fcbef[_0x8df2('0x31')]();};}function saveUpdates(_0x271dc2,_0x4e963d){return function(_0xc8fcc0){if(_0xc8fcc0){return _0xc8fcc0['update'](_0x271dc2)['then'](function(_0xdc292f){return _0xdc292f;});}return null;};}function removeEntity(_0xd6e2dc,_0x4affef){return function(_0x39305b){if(_0x39305b){return _0x39305b[_0x8df2('0x32')]()[_0x8df2('0x1e')](function(){var _0x7fa845=_0x39305b['get']({'plain':!![]});var _0x2f61a5='ChatQueues';return db[_0x8df2('0x33')][_0x8df2('0x32')]({'where':{'type':_0x2f61a5,'resourceId':_0x7fa845['id']}})[_0x8df2('0x1e')](function(){return _0x39305b;});})['then'](function(){_0xd6e2dc['status'](0xcc)[_0x8df2('0x2a')]();});}};}function handleEntityNotFound(_0x3a8f81,_0x16286d){return function(_0x196b3e){if(!_0x196b3e){_0x3a8f81[_0x8df2('0x28')](0x194);}return _0x196b3e;};}function handleError(_0x490956,_0x25e73b){_0x25e73b=_0x25e73b||0x1f4;return function(_0x4b81d5){logger[_0x8df2('0x25')](_0x4b81d5['stack']);if(_0x4b81d5[_0x8df2('0x34')]){delete _0x4b81d5[_0x8df2('0x34')];}_0x490956[_0x8df2('0x29')](_0x25e73b)[_0x8df2('0x35')](_0x4b81d5);};}exports[_0x8df2('0x36')]=function(_0x261b1d,_0x4b7fa8){var _0x34dffd={},_0x167e1d={},_0x41e510={'count':0x0,'rows':[]};var _0x2f0fdd=_[_0x8df2('0x37')](db[_0x8df2('0x38')][_0x8df2('0x39')],function(_0xbee36e){return{'name':_0xbee36e[_0x8df2('0x3a')],'type':_0xbee36e[_0x8df2('0x3b')]['key']};});_0x167e1d['model']=_[_0x8df2('0x37')](_0x2f0fdd,_0x8df2('0x34'));_0x167e1d[_0x8df2('0x3c')]=_[_0x8df2('0x3d')](_0x261b1d[_0x8df2('0x3c')]);_0x167e1d['filters']=_['intersection'](_0x167e1d['model'],_0x167e1d[_0x8df2('0x3c')]);_0x34dffd['attributes']=_[_0x8df2('0x3e')](_0x167e1d[_0x8df2('0x3f')],qs[_0x8df2('0x40')](_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x40')]));_0x34dffd[_0x8df2('0x41')]=_0x34dffd[_0x8df2('0x41')]['length']?_0x34dffd[_0x8df2('0x41')]:_0x167e1d[_0x8df2('0x3f')];if(!_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x42')](_0x8df2('0x43'))){_0x34dffd[_0x8df2('0x2d')]=qs['limit'](_0x261b1d['query'][_0x8df2('0x2d')]);_0x34dffd[_0x8df2('0x2b')]=qs[_0x8df2('0x2b')](_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x2b')]);}_0x34dffd[_0x8df2('0x44')]=qs[_0x8df2('0x45')](_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x45')]);_0x34dffd[_0x8df2('0x46')]=qs[_0x8df2('0x47')](_[_0x8df2('0x48')](_0x261b1d[_0x8df2('0x3c')],_0x167e1d[_0x8df2('0x47')]),_0x2f0fdd);if(_0x261b1d[_0x8df2('0x3c')]['filter']){_0x34dffd['where']=_[_0x8df2('0x49')](_0x34dffd[_0x8df2('0x46')],{'$or':_[_0x8df2('0x37')](_0x2f0fdd,function(_0x104bdb){if(_0x104bdb[_0x8df2('0x3b')]!==_0x8df2('0x4a')){var _0x34be6e={};_0x34be6e[_0x104bdb[_0x8df2('0x34')]]={'$like':'%'+_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x4b')]+'%'};return _0x34be6e;}})});}_0x34dffd=_[_0x8df2('0x49')]({},_0x34dffd,_0x261b1d[_0x8df2('0x4c')]);var _0x4913e={'where':_0x34dffd[_0x8df2('0x46')]};return db[_0x8df2('0x38')][_0x8df2('0x2e')](_0x4913e)['then'](function(_0x754e11){_0x41e510[_0x8df2('0x2e')]=_0x754e11;if(_0x261b1d[_0x8df2('0x3c')][_0x8df2('0x4d')]){_0x34dffd['include']=[{'all':!![]}];}return db[_0x8df2('0x38')][_0x8df2('0x4e')](_0x34dffd);})[_0x8df2('0x1e')](function(_0x27eea4){_0x41e510[_0x8df2('0x4f')]=_0x27eea4;return _0x41e510;})[_0x8df2('0x1e')](respondWithFilteredResult(_0x4b7fa8,_0x34dffd))[_0x8df2('0x50')](handleError(_0x4b7fa8,null));};exports[_0x8df2('0x51')]=function(_0x428822,_0x471ca2){var _0xb300df={'raw':!![],'where':{'id':_0x428822[_0x8df2('0x52')]['id']}},_0x14a3b5={};_0x14a3b5[_0x8df2('0x3f')]=_[_0x8df2('0x3d')](db[_0x8df2('0x38')][_0x8df2('0x39')]);_0x14a3b5[_0x8df2('0x3c')]=_[_0x8df2('0x3d')](_0x428822['query']);_0x14a3b5[_0x8df2('0x47')]=_[_0x8df2('0x3e')](_0x14a3b5['model'],_0x14a3b5[_0x8df2('0x3c')]);_0xb300df[_0x8df2('0x41')]=_['intersection'](_0x14a3b5[_0x8df2('0x3f')],qs[_0x8df2('0x40')](_0x428822['query']['fields']));_0xb300df['attributes']=_0xb300df[_0x8df2('0x41')][_0x8df2('0x53')]?_0xb300df[_0x8df2('0x41')]:_0x14a3b5['model'];if(_0x428822[_0x8df2('0x3c')]['includeAll']){_0xb300df['include']=[{'all':!![]}];}_0xb300df=_[_0x8df2('0x49')]({},_0xb300df,_0x428822[_0x8df2('0x4c')]);return db['ChatQueue'][_0x8df2('0x54')](_0xb300df)['then'](handleEntityNotFound(_0x471ca2,null))[_0x8df2('0x1e')](respondWithResult(_0x471ca2,null))[_0x8df2('0x50')](handleError(_0x471ca2,null));};exports[_0x8df2('0x55')]=function(_0x1517f7,_0x2ac587){return db[_0x8df2('0x38')]['create'](_0x1517f7[_0x8df2('0x56')],{})[_0x8df2('0x1e')](function(_0x85d9f2){var _0x3078f6=_0x1517f7[_0x8df2('0x57')]['get']({'plain':!![]});if(!_0x3078f6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3078f6['role']===_0x8df2('0x57')){var _0x49aea0=_0x85d9f2['get']({'plain':!![]});var _0x36839b=_0x8df2('0x58');return db[_0x8df2('0x59')]['find']({'where':{'name':_0x36839b,'userProfileId':_0x3078f6[_0x8df2('0x5a')]},'raw':!![]})['then'](function(_0x424bfb){if(_0x424bfb&&_0x424bfb[_0x8df2('0x5b')]===0x0){return db[_0x8df2('0x33')][_0x8df2('0x55')]({'name':_0x49aea0[_0x8df2('0x34')],'resourceId':_0x49aea0['id'],'type':_0x424bfb[_0x8df2('0x34')],'sectionId':_0x424bfb['id']},{})['then'](function(){return _0x85d9f2;});}else{return _0x85d9f2;}})[_0x8df2('0x50')](function(_0x14fb10){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x14fb10);throw _0x14fb10;});}return _0x85d9f2;})['then'](respondWithResult(_0x2ac587,0xc9))[_0x8df2('0x50')](handleError(_0x2ac587,null));};exports[_0x8df2('0x5c')]=function(_0x3c204f,_0x35aafd){if(_0x3c204f['body']['id']){delete _0x3c204f['body']['id'];}return db[_0x8df2('0x38')]['find']({'where':{'id':_0x3c204f[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x35aafd,null))['then'](saveUpdates(_0x3c204f['body'],null))[_0x8df2('0x1e')](respondWithResult(_0x35aafd,null))[_0x8df2('0x50')](handleError(_0x35aafd,null));};exports['destroy']=function(_0x4c26fa,_0x51530e){return db['ChatQueue']['find']({'where':{'id':_0x4c26fa[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x51530e,null))[_0x8df2('0x1e')](removeEntity(_0x51530e,null))[_0x8df2('0x50')](handleError(_0x51530e,null));};exports['describe']=function(_0xb299bf,_0x8e031e){return db[_0x8df2('0x38')][_0x8df2('0x5d')]()['then'](respondWithResult(_0x8e031e,null))[_0x8df2('0x50')](handleError(_0x8e031e,null));};exports[_0x8df2('0x5e')]=function(_0xa8e5fd,_0x29ac3f,_0x1a93d9){var _0x54b8a8={'raw':!![],'where':{}},_0x276c00={},_0x202ed4;return db[_0x8df2('0x38')][_0x8df2('0x5f')]({'where':{'id':_0xa8e5fd[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x29ac3f,null))[_0x8df2('0x1e')](function(_0x1cbed3){if(_0x1cbed3){_0x202ed4=_0x1cbed3[_0x8df2('0x60')]({'plain':!![]});_0x276c00[_0x8df2('0x3f')]=_[_0x8df2('0x3d')](db['UserChatQueue']['rawAttributes']);_0x276c00[_0x8df2('0x3c')]=_[_0x8df2('0x3d')](_0xa8e5fd[_0x8df2('0x3c')]);_0x276c00[_0x8df2('0x47')]=_[_0x8df2('0x3e')](_0x276c00[_0x8df2('0x3f')],_0x276c00[_0x8df2('0x3c')]);_0x54b8a8['attributes']=_[_0x8df2('0x3e')](_0x276c00['model'],qs['fields'](_0xa8e5fd[_0x8df2('0x3c')][_0x8df2('0x40')]));_0x54b8a8[_0x8df2('0x41')]=_0x54b8a8[_0x8df2('0x41')]['length']?_0x54b8a8['attributes']:_0x276c00[_0x8df2('0x3f')];if(!_0xa8e5fd['query'][_0x8df2('0x42')]('nolimit')){_0x54b8a8[_0x8df2('0x2d')]=qs['limit'](_0xa8e5fd[_0x8df2('0x3c')]['limit']);_0x54b8a8[_0x8df2('0x2b')]=qs[_0x8df2('0x2b')](_0xa8e5fd[_0x8df2('0x3c')][_0x8df2('0x2b')]);}_0x54b8a8[_0x8df2('0x44')]=qs[_0x8df2('0x45')](_0xa8e5fd['query'][_0x8df2('0x45')]);_0x54b8a8[_0x8df2('0x46')]=qs[_0x8df2('0x47')](_[_0x8df2('0x48')](_0xa8e5fd['query'],_0x276c00[_0x8df2('0x47')]));_0x54b8a8[_0x8df2('0x46')][_0x8df2('0x61')]=_0x1cbed3['id'];if(_0xa8e5fd[_0x8df2('0x3c')][_0x8df2('0x4b')]){_0x54b8a8[_0x8df2('0x46')]=_[_0x8df2('0x49')](_0x54b8a8['where'],{'$or':_[_0x8df2('0x37')](_0x54b8a8[_0x8df2('0x41')],function(_0x3e0c05){var _0x5003b2={};_0x5003b2[_0x3e0c05]={'$like':'%'+_0xa8e5fd[_0x8df2('0x3c')][_0x8df2('0x4b')]+'%'};return _0x5003b2;})});}_0x54b8a8=_[_0x8df2('0x49')]({},_0x54b8a8,_0xa8e5fd[_0x8df2('0x4c')]);return db[_0x8df2('0x62')][_0x8df2('0x4e')](_0x54b8a8);}})[_0x8df2('0x1e')](function(_0x4eb6e0){if(_0x4eb6e0){return db[_0x8df2('0x63')][_0x8df2('0x64')]({'where':{'id':_[_0x8df2('0x37')](_0x4eb6e0,_0x8df2('0x65')),'role':'agent'},'attributes':['id',_0x8df2('0x34'),_0x8df2('0x66'),_0x8df2('0x67'),'createdAt']});}})[_0x8df2('0x1e')](function(_0x21df53){if(_0x21df53){return{'count':_0x21df53[_0x8df2('0x2e')],'rows':_['map'](_0x21df53['rows'],function(_0x36e297){return{'membername':_0x36e297[_0x8df2('0x34')],'UserId':_0x36e297['id'],'queue_name':_0x202ed4[_0x8df2('0x34')],'ChatQueueId':_0x202ed4['id'],'interface':util[_0x8df2('0x68')]('%s/%s',_0x8df2('0x69'),_0x36e297[_0x8df2('0x34')]),'penalty':0x0,'paused':_0x36e297[_0x8df2('0x66')],'createdAt':_0x36e297[_0x8df2('0x6a')],'updatedAt':_0x36e297[_0x8df2('0x67')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x8df2('0x1e')](respondWithFilteredResult(_0x29ac3f,_0x54b8a8))[_0x8df2('0x50')](handleError(_0x29ac3f,null));};exports['getTeams']=function(_0x5386b2,_0x25ab97,_0xfa446a){var _0x521340={};var _0xb63ed5={};var _0x23e068;var _0x5209e6;return db[_0x8df2('0x38')]['findOne']({'where':{'id':_0x5386b2[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x25ab97,null))['then'](function(_0x557eb8){if(_0x557eb8){_0x23e068=_0x557eb8;_0xb63ed5['model']=_[_0x8df2('0x3d')](db[_0x8df2('0x6b')][_0x8df2('0x39')]);_0xb63ed5['query']=_[_0x8df2('0x3d')](_0x5386b2['query']);_0xb63ed5['filters']=_[_0x8df2('0x3e')](_0xb63ed5[_0x8df2('0x3f')],_0xb63ed5[_0x8df2('0x3c')]);_0x521340[_0x8df2('0x41')]=_[_0x8df2('0x3e')](_0xb63ed5[_0x8df2('0x3f')],qs['fields'](_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x40')]));_0x521340[_0x8df2('0x41')]=_0x521340[_0x8df2('0x41')][_0x8df2('0x53')]?_0x521340[_0x8df2('0x41')]:_0xb63ed5[_0x8df2('0x3f')];_0x521340[_0x8df2('0x44')]=qs[_0x8df2('0x45')](_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x45')]);_0x521340[_0x8df2('0x46')]=qs[_0x8df2('0x47')](_['pick'](_0x5386b2[_0x8df2('0x3c')],_0xb63ed5['filters']));if(_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x4b')]){_0x521340['where']=_['merge'](_0x521340['where'],{'$or':_[_0x8df2('0x37')](_0x521340['attributes'],function(_0x18759b){var _0x3f51ca={};_0x3f51ca[_0x18759b]={'$like':'%'+_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x4b')]+'%'};return _0x3f51ca;})});}_0x521340=_['merge']({},_0x521340,_0x5386b2['options']);return _0x23e068[_0x8df2('0x6c')](_0x521340);}})['then'](function(_0x4cc8bf){if(_0x4cc8bf){_0x5209e6=_0x4cc8bf['length'];if(!_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x42')](_0x8df2('0x43'))){_0x521340[_0x8df2('0x2d')]=qs[_0x8df2('0x2d')](_0x5386b2[_0x8df2('0x3c')]['limit']);_0x521340[_0x8df2('0x2b')]=qs[_0x8df2('0x2b')](_0x5386b2[_0x8df2('0x3c')][_0x8df2('0x2b')]);}return _0x23e068[_0x8df2('0x6c')](_0x521340);}})['then'](function(_0xdc6cdd){if(_0xdc6cdd){return _0xdc6cdd?{'count':_0x5209e6,'rows':_0xdc6cdd}:null;}})[_0x8df2('0x1e')](respondWithResult(_0x25ab97,null))[_0x8df2('0x50')](handleError(_0x25ab97,null));};exports['addTeams']=function(_0x534585,_0x34e85b,_0x4986f4){var _0x125a16=_0x534585[_0x8df2('0x56')]['ids'];return db[_0x8df2('0x6b')][_0x8df2('0x4e')]({'where':{'id':_0x125a16},'attributes':['id'],'include':[{'model':db[_0x8df2('0x63')],'as':_0x8df2('0x6d'),'attributes':['id',_0x8df2('0x34'),_0x8df2('0x6e'),_0x8df2('0x6f'),'interface'],'raw':!![]}]})[_0x8df2('0x1e')](function(_0x8f903e){if(_0x8f903e){var _0x293259=_[_0x8df2('0x70')](_0x8f903e,function(_0x2c2a55){var _0x36cf3a=_0x2c2a55[_0x8df2('0x60')]({'plain':!![]});return _0x36cf3a[_0x8df2('0x6d')];});return db['ChatQueue'][_0x8df2('0x54')]({'where':{'id':_0x534585['params']['id']}})[_0x8df2('0x1e')](function(_0x18aea6){return db['sequelize'][_0x8df2('0x71')](function(_0x46b5b3){return _0x18aea6['addTeams'](_0x125a16,{'transaction':_0x46b5b3})['then'](function(){return BPromise[_0x8df2('0x72')](_0x293259,function(_0x4fd0be){return db[_0x8df2('0x62')]['findOrCreate']({'where':{'UserId':_0x4fd0be['id'],'ChatQueueId':_0x534585[_0x8df2('0x52')]['id']},'transaction':_0x46b5b3});});})[_0x8df2('0x1e')](function(){_0x293259[_0x8df2('0x73')](function(_0x572d65){socket['emit']('userChatQueue:save',{'UserId':_0x572d65['id'],'ChatQueueId':_0x18aea6['id']});});});});});}})['then'](respondWithStatusCode(_0x34e85b,null))['catch'](handleError(_0x34e85b,null));};exports['removeTeams']=function(_0x15534f,_0x48c429,_0x5029d9){return db['Team'][_0x8df2('0x4e')]({'where':{'id':_0x15534f[_0x8df2('0x3c')][_0x8df2('0x74')]},'attributes':['id'],'include':[{'model':db[_0x8df2('0x63')],'as':_0x8df2('0x6d'),'attributes':['id'],'raw':!![]}]})[_0x8df2('0x1e')](handleEntityNotFound(_0x48c429,null))[_0x8df2('0x1e')](function(_0x2a261d){var _0xcdd1a3=_[_0x8df2('0x37')](_0x2a261d,'id');var _0x1422b9=[];var _0x23fd80=[];var _0x432e94=squel['select']();_0x432e94[_0x8df2('0x75')](_0x8df2('0x76'))[_0x8df2('0x77')](_0x8df2('0x78'),'tq')[_0x8df2('0x79')](_0x8df2('0x7a'),'ut',_0x8df2('0x7b'))[_0x8df2('0x46')](_0x8df2('0x7c'),_0x15534f[_0x8df2('0x52')]['id']);for(var _0x9f8849=0x0;_0x9f8849<_0x2a261d['length'];_0x9f8849+=0x1){let _0x9e1305=_0x2a261d[_0x9f8849];for(var _0x1c3810=0x0;_0x1c3810<_0x9e1305[_0x8df2('0x6d')][_0x8df2('0x53')];_0x1c3810+=0x1){let _0x2d2a6c=_0x9e1305[_0x8df2('0x6d')][_0x1c3810];var _0x56cb43=_0x432e94['clone']();_0x56cb43[_0x8df2('0x46')](_0x8df2('0x7d'),_0x2d2a6c['id']);_0x23fd80[_0x8df2('0x7e')](db[_0x8df2('0x7f')][_0x8df2('0x3c')](_0x56cb43[_0x8df2('0x80')](),{'type':db['sequelize']['QueryTypes'][_0x8df2('0x81')]})[_0x8df2('0x1e')](function(_0x3c29b5){if(_0x3c29b5['length']===0x1){return _0x2d2a6c['id'];}else{var _0x54bad5=_['every'](_['map'](_0x3c29b5,'TeamId'),function(_0x504d42){return _['includes'](_0xcdd1a3,_0x504d42);});if(_0x54bad5){return _0x2d2a6c['id'];}}}));}}return BPromise[_0x8df2('0x82')](_0x23fd80)[_0x8df2('0x1e')](function(_0x298ff1){_0x1422b9=_(_0x1422b9)[_0x8df2('0x83')](_0x298ff1)[_0x8df2('0x84')]()[_0x8df2('0x85')]();return db[_0x8df2('0x38')][_0x8df2('0x54')]({'where':{'id':_0x15534f[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](function(_0x468c5a){return db['sequelize']['transaction'](function(_0x19f03f){return _0x468c5a['removeTeams'](_0x15534f[_0x8df2('0x3c')][_0x8df2('0x74')],{'transaction':_0x19f03f})[_0x8df2('0x1e')](function(){if(!_['isEmpty'](_0x1422b9)){return _0x468c5a[_0x8df2('0x86')](_0x1422b9,{'transaction':_0x19f03f});}})[_0x8df2('0x1e')](function(){_0x1422b9[_0x8df2('0x73')](function(_0x212146){socket['emit'](_0x8df2('0x87'),{'UserId':_0x212146,'ChatQueueId':_0x468c5a['id']});});});});});});})[_0x8df2('0x1e')](respondWithStatusCode(_0x48c429,null))['catch'](handleError(_0x48c429,null));};exports[_0x8df2('0x88')]=function(_0xee637f,_0x1d9ac7,_0x3da538){return db[_0x8df2('0x38')][_0x8df2('0x54')]({'where':{'id':_0xee637f[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x1d9ac7,null))[_0x8df2('0x1e')](function(_0x3c2f82){if(_0x3c2f82){return _0x3c2f82[_0x8df2('0x88')](_0xee637f['body']['ids'],_[_0x8df2('0x89')](_0xee637f[_0x8df2('0x56')],['ids','id'])||{})[_0x8df2('0x8a')](function(_0x507711){for(var _0x1fd23f=0x0;_0x1fd23f<_0xee637f[_0x8df2('0x56')][_0x8df2('0x74')][_0x8df2('0x53')];_0x1fd23f+=0x1){socket[_0x8df2('0x8b')](_0x8df2('0x8c'),{'UserId':Number(_0xee637f[_0x8df2('0x56')][_0x8df2('0x74')][_0x1fd23f]),'ChatQueueId':Number(_0xee637f[_0x8df2('0x52')]['id'])});}return _0x507711;});}})['then'](respondWithResult(_0x1d9ac7,null))[_0x8df2('0x50')](handleError(_0x1d9ac7,null));};exports[_0x8df2('0x86')]=function(_0x2de239,_0x4bc721,_0x36087d){return db[_0x8df2('0x38')]['find']({'where':{'id':_0x2de239[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x4bc721,null))['then'](function(_0x368388){if(_0x368388){return _0x368388[_0x8df2('0x86')](_0x2de239[_0x8df2('0x3c')][_0x8df2('0x74')])['then'](function(){if(_[_0x8df2('0x8d')](_0x2de239[_0x8df2('0x3c')][_0x8df2('0x74')])){for(var _0x3adf7f=0x0;_0x3adf7f<_0x2de239[_0x8df2('0x3c')][_0x8df2('0x74')][_0x8df2('0x53')];_0x3adf7f+=0x1){socket[_0x8df2('0x8b')](_0x8df2('0x87'),{'UserId':Number(_0x2de239[_0x8df2('0x3c')]['ids'][_0x3adf7f]),'ChatQueueId':Number(_0x2de239[_0x8df2('0x52')]['id'])});}}else{socket[_0x8df2('0x8b')](_0x8df2('0x87'),{'UserId':Number(_0x2de239[_0x8df2('0x3c')][_0x8df2('0x74')]),'ChatQueueId':Number(_0x2de239[_0x8df2('0x52')]['id'])});}});}})[_0x8df2('0x1e')](respondWithStatusCode(_0x4bc721,null))[_0x8df2('0x50')](handleError(_0x4bc721,null));};exports[_0x8df2('0x8e')]=function(_0x1d9265,_0x4b63e7,_0x48fa98){var _0x21ea6d={};var _0x438d87={};var _0x9c26fa;var _0x293ce6;return db[_0x8df2('0x38')]['findOne']({'where':{'id':_0x1d9265[_0x8df2('0x52')]['id']}})[_0x8df2('0x1e')](handleEntityNotFound(_0x4b63e7,null))['then'](function(_0x4fc369){if(_0x4fc369){_0x9c26fa=_0x4fc369;_0x438d87[_0x8df2('0x3f')]=_[_0x8df2('0x3d')](db[_0x8df2('0x63')][_0x8df2('0x39')]);_0x438d87[_0x8df2('0x3c')]=_['keys'](_0x1d9265[_0x8df2('0x3c')]);_0x438d87['filters']=_[_0x8df2('0x3e')](_0x438d87['model'],_0x438d87[_0x8df2('0x3c')]);_0x21ea6d[_0x8df2('0x41')]=_[_0x8df2('0x3e')](_0x438d87['model'],qs['fields'](_0x1d9265[_0x8df2('0x3c')][_0x8df2('0x40')]));_0x21ea6d[_0x8df2('0x41')]=_0x21ea6d['attributes']['length']?_0x21ea6d['attributes']:_0x438d87[_0x8df2('0x3f')];_0x21ea6d[_0x8df2('0x44')]=qs[_0x8df2('0x45')](_0x1d9265['query']['sort']);_0x21ea6d[_0x8df2('0x46')]=qs['filters'](_[_0x8df2('0x48')](_0x1d9265[_0x8df2('0x3c')],_0x438d87[_0x8df2('0x47')]));if(_0x1d9265[_0x8df2('0x3c')][_0x8df2('0x4b')]){_0x21ea6d['where']=_[_0x8df2('0x49')](_0x21ea6d[_0x8df2('0x46')],{'$or':_['map'](_0x21ea6d[_0x8df2('0x41')],function(_0xf36da8){var _0x38d1d9={};_0x38d1d9[_0xf36da8]={'$like':'%'+_0x1d9265[_0x8df2('0x3c')][_0x8df2('0x4b')]+'%'};return _0x38d1d9;})});}_0x21ea6d=_[_0x8df2('0x49')]({},_0x21ea6d,_0x1d9265[_0x8df2('0x4c')]);return _0x9c26fa['getAgents'](_0x21ea6d);}})['then'](function(_0x33a880){if(_0x33a880){_0x293ce6=_0x33a880[_0x8df2('0x53')];if(!_0x1d9265[_0x8df2('0x3c')][_0x8df2('0x42')](_0x8df2('0x43'))){_0x21ea6d[_0x8df2('0x2d')]=qs[_0x8df2('0x2d')](_0x1d9265['query'][_0x8df2('0x2d')]);_0x21ea6d[_0x8df2('0x2b')]=qs[_0x8df2('0x2b')](_0x1d9265[_0x8df2('0x3c')][_0x8df2('0x2b')]);}return _0x9c26fa[_0x8df2('0x8e')](_0x21ea6d);}})[_0x8df2('0x1e')](function(_0x316ce1){if(_0x316ce1){return _0x316ce1?{'count':_0x293ce6,'rows':_0x316ce1}:null;}})[_0x8df2('0x1e')](respondWithResult(_0x4b63e7,null))[_0x8df2('0x50')](handleError(_0x4b63e7,null));};