3b256731a52b5db48ff68bef495fbae278942a2d
[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 _0x0023=['ChatQueues','UserProfileResource','name','index','map','ChatQueue','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','nolimit','sort','pick','filter','where','merge','VIRTUAL','findAll','rows','params','keys','rawAttributes','includeAll','include','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','order','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','%s/%s','SIP','getTeams','addTeams','ids','Team','Agents','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','SELECT','every','TeamId','includes','all','union','value','isEmpty','removeAgents','userChatQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','request','info','ChatQueue,\x20%s,\x20%s','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','status','end','offset','undefined','limit','count','json','apply','save','update','destroy','then'];(function(_0x3ba924,_0x3b99f0){var _0x4cc1df=function(_0x15bf28){while(--_0x15bf28){_0x3ba924['push'](_0x3ba924['shift']());}};_0x4cc1df(++_0x3b99f0);}(_0x0023,0x102));var _0x3002=function(_0x5dbaa7,_0x1f6d4a){_0x5dbaa7=_0x5dbaa7-0x0;var _0x481319=_0x0023[_0x5dbaa7];return _0x481319;};'use strict';var emlformat=require(_0x3002('0x0'));var rimraf=require(_0x3002('0x1'));var zipdir=require(_0x3002('0x2'));var jsonpatch=require(_0x3002('0x3'));var rp=require(_0x3002('0x4'));var moment=require(_0x3002('0x5'));var BPromise=require(_0x3002('0x6'));var Mustache=require(_0x3002('0x7'));var util=require(_0x3002('0x8'));var path=require(_0x3002('0x9'));var sox=require(_0x3002('0xa'));var csv=require(_0x3002('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3002('0xc'));var _=require('lodash');var squel=require(_0x3002('0xd'));var crypto=require(_0x3002('0xe'));var jsforce=require(_0x3002('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x3002('0xb'));var querystring=require(_0x3002('0x10'));var Papa=require(_0x3002('0x11'));var Redis=require(_0x3002('0x12'));var authService=require(_0x3002('0x13'));var qs=require(_0x3002('0x14'));var as=require(_0x3002('0x15'));var hardwareService=require(_0x3002('0x16'));var logger=require(_0x3002('0x17'))(_0x3002('0x18'));var utils=require(_0x3002('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x3002('0x1a'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x3002('0x1b')](config[_0x3002('0x1c')],{'host':_0x3002('0x1d'),'port':0x18eb});var socket=require(_0x3002('0x1e'))(new Redis(config[_0x3002('0x1c')]));require(_0x3002('0x1f'))[_0x3002('0x20')](socket);var jayson=require(_0x3002('0x21'));var client=jayson[_0x3002('0x22')][_0x3002('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x51ebc7,_0x152ea3,_0x4062c5,_0x3de980){return new BPromise(function(_0x2e8013,_0x1e8def){var _0x142774=_0x3de980||client;return _0x142774[_0x3002('0x24')](_0x51ebc7,_0x4062c5)['then'](function(_0x45e840){logger[_0x3002('0x25')](_0x3002('0x26'),_0x152ea3,'request\x20sent');logger[_0x3002('0x27')](_0x3002('0x28'),_0x152ea3,_0x3002('0x29'),JSON[_0x3002('0x2a')](_0x45e840));if(_0x45e840[_0x3002('0x2b')]){if(_0x45e840[_0x3002('0x2b')][_0x3002('0x2c')]===0x1f4){logger[_0x3002('0x2b')](_0x3002('0x26'),_0x152ea3,_0x45e840[_0x3002('0x2b')]['message']);return _0x1e8def(_0x45e840['error']['message']);}logger[_0x3002('0x2b')](_0x3002('0x26'),_0x152ea3,_0x45e840[_0x3002('0x2b')][_0x3002('0x2d')]);return _0x2e8013(_0x45e840[_0x3002('0x2b')]['message']);}else{logger[_0x3002('0x25')](_0x3002('0x26'),_0x152ea3,_0x3002('0x29'));_0x2e8013(_0x45e840['result']['message']);}})[_0x3002('0x2e')](function(_0x1e359c){logger[_0x3002('0x2b')](_0x3002('0x26'),_0x152ea3,_0x1e359c);_0x1e8def(_0x1e359c);});});}function respondWithStatusCode(_0x273768,_0x288753){_0x288753=_0x288753||0xcc;return function(_0xc40527){if(_0xc40527){return _0x273768[_0x3002('0x2f')](_0x288753);}return _0x273768[_0x3002('0x30')](_0x288753)[_0x3002('0x31')]();};}function respondWithResult(_0x4d78e8,_0x3ca080){_0x3ca080=_0x3ca080||0xc8;return function(_0x1f6075){if(_0x1f6075){return _0x4d78e8[_0x3002('0x30')](_0x3ca080)['json'](_0x1f6075);}};}function respondWithFilteredResult(_0x2cf14d,_0x4c656c){return function(_0x3d18f1){if(_0x3d18f1){var _0x98f40b=typeof _0x4c656c[_0x3002('0x32')]===_0x3002('0x33')&&typeof _0x4c656c[_0x3002('0x34')]===_0x3002('0x33');var _0x372625=_0x3d18f1['count'];var _0x3e48c3=_0x98f40b?0x0:_0x4c656c[_0x3002('0x32')];var _0x2efe25=_0x98f40b?_0x3d18f1[_0x3002('0x35')]:_0x4c656c[_0x3002('0x32')]+_0x4c656c['limit'];var _0x157279;if(_0x2efe25>=_0x372625){_0x2efe25=_0x372625;_0x157279=0xc8;}else{_0x157279=0xce;}_0x2cf14d[_0x3002('0x30')](_0x157279);return _0x2cf14d['set']('Content-Range',_0x3e48c3+'-'+_0x2efe25+'/'+_0x372625)[_0x3002('0x36')](_0x3d18f1);}return null;};}function patchUpdates(_0x3a28a7){return function(_0x11281e){try{jsonpatch[_0x3002('0x37')](_0x11281e,_0x3a28a7,!![]);}catch(_0x4e4257){return BPromise['reject'](_0x4e4257);}return _0x11281e[_0x3002('0x38')]();};}function saveUpdates(_0x390bf4,_0x4ece5d){return function(_0x5c325f){if(_0x5c325f){return _0x5c325f[_0x3002('0x39')](_0x390bf4)['then'](function(_0x2a1260){return _0x2a1260;});}return null;};}function removeEntity(_0x15c68a,_0x57cfed){return function(_0x454737){if(_0x454737){return _0x454737[_0x3002('0x3a')]()[_0x3002('0x3b')](function(){var _0x4e8bd0=_0x454737['get']({'plain':!![]});var _0x3a140f=_0x3002('0x3c');return db[_0x3002('0x3d')][_0x3002('0x3a')]({'where':{'type':_0x3a140f,'resourceId':_0x4e8bd0['id']}})[_0x3002('0x3b')](function(){return _0x454737;});})['then'](function(){_0x15c68a[_0x3002('0x30')](0xcc)[_0x3002('0x31')]();});}};}function handleEntityNotFound(_0x7a5694,_0x4de614){return function(_0x51decd){if(!_0x51decd){_0x7a5694[_0x3002('0x2f')](0x194);}return _0x51decd;};}function handleError(_0x3e1df8,_0x142cb2){_0x142cb2=_0x142cb2||0x1f4;return function(_0x500590){logger[_0x3002('0x2b')](_0x500590['stack']);if(_0x500590[_0x3002('0x3e')]){delete _0x500590[_0x3002('0x3e')];}_0x3e1df8['status'](_0x142cb2)['send'](_0x500590);};}exports[_0x3002('0x3f')]=function(_0x2015c6,_0x8f1ce1){var _0x57fc3d={},_0x948e47={},_0x1aaba0={'count':0x0,'rows':[]};var _0x3299a1=_[_0x3002('0x40')](db[_0x3002('0x41')]['rawAttributes'],function(_0x455b1e){return{'name':_0x455b1e[_0x3002('0x42')],'type':_0x455b1e[_0x3002('0x43')][_0x3002('0x44')]};});_0x948e47[_0x3002('0x45')]=_[_0x3002('0x40')](_0x3299a1,_0x3002('0x3e'));_0x948e47['query']=_['keys'](_0x2015c6[_0x3002('0x46')]);_0x948e47[_0x3002('0x47')]=_[_0x3002('0x48')](_0x948e47[_0x3002('0x45')],_0x948e47[_0x3002('0x46')]);_0x57fc3d['attributes']=_[_0x3002('0x48')](_0x948e47['model'],qs['fields'](_0x2015c6[_0x3002('0x46')][_0x3002('0x49')]));_0x57fc3d['attributes']=_0x57fc3d[_0x3002('0x4a')][_0x3002('0x4b')]?_0x57fc3d[_0x3002('0x4a')]:_0x948e47[_0x3002('0x45')];if(!_0x2015c6['query']['hasOwnProperty'](_0x3002('0x4c'))){_0x57fc3d['limit']=qs[_0x3002('0x34')](_0x2015c6['query'][_0x3002('0x34')]);_0x57fc3d[_0x3002('0x32')]=qs[_0x3002('0x32')](_0x2015c6[_0x3002('0x46')][_0x3002('0x32')]);}_0x57fc3d['order']=qs[_0x3002('0x4d')](_0x2015c6[_0x3002('0x46')][_0x3002('0x4d')]);_0x57fc3d['where']=qs[_0x3002('0x47')](_[_0x3002('0x4e')](_0x2015c6[_0x3002('0x46')],_0x948e47['filters']),_0x3299a1);if(_0x2015c6[_0x3002('0x46')][_0x3002('0x4f')]){_0x57fc3d[_0x3002('0x50')]=_[_0x3002('0x51')](_0x57fc3d[_0x3002('0x50')],{'$or':_[_0x3002('0x40')](_0x3299a1,function(_0x2677f9){if(_0x2677f9[_0x3002('0x43')]!==_0x3002('0x52')){var _0x4b3307={};_0x4b3307[_0x2677f9[_0x3002('0x3e')]]={'$like':'%'+_0x2015c6[_0x3002('0x46')][_0x3002('0x4f')]+'%'};return _0x4b3307;}})});}_0x57fc3d=_[_0x3002('0x51')]({},_0x57fc3d,_0x2015c6['options']);var _0x4add60={'where':_0x57fc3d[_0x3002('0x50')]};return db[_0x3002('0x41')][_0x3002('0x35')](_0x4add60)[_0x3002('0x3b')](function(_0x257899){_0x1aaba0[_0x3002('0x35')]=_0x257899;if(_0x2015c6[_0x3002('0x46')]['includeAll']){_0x57fc3d['include']=[{'all':!![]}];}return db[_0x3002('0x41')][_0x3002('0x53')](_0x57fc3d);})[_0x3002('0x3b')](function(_0x1edc43){_0x1aaba0[_0x3002('0x54')]=_0x1edc43;return _0x1aaba0;})[_0x3002('0x3b')](respondWithFilteredResult(_0x8f1ce1,_0x57fc3d))[_0x3002('0x2e')](handleError(_0x8f1ce1,null));};exports['show']=function(_0x324c47,_0xe58be0){var _0x2911a3={'raw':!![],'where':{'id':_0x324c47[_0x3002('0x55')]['id']}},_0x5d5106={};_0x5d5106['model']=_[_0x3002('0x56')](db[_0x3002('0x41')][_0x3002('0x57')]);_0x5d5106[_0x3002('0x46')]=_[_0x3002('0x56')](_0x324c47['query']);_0x5d5106['filters']=_[_0x3002('0x48')](_0x5d5106['model'],_0x5d5106[_0x3002('0x46')]);_0x2911a3[_0x3002('0x4a')]=_[_0x3002('0x48')](_0x5d5106[_0x3002('0x45')],qs[_0x3002('0x49')](_0x324c47[_0x3002('0x46')]['fields']));_0x2911a3['attributes']=_0x2911a3['attributes'][_0x3002('0x4b')]?_0x2911a3['attributes']:_0x5d5106[_0x3002('0x45')];if(_0x324c47[_0x3002('0x46')][_0x3002('0x58')]){_0x2911a3[_0x3002('0x59')]=[{'all':!![]}];}_0x2911a3=_[_0x3002('0x51')]({},_0x2911a3,_0x324c47[_0x3002('0x5a')]);return db['ChatQueue'][_0x3002('0x5b')](_0x2911a3)[_0x3002('0x3b')](handleEntityNotFound(_0xe58be0,null))[_0x3002('0x3b')](respondWithResult(_0xe58be0,null))[_0x3002('0x2e')](handleError(_0xe58be0,null));};exports[_0x3002('0x5c')]=function(_0xf9e909,_0x5260da){return db['ChatQueue']['create'](_0xf9e909[_0x3002('0x5d')],{})[_0x3002('0x3b')](function(_0x154e1f){var _0x2391e2=_0xf9e909[_0x3002('0x5e')][_0x3002('0x5f')]({'plain':!![]});if(!_0x2391e2)throw new Error(_0x3002('0x60'));if(_0x2391e2[_0x3002('0x61')]===_0x3002('0x5e')){var _0x24b23b=_0x154e1f[_0x3002('0x5f')]({'plain':!![]});var _0x4b9916=_0x3002('0x3c');return db[_0x3002('0x62')][_0x3002('0x5b')]({'where':{'name':_0x4b9916,'userProfileId':_0x2391e2[_0x3002('0x63')]},'raw':!![]})['then'](function(_0xedb879){if(_0xedb879&&_0xedb879['autoAssociation']===0x0){return db[_0x3002('0x3d')][_0x3002('0x5c')]({'name':_0x24b23b['name'],'resourceId':_0x24b23b['id'],'type':_0xedb879[_0x3002('0x3e')],'sectionId':_0xedb879['id']},{})[_0x3002('0x3b')](function(){return _0x154e1f;});}else{return _0x154e1f;}})[_0x3002('0x2e')](function(_0x5d27a8){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5d27a8);throw _0x5d27a8;});}return _0x154e1f;})[_0x3002('0x3b')](respondWithResult(_0x5260da,0xc9))['catch'](handleError(_0x5260da,null));};exports['update']=function(_0x557e38,_0x147801){if(_0x557e38['body']['id']){delete _0x557e38[_0x3002('0x5d')]['id'];}return db[_0x3002('0x41')][_0x3002('0x5b')]({'where':{'id':_0x557e38[_0x3002('0x55')]['id']}})[_0x3002('0x3b')](handleEntityNotFound(_0x147801,null))['then'](saveUpdates(_0x557e38[_0x3002('0x5d')],null))[_0x3002('0x3b')](respondWithResult(_0x147801,null))[_0x3002('0x2e')](handleError(_0x147801,null));};exports[_0x3002('0x3a')]=function(_0x37ff46,_0xffdcd4){return db[_0x3002('0x41')][_0x3002('0x5b')]({'where':{'id':_0x37ff46[_0x3002('0x55')]['id']}})[_0x3002('0x3b')](handleEntityNotFound(_0xffdcd4,null))[_0x3002('0x3b')](removeEntity(_0xffdcd4,null))[_0x3002('0x2e')](handleError(_0xffdcd4,null));};exports[_0x3002('0x64')]=function(_0x2c5f73,_0x52847c){return db[_0x3002('0x41')][_0x3002('0x64')]()[_0x3002('0x3b')](respondWithResult(_0x52847c,null))[_0x3002('0x2e')](handleError(_0x52847c,null));};exports[_0x3002('0x65')]=function(_0x432de9,_0x3c6364,_0x3d8365){var _0x21e240={'raw':!![],'where':{}},_0x36796e={},_0x1f09d8;return db[_0x3002('0x41')][_0x3002('0x66')]({'where':{'id':_0x432de9['params']['id']}})['then'](handleEntityNotFound(_0x3c6364,null))['then'](function(_0x130726){if(_0x130726){_0x1f09d8=_0x130726[_0x3002('0x5f')]({'plain':!![]});_0x36796e[_0x3002('0x45')]=_[_0x3002('0x56')](db[_0x3002('0x67')][_0x3002('0x57')]);_0x36796e[_0x3002('0x46')]=_[_0x3002('0x56')](_0x432de9[_0x3002('0x46')]);_0x36796e[_0x3002('0x47')]=_[_0x3002('0x48')](_0x36796e['model'],_0x36796e[_0x3002('0x46')]);_0x21e240[_0x3002('0x4a')]=_[_0x3002('0x48')](_0x36796e[_0x3002('0x45')],qs['fields'](_0x432de9[_0x3002('0x46')]['fields']));_0x21e240[_0x3002('0x4a')]=_0x21e240[_0x3002('0x4a')]['length']?_0x21e240[_0x3002('0x4a')]:_0x36796e['model'];if(!_0x432de9['query'][_0x3002('0x68')](_0x3002('0x4c'))){_0x21e240[_0x3002('0x34')]=qs[_0x3002('0x34')](_0x432de9[_0x3002('0x46')][_0x3002('0x34')]);_0x21e240['offset']=qs['offset'](_0x432de9['query']['offset']);}_0x21e240[_0x3002('0x69')]=qs[_0x3002('0x4d')](_0x432de9[_0x3002('0x46')][_0x3002('0x4d')]);_0x21e240[_0x3002('0x50')]=qs[_0x3002('0x47')](_[_0x3002('0x4e')](_0x432de9['query'],_0x36796e[_0x3002('0x47')]));_0x21e240[_0x3002('0x50')][_0x3002('0x6a')]=_0x130726['id'];if(_0x432de9[_0x3002('0x46')][_0x3002('0x4f')]){_0x21e240[_0x3002('0x50')]=_[_0x3002('0x51')](_0x21e240[_0x3002('0x50')],{'$or':_[_0x3002('0x40')](_0x21e240[_0x3002('0x4a')],function(_0x346cb4){var _0x14c501={};_0x14c501[_0x346cb4]={'$like':'%'+_0x432de9[_0x3002('0x46')][_0x3002('0x4f')]+'%'};return _0x14c501;})});}_0x21e240=_[_0x3002('0x51')]({},_0x21e240,_0x432de9[_0x3002('0x5a')]);return db['UserChatQueue'][_0x3002('0x53')](_0x21e240);}})['then'](function(_0x12bf31){if(_0x12bf31){return db[_0x3002('0x6b')][_0x3002('0x6c')]({'where':{'id':_[_0x3002('0x40')](_0x12bf31,_0x3002('0x6d')),'role':_0x3002('0x6e')},'attributes':['id',_0x3002('0x3e'),_0x3002('0x6f'),_0x3002('0x70'),_0x3002('0x71')]});}})[_0x3002('0x3b')](function(_0xf38b69){if(_0xf38b69){return{'count':_0xf38b69[_0x3002('0x35')],'rows':_[_0x3002('0x40')](_0xf38b69[_0x3002('0x54')],function(_0x4fafd7){return{'membername':_0x4fafd7['name'],'UserId':_0x4fafd7['id'],'queue_name':_0x1f09d8['name'],'ChatQueueId':_0x1f09d8['id'],'interface':util['format'](_0x3002('0x72'),_0x3002('0x73'),_0x4fafd7[_0x3002('0x3e')]),'penalty':0x0,'paused':_0x4fafd7[_0x3002('0x6f')],'createdAt':_0x4fafd7[_0x3002('0x71')],'updatedAt':_0x4fafd7[_0x3002('0x70')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x3002('0x3b')](respondWithFilteredResult(_0x3c6364,_0x21e240))[_0x3002('0x2e')](handleError(_0x3c6364,null));};exports[_0x3002('0x74')]=function(_0x6ca777,_0x3244fa,_0x2988ad){var _0x2d7d2={};var _0x320b8d={};var _0x300cbf;var _0x3588c9;return db[_0x3002('0x41')][_0x3002('0x66')]({'where':{'id':_0x6ca777[_0x3002('0x55')]['id']}})['then'](handleEntityNotFound(_0x3244fa,null))[_0x3002('0x3b')](function(_0x304015){if(_0x304015){_0x300cbf=_0x304015;_0x320b8d[_0x3002('0x45')]=_['keys'](db['Team'][_0x3002('0x57')]);_0x320b8d['query']=_['keys'](_0x6ca777[_0x3002('0x46')]);_0x320b8d[_0x3002('0x47')]=_['intersection'](_0x320b8d[_0x3002('0x45')],_0x320b8d['query']);_0x2d7d2['attributes']=_[_0x3002('0x48')](_0x320b8d[_0x3002('0x45')],qs[_0x3002('0x49')](_0x6ca777[_0x3002('0x46')][_0x3002('0x49')]));_0x2d7d2[_0x3002('0x4a')]=_0x2d7d2['attributes'][_0x3002('0x4b')]?_0x2d7d2[_0x3002('0x4a')]:_0x320b8d['model'];_0x2d7d2[_0x3002('0x69')]=qs[_0x3002('0x4d')](_0x6ca777[_0x3002('0x46')][_0x3002('0x4d')]);_0x2d7d2['where']=qs[_0x3002('0x47')](_[_0x3002('0x4e')](_0x6ca777[_0x3002('0x46')],_0x320b8d[_0x3002('0x47')]));if(_0x6ca777[_0x3002('0x46')][_0x3002('0x4f')]){_0x2d7d2[_0x3002('0x50')]=_['merge'](_0x2d7d2[_0x3002('0x50')],{'$or':_[_0x3002('0x40')](_0x2d7d2[_0x3002('0x4a')],function(_0x1ddd56){var _0x19d21d={};_0x19d21d[_0x1ddd56]={'$like':'%'+_0x6ca777['query'][_0x3002('0x4f')]+'%'};return _0x19d21d;})});}_0x2d7d2=_['merge']({},_0x2d7d2,_0x6ca777[_0x3002('0x5a')]);return _0x300cbf[_0x3002('0x74')](_0x2d7d2);}})[_0x3002('0x3b')](function(_0x455f61){if(_0x455f61){_0x3588c9=_0x455f61[_0x3002('0x4b')];if(!_0x6ca777['query'][_0x3002('0x68')]('nolimit')){_0x2d7d2[_0x3002('0x34')]=qs[_0x3002('0x34')](_0x6ca777['query'][_0x3002('0x34')]);_0x2d7d2['offset']=qs[_0x3002('0x32')](_0x6ca777[_0x3002('0x46')][_0x3002('0x32')]);}return _0x300cbf[_0x3002('0x74')](_0x2d7d2);}})['then'](function(_0xb34c22){if(_0xb34c22){return _0xb34c22?{'count':_0x3588c9,'rows':_0xb34c22}:null;}})[_0x3002('0x3b')](respondWithResult(_0x3244fa,null))[_0x3002('0x2e')](handleError(_0x3244fa,null));};exports[_0x3002('0x75')]=function(_0x6eba4d,_0x2aa036,_0x55d64e){var _0x163910=_0x6eba4d[_0x3002('0x5d')][_0x3002('0x76')];return db[_0x3002('0x77')][_0x3002('0x53')]({'where':{'id':_0x163910},'attributes':['id'],'include':[{'model':db['User'],'as':_0x3002('0x78'),'attributes':['id',_0x3002('0x3e'),'online',_0x3002('0x79'),_0x3002('0x7a')],'raw':!![]}]})[_0x3002('0x3b')](function(_0xc32dd8){if(_0xc32dd8){var _0x589ba1=_[_0x3002('0x7b')](_0xc32dd8,function(_0x417256){var _0x285afe=_0x417256[_0x3002('0x5f')]({'plain':!![]});return _0x285afe[_0x3002('0x78')];});return db[_0x3002('0x41')][_0x3002('0x5b')]({'where':{'id':_0x6eba4d[_0x3002('0x55')]['id']}})[_0x3002('0x3b')](function(_0x354539){return db[_0x3002('0x7c')][_0x3002('0x7d')](function(_0x414b0d){return _0x354539['addTeams'](_0x163910,{'transaction':_0x414b0d})[_0x3002('0x3b')](function(){return BPromise[_0x3002('0x7e')](_0x589ba1,function(_0x8d73cd){return db[_0x3002('0x67')][_0x3002('0x7f')]({'where':{'UserId':_0x8d73cd['id'],'ChatQueueId':_0x6eba4d[_0x3002('0x55')]['id']},'transaction':_0x414b0d});});})[_0x3002('0x3b')](function(){_0x589ba1[_0x3002('0x80')](function(_0x491b24){socket[_0x3002('0x81')](_0x3002('0x82'),{'UserId':_0x491b24['id'],'ChatQueueId':_0x354539['id']});});});});});}})[_0x3002('0x3b')](respondWithStatusCode(_0x2aa036,null))[_0x3002('0x2e')](handleError(_0x2aa036,null));};exports[_0x3002('0x83')]=function(_0x3681f3,_0x2816ef,_0x4b3385){return db['Team'][_0x3002('0x53')]({'where':{'id':_0x3681f3[_0x3002('0x46')][_0x3002('0x76')]},'attributes':['id'],'include':[{'model':db[_0x3002('0x6b')],'as':_0x3002('0x78'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x2816ef,null))[_0x3002('0x3b')](function(_0x9884e9){var _0x592115=_[_0x3002('0x40')](_0x9884e9,'id');var _0x17cdbf=[];var _0x227f1a=[];var _0x3d3586=squel[_0x3002('0x84')]();_0x3d3586[_0x3002('0x85')](_0x3002('0x86'))[_0x3002('0x87')](_0x3002('0x88'),'tq')[_0x3002('0x89')](_0x3002('0x8a'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x3002('0x50')](_0x3002('0x8b'),_0x3681f3[_0x3002('0x55')]['id']);for(var _0x1a241b=0x0;_0x1a241b<_0x9884e9['length'];_0x1a241b+=0x1){let _0x6af048=_0x9884e9[_0x1a241b];for(var _0x1ca400=0x0;_0x1ca400<_0x6af048['Agents'][_0x3002('0x4b')];_0x1ca400+=0x1){let _0x3cbac9=_0x6af048[_0x3002('0x78')][_0x1ca400];var _0x332be2=_0x3d3586[_0x3002('0x8c')]();_0x332be2[_0x3002('0x50')](_0x3002('0x8d'),_0x3cbac9['id']);_0x227f1a[_0x3002('0x8e')](db[_0x3002('0x7c')][_0x3002('0x46')](_0x332be2[_0x3002('0x8f')](),{'type':db[_0x3002('0x7c')]['QueryTypes'][_0x3002('0x90')]})[_0x3002('0x3b')](function(_0xa3abb6){if(_0xa3abb6['length']===0x1){return _0x3cbac9['id'];}else{var _0x46083e=_[_0x3002('0x91')](_[_0x3002('0x40')](_0xa3abb6,_0x3002('0x92')),function(_0x43dada){return _[_0x3002('0x93')](_0x592115,_0x43dada);});if(_0x46083e){return _0x3cbac9['id'];}}}));}}return BPromise[_0x3002('0x94')](_0x227f1a)['then'](function(_0x3d1bbb){_0x17cdbf=_(_0x17cdbf)[_0x3002('0x95')](_0x3d1bbb)['compact']()[_0x3002('0x96')]();return db['ChatQueue'][_0x3002('0x5b')]({'where':{'id':_0x3681f3[_0x3002('0x55')]['id']}})['then'](function(_0x2ff040){return db[_0x3002('0x7c')]['transaction'](function(_0x2795dd){return _0x2ff040['removeTeams'](_0x3681f3[_0x3002('0x46')]['ids'],{'transaction':_0x2795dd})[_0x3002('0x3b')](function(){if(!_[_0x3002('0x97')](_0x17cdbf)){return _0x2ff040[_0x3002('0x98')](_0x17cdbf,{'transaction':_0x2795dd});}})[_0x3002('0x3b')](function(){_0x17cdbf[_0x3002('0x80')](function(_0x15d92b){socket[_0x3002('0x81')](_0x3002('0x99'),{'UserId':_0x15d92b,'ChatQueueId':_0x2ff040['id']});});});});});});})['then'](respondWithStatusCode(_0x2816ef,null))['catch'](handleError(_0x2816ef,null));};exports[_0x3002('0x9a')]=function(_0x1db98d,_0x5f2985,_0x186914){return db[_0x3002('0x41')][_0x3002('0x5b')]({'where':{'id':_0x1db98d[_0x3002('0x55')]['id']}})[_0x3002('0x3b')](handleEntityNotFound(_0x5f2985,null))['then'](function(_0x275230){if(_0x275230){return _0x275230[_0x3002('0x9a')](_0x1db98d[_0x3002('0x5d')][_0x3002('0x76')],_[_0x3002('0x9b')](_0x1db98d[_0x3002('0x5d')],[_0x3002('0x76'),'id'])||{})[_0x3002('0x9c')](function(_0x3f87e3){for(var _0x298e7b=0x0;_0x298e7b<_0x1db98d[_0x3002('0x5d')]['ids'][_0x3002('0x4b')];_0x298e7b+=0x1){socket[_0x3002('0x81')]('userChatQueue:save',{'UserId':Number(_0x1db98d[_0x3002('0x5d')][_0x3002('0x76')][_0x298e7b]),'ChatQueueId':Number(_0x1db98d[_0x3002('0x55')]['id'])});}return _0x3f87e3;});}})[_0x3002('0x3b')](respondWithResult(_0x5f2985,null))[_0x3002('0x2e')](handleError(_0x5f2985,null));};exports[_0x3002('0x98')]=function(_0x29f3f1,_0x1beece,_0x5c53b6){return db[_0x3002('0x41')][_0x3002('0x5b')]({'where':{'id':_0x29f3f1['params']['id']}})['then'](handleEntityNotFound(_0x1beece,null))[_0x3002('0x3b')](function(_0x4ab011){if(_0x4ab011){return _0x4ab011['removeAgents'](_0x29f3f1[_0x3002('0x46')][_0x3002('0x76')])['then'](function(){if(_[_0x3002('0x9d')](_0x29f3f1[_0x3002('0x46')][_0x3002('0x76')])){for(var _0x6a4620=0x0;_0x6a4620<_0x29f3f1[_0x3002('0x46')][_0x3002('0x76')]['length'];_0x6a4620+=0x1){socket[_0x3002('0x81')]('userChatQueue:remove',{'UserId':Number(_0x29f3f1[_0x3002('0x46')][_0x3002('0x76')][_0x6a4620]),'ChatQueueId':Number(_0x29f3f1['params']['id'])});}}else{socket[_0x3002('0x81')](_0x3002('0x99'),{'UserId':Number(_0x29f3f1[_0x3002('0x46')][_0x3002('0x76')]),'ChatQueueId':Number(_0x29f3f1[_0x3002('0x55')]['id'])});}});}})[_0x3002('0x3b')](respondWithStatusCode(_0x1beece,null))['catch'](handleError(_0x1beece,null));};exports[_0x3002('0x9e')]=function(_0x232226,_0x1ff277,_0x1c67ff){var _0x58405d={};var _0x14f452={};var _0x5742c9;var _0x4cf669;return db[_0x3002('0x41')][_0x3002('0x66')]({'where':{'id':_0x232226[_0x3002('0x55')]['id']}})['then'](handleEntityNotFound(_0x1ff277,null))[_0x3002('0x3b')](function(_0x539dfe){if(_0x539dfe){_0x5742c9=_0x539dfe;_0x14f452[_0x3002('0x45')]=_[_0x3002('0x56')](db[_0x3002('0x6b')][_0x3002('0x57')]);_0x14f452[_0x3002('0x46')]=_[_0x3002('0x56')](_0x232226['query']);_0x14f452['filters']=_['intersection'](_0x14f452[_0x3002('0x45')],_0x14f452[_0x3002('0x46')]);_0x58405d[_0x3002('0x4a')]=_[_0x3002('0x48')](_0x14f452[_0x3002('0x45')],qs[_0x3002('0x49')](_0x232226['query'][_0x3002('0x49')]));_0x58405d[_0x3002('0x4a')]=_0x58405d[_0x3002('0x4a')][_0x3002('0x4b')]?_0x58405d[_0x3002('0x4a')]:_0x14f452['model'];_0x58405d[_0x3002('0x69')]=qs[_0x3002('0x4d')](_0x232226['query'][_0x3002('0x4d')]);_0x58405d['where']=qs[_0x3002('0x47')](_[_0x3002('0x4e')](_0x232226[_0x3002('0x46')],_0x14f452[_0x3002('0x47')]));if(_0x232226[_0x3002('0x46')][_0x3002('0x4f')]){_0x58405d['where']=_[_0x3002('0x51')](_0x58405d[_0x3002('0x50')],{'$or':_['map'](_0x58405d[_0x3002('0x4a')],function(_0x4629b7){var _0x16791a={};_0x16791a[_0x4629b7]={'$like':'%'+_0x232226[_0x3002('0x46')][_0x3002('0x4f')]+'%'};return _0x16791a;})});}_0x58405d=_[_0x3002('0x51')]({},_0x58405d,_0x232226[_0x3002('0x5a')]);return _0x5742c9['getAgents'](_0x58405d);}})[_0x3002('0x3b')](function(_0xfe3d6a){if(_0xfe3d6a){_0x4cf669=_0xfe3d6a[_0x3002('0x4b')];if(!_0x232226[_0x3002('0x46')][_0x3002('0x68')](_0x3002('0x4c'))){_0x58405d[_0x3002('0x34')]=qs[_0x3002('0x34')](_0x232226[_0x3002('0x46')][_0x3002('0x34')]);_0x58405d[_0x3002('0x32')]=qs[_0x3002('0x32')](_0x232226[_0x3002('0x46')][_0x3002('0x32')]);}return _0x5742c9[_0x3002('0x9e')](_0x58405d);}})[_0x3002('0x3b')](function(_0x1f8fa4){if(_0x1f8fa4){return _0x1f8fa4?{'count':_0x4cf669,'rows':_0x1f8fa4}:null;}})[_0x3002('0x3b')](respondWithResult(_0x1ff277,null))[_0x3002('0x2e')](handleError(_0x1ff277,null));};