5e55fab5a6cdbd227cb55c1b2cd646e6585aa04d
[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 _0x68fa=['emit','userChatQueue:save','field','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','push','toString','SELECT','every','includes','all','union','compact','value','removeTeams','isEmpty','userChatQueue:remove','addAgents','omit','spread','removeAgents','isArray','getAgents','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','register','http','request','info','ChatQueue,\x20%s,\x20%s','debug','request\x20sent','error','code','message','catch','status','end','json','offset','limit','set','Content-Range','reject','save','update','destroy','then','get','UserProfileResource','sendStatus','name','map','ChatQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','attributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','ChatQueues','UserProfileSection','userProfileId','autoAssociation','params','describe','getMembers','UserChatQueue','ChatQueueId','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','format','findOne','Team','getTeams','ids','User','Agents','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach'];(function(_0x403c20,_0x4a7b99){var _0x2b271a=function(_0x106ecb){while(--_0x106ecb){_0x403c20['push'](_0x403c20['shift']());}};_0x2b271a(++_0x4a7b99);}(_0x68fa,0xaf));var _0xa68f=function(_0x12c45d,_0x97707a){_0x12c45d=_0x12c45d-0x0;var _0x4f2a58=_0x68fa[_0x12c45d];return _0x4f2a58;};'use strict';var pdf=require(_0xa68f('0x0'));var emlformat=require(_0xa68f('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa68f('0x2'));var jsonpatch=require(_0xa68f('0x3'));var rp=require(_0xa68f('0x4'));var moment=require(_0xa68f('0x5'));var BPromise=require(_0xa68f('0x6'));var Mustache=require(_0xa68f('0x7'));var util=require(_0xa68f('0x8'));var path=require(_0xa68f('0x9'));var sox=require('sox');var csv=require(_0xa68f('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa68f('0xb'));var squel=require(_0xa68f('0xc'));var crypto=require(_0xa68f('0xd'));var jsforce=require(_0xa68f('0xe'));var deskjs=require(_0xa68f('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa68f('0x10'));var Redis=require(_0xa68f('0x11'));var authService=require(_0xa68f('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xa68f('0x13'));var hardwareService=require(_0xa68f('0x14'));var logger=require(_0xa68f('0x15'))(_0xa68f('0x16'));var utils=require(_0xa68f('0x17'));var config=require(_0xa68f('0x18'));var licenseUtil=require(_0xa68f('0x19'));var db=require(_0xa68f('0x1a'))['db'];config['redis']=_[_0xa68f('0x1b')](config[_0xa68f('0x1c')],{'host':_0xa68f('0x1d'),'port':0x18eb});var socket=require(_0xa68f('0x1e'))(new Redis(config[_0xa68f('0x1c')]));require(_0xa68f('0x1f'))[_0xa68f('0x20')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0xa68f('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x4cf72b,_0x1542c3,_0x58143f,_0x1cd421){return new BPromise(function(_0x15db24,_0x48ee32){var _0x33c8d9=_0x1cd421||client;return _0x33c8d9[_0xa68f('0x22')](_0x4cf72b,_0x58143f)['then'](function(_0x582678){logger[_0xa68f('0x23')](_0xa68f('0x24'),_0x1542c3,'request\x20sent');logger[_0xa68f('0x25')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x1542c3,_0xa68f('0x26'),JSON['stringify'](_0x582678));if(_0x582678['error']){if(_0x582678[_0xa68f('0x27')][_0xa68f('0x28')]===0x1f4){logger[_0xa68f('0x27')](_0xa68f('0x24'),_0x1542c3,_0x582678[_0xa68f('0x27')]['message']);return _0x48ee32(_0x582678[_0xa68f('0x27')][_0xa68f('0x29')]);}logger[_0xa68f('0x27')](_0xa68f('0x24'),_0x1542c3,_0x582678[_0xa68f('0x27')][_0xa68f('0x29')]);return _0x15db24(_0x582678['error'][_0xa68f('0x29')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x1542c3,_0xa68f('0x26'));_0x15db24(_0x582678['result']['message']);}})[_0xa68f('0x2a')](function(_0x507cff){logger[_0xa68f('0x27')](_0xa68f('0x24'),_0x1542c3,_0x507cff);_0x48ee32(_0x507cff);});});}function respondWithStatusCode(_0x15e859,_0x3d8b44){_0x3d8b44=_0x3d8b44||0xcc;return function(_0x238eff){if(_0x238eff){return _0x15e859['sendStatus'](_0x3d8b44);}return _0x15e859[_0xa68f('0x2b')](_0x3d8b44)[_0xa68f('0x2c')]();};}function respondWithResult(_0x5e10d0,_0x55ae75){_0x55ae75=_0x55ae75||0xc8;return function(_0x221ea6){if(_0x221ea6){return _0x5e10d0[_0xa68f('0x2b')](_0x55ae75)[_0xa68f('0x2d')](_0x221ea6);}};}function respondWithFilteredResult(_0x43fae2,_0x430270){return function(_0x1b9c4d){if(_0x1b9c4d){var _0x3e25bf=_0x1b9c4d['count'],_0x51beae=_0x430270[_0xa68f('0x2e')],_0x2de81e=_0x430270[_0xa68f('0x2e')]+_0x430270[_0xa68f('0x2f')],_0x3aaa08;if(_0x2de81e>=_0x3e25bf){_0x2de81e=_0x3e25bf;_0x3aaa08=0xc8;}else{_0x3aaa08=0xce;}_0x43fae2[_0xa68f('0x2b')](_0x3aaa08);return _0x43fae2[_0xa68f('0x30')](_0xa68f('0x31'),_0x51beae+'-'+_0x2de81e+'/'+_0x3e25bf)['json'](_0x1b9c4d);}return null;};}function patchUpdates(_0x138d23){return function(_0x306a7e){try{jsonpatch['apply'](_0x306a7e,_0x138d23,!![]);}catch(_0x3b0040){return BPromise[_0xa68f('0x32')](_0x3b0040);}return _0x306a7e[_0xa68f('0x33')]();};}function saveUpdates(_0x3e0dbc,_0x90fb94){return function(_0x3063ad){if(_0x3063ad){return _0x3063ad[_0xa68f('0x34')](_0x3e0dbc)['then'](function(_0x575b3d){return _0x575b3d;});}return null;};}function removeEntity(_0x103823,_0x360062){return function(_0x4850d5){if(_0x4850d5){return _0x4850d5[_0xa68f('0x35')]()[_0xa68f('0x36')](function(){var _0x285949=_0x4850d5[_0xa68f('0x37')]({'plain':!![]});var _0x1dd8a7='ChatQueues';return db[_0xa68f('0x38')]['destroy']({'where':{'type':_0x1dd8a7,'resourceId':_0x285949['id']}})[_0xa68f('0x36')](function(){return _0x4850d5;});})['then'](function(){_0x103823[_0xa68f('0x2b')](0xcc)[_0xa68f('0x2c')]();});}};}function handleEntityNotFound(_0x35a1f7,_0x30842b){return function(_0x46f56b){if(!_0x46f56b){_0x35a1f7[_0xa68f('0x39')](0x194);}return _0x46f56b;};}function handleError(_0x5bb8cf,_0x2e0be3){_0x2e0be3=_0x2e0be3||0x1f4;return function(_0x5b188f){logger['error'](_0x5b188f['stack']);if(_0x5b188f[_0xa68f('0x3a')]){delete _0x5b188f[_0xa68f('0x3a')];}_0x5bb8cf['status'](_0x2e0be3)['send'](_0x5b188f);};}exports['index']=function(_0x1657cd,_0x33aef9){var _0x1f0ec5={},_0x2e008c={},_0x5dd6df={'count':0x0,'rows':[]};var _0x3a0221=_[_0xa68f('0x3b')](db[_0xa68f('0x3c')][_0xa68f('0x3d')],function(_0x14e216){return{'name':_0x14e216[_0xa68f('0x3e')],'type':_0x14e216[_0xa68f('0x3f')][_0xa68f('0x40')]};});_0x2e008c[_0xa68f('0x41')]=_[_0xa68f('0x3b')](_0x3a0221,_0xa68f('0x3a'));_0x2e008c[_0xa68f('0x42')]=_[_0xa68f('0x43')](_0x1657cd['query']);_0x2e008c[_0xa68f('0x44')]=_[_0xa68f('0x45')](_0x2e008c[_0xa68f('0x41')],_0x2e008c['query']);_0x1f0ec5['attributes']=_['intersection'](_0x2e008c['model'],qs[_0xa68f('0x46')](_0x1657cd[_0xa68f('0x42')]['fields']));_0x1f0ec5['attributes']=_0x1f0ec5['attributes']['length']?_0x1f0ec5['attributes']:_0x2e008c[_0xa68f('0x41')];if(!_0x1657cd[_0xa68f('0x42')][_0xa68f('0x47')](_0xa68f('0x48'))){_0x1f0ec5['limit']=qs[_0xa68f('0x2f')](_0x1657cd[_0xa68f('0x42')][_0xa68f('0x2f')]);_0x1f0ec5[_0xa68f('0x2e')]=qs[_0xa68f('0x2e')](_0x1657cd[_0xa68f('0x42')][_0xa68f('0x2e')]);}_0x1f0ec5[_0xa68f('0x49')]=qs[_0xa68f('0x4a')](_0x1657cd[_0xa68f('0x42')][_0xa68f('0x4a')]);_0x1f0ec5[_0xa68f('0x4b')]=qs[_0xa68f('0x44')](_[_0xa68f('0x4c')](_0x1657cd[_0xa68f('0x42')],_0x2e008c[_0xa68f('0x44')]),_0x3a0221);if(_0x1657cd[_0xa68f('0x42')][_0xa68f('0x4d')]){_0x1f0ec5[_0xa68f('0x4b')]=_[_0xa68f('0x4e')](_0x1f0ec5[_0xa68f('0x4b')],{'$or':_[_0xa68f('0x3b')](_0x3a0221,function(_0x2c0078){if(_0x2c0078[_0xa68f('0x3f')]!=='VIRTUAL'){var _0x496f6d={};_0x496f6d[_0x2c0078['name']]={'$like':'%'+_0x1657cd[_0xa68f('0x42')][_0xa68f('0x4d')]+'%'};return _0x496f6d;}})});}_0x1f0ec5=_[_0xa68f('0x4e')]({},_0x1f0ec5,_0x1657cd[_0xa68f('0x4f')]);var _0x5c0b5b={'where':_0x1f0ec5[_0xa68f('0x4b')]};return db[_0xa68f('0x3c')][_0xa68f('0x50')](_0x5c0b5b)[_0xa68f('0x36')](function(_0x3daae0){_0x5dd6df[_0xa68f('0x50')]=_0x3daae0;if(_0x1657cd[_0xa68f('0x42')][_0xa68f('0x51')]){_0x1f0ec5[_0xa68f('0x52')]=[{'all':!![]}];}return db[_0xa68f('0x3c')][_0xa68f('0x53')](_0x1f0ec5);})['then'](function(_0x32d5ff){_0x5dd6df['rows']=_0x32d5ff;return _0x5dd6df;})[_0xa68f('0x36')](respondWithFilteredResult(_0x33aef9,_0x1f0ec5))[_0xa68f('0x2a')](handleError(_0x33aef9,null));};exports['show']=function(_0x398aef,_0x193cce){var _0x4dedeb={'raw':!![],'where':{'id':_0x398aef['params']['id']}},_0x360380={};_0x360380[_0xa68f('0x41')]=_[_0xa68f('0x43')](db['ChatQueue'][_0xa68f('0x3d')]);_0x360380[_0xa68f('0x42')]=_['keys'](_0x398aef[_0xa68f('0x42')]);_0x360380[_0xa68f('0x44')]=_['intersection'](_0x360380[_0xa68f('0x41')],_0x360380[_0xa68f('0x42')]);_0x4dedeb[_0xa68f('0x54')]=_[_0xa68f('0x45')](_0x360380[_0xa68f('0x41')],qs['fields'](_0x398aef[_0xa68f('0x42')][_0xa68f('0x46')]));_0x4dedeb['attributes']=_0x4dedeb[_0xa68f('0x54')][_0xa68f('0x55')]?_0x4dedeb[_0xa68f('0x54')]:_0x360380['model'];if(_0x398aef[_0xa68f('0x42')][_0xa68f('0x51')]){_0x4dedeb['include']=[{'all':!![]}];}_0x4dedeb=_['merge']({},_0x4dedeb,_0x398aef[_0xa68f('0x4f')]);return db[_0xa68f('0x3c')][_0xa68f('0x56')](_0x4dedeb)[_0xa68f('0x36')](handleEntityNotFound(_0x193cce,null))['then'](respondWithResult(_0x193cce,null))[_0xa68f('0x2a')](handleError(_0x193cce,null));};exports[_0xa68f('0x57')]=function(_0x11b703,_0x244f39){return db[_0xa68f('0x3c')][_0xa68f('0x57')](_0x11b703[_0xa68f('0x58')],{})[_0xa68f('0x36')](function(_0x1837f6){var _0x1af211=_0x11b703[_0xa68f('0x59')]['get']({'plain':!![]});if(!_0x1af211)throw new Error(_0xa68f('0x5a'));if(_0x1af211[_0xa68f('0x5b')]===_0xa68f('0x59')){var _0x23bb1d=_0x1837f6[_0xa68f('0x37')]({'plain':!![]});var _0x10698c=_0xa68f('0x5c');return db[_0xa68f('0x5d')][_0xa68f('0x56')]({'where':{'name':_0x10698c,'userProfileId':_0x1af211[_0xa68f('0x5e')]},'raw':!![]})[_0xa68f('0x36')](function(_0x10f8e2){if(_0x10f8e2&&_0x10f8e2[_0xa68f('0x5f')]===0x0){return db[_0xa68f('0x38')][_0xa68f('0x57')]({'name':_0x23bb1d[_0xa68f('0x3a')],'resourceId':_0x23bb1d['id'],'type':_0x10f8e2[_0xa68f('0x3a')],'sectionId':_0x10f8e2['id']},{})[_0xa68f('0x36')](function(){return _0x1837f6;});}else{return _0x1837f6;}})['catch'](function(_0x2e9b7c){logger[_0xa68f('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2e9b7c);throw _0x2e9b7c;});}return _0x1837f6;})[_0xa68f('0x36')](respondWithResult(_0x244f39,0xc9))[_0xa68f('0x2a')](handleError(_0x244f39,null));};exports[_0xa68f('0x34')]=function(_0x4dd8e9,_0x4f5d27){if(_0x4dd8e9[_0xa68f('0x58')]['id']){delete _0x4dd8e9[_0xa68f('0x58')]['id'];}return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x4dd8e9[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x4f5d27,null))[_0xa68f('0x36')](saveUpdates(_0x4dd8e9[_0xa68f('0x58')],null))[_0xa68f('0x36')](respondWithResult(_0x4f5d27,null))['catch'](handleError(_0x4f5d27,null));};exports[_0xa68f('0x35')]=function(_0x291285,_0x3cba41){return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x291285[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x3cba41,null))['then'](removeEntity(_0x3cba41,null))['catch'](handleError(_0x3cba41,null));};exports[_0xa68f('0x61')]=function(_0x29372d,_0x373e84){return db[_0xa68f('0x3c')][_0xa68f('0x61')]()['then'](respondWithResult(_0x373e84,null))[_0xa68f('0x2a')](handleError(_0x373e84,null));};exports[_0xa68f('0x62')]=function(_0x2ecb52,_0x12a756,_0x541c19){var _0x439efa={'raw':!![],'where':{}},_0x3af8ca={},_0x474e7f;return db['ChatQueue']['findOne']({'where':{'id':_0x2ecb52[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x12a756,null))['then'](function(_0x3b877e){if(_0x3b877e){_0x474e7f=_0x3b877e['get']({'plain':!![]});_0x3af8ca[_0xa68f('0x41')]=_[_0xa68f('0x43')](db[_0xa68f('0x63')][_0xa68f('0x3d')]);_0x3af8ca['query']=_[_0xa68f('0x43')](_0x2ecb52[_0xa68f('0x42')]);_0x3af8ca['filters']=_[_0xa68f('0x45')](_0x3af8ca[_0xa68f('0x41')],_0x3af8ca[_0xa68f('0x42')]);_0x439efa[_0xa68f('0x54')]=_[_0xa68f('0x45')](_0x3af8ca[_0xa68f('0x41')],qs['fields'](_0x2ecb52[_0xa68f('0x42')][_0xa68f('0x46')]));_0x439efa[_0xa68f('0x54')]=_0x439efa[_0xa68f('0x54')][_0xa68f('0x55')]?_0x439efa[_0xa68f('0x54')]:_0x3af8ca['model'];if(!_0x2ecb52[_0xa68f('0x42')][_0xa68f('0x47')](_0xa68f('0x48'))){_0x439efa[_0xa68f('0x2f')]=qs['limit'](_0x2ecb52[_0xa68f('0x42')]['limit']);_0x439efa[_0xa68f('0x2e')]=qs[_0xa68f('0x2e')](_0x2ecb52[_0xa68f('0x42')][_0xa68f('0x2e')]);}_0x439efa[_0xa68f('0x49')]=qs[_0xa68f('0x4a')](_0x2ecb52[_0xa68f('0x42')][_0xa68f('0x4a')]);_0x439efa['where']=qs[_0xa68f('0x44')](_[_0xa68f('0x4c')](_0x2ecb52[_0xa68f('0x42')],_0x3af8ca['filters']));_0x439efa[_0xa68f('0x4b')][_0xa68f('0x64')]=_0x3b877e['id'];if(_0x2ecb52[_0xa68f('0x42')][_0xa68f('0x4d')]){_0x439efa[_0xa68f('0x4b')]=_[_0xa68f('0x4e')](_0x439efa[_0xa68f('0x4b')],{'$or':_['map'](_0x439efa[_0xa68f('0x54')],function(_0x2a32f3){var _0xdbaf44={};_0xdbaf44[_0x2a32f3]={'$like':'%'+_0x2ecb52[_0xa68f('0x42')]['filter']+'%'};return _0xdbaf44;})});}_0x439efa=_[_0xa68f('0x4e')]({},_0x439efa,_0x2ecb52[_0xa68f('0x4f')]);return db[_0xa68f('0x63')][_0xa68f('0x53')](_0x439efa);}})[_0xa68f('0x36')](function(_0x3444a7){if(_0x3444a7){return db['User'][_0xa68f('0x65')]({'where':{'id':_[_0xa68f('0x3b')](_0x3444a7,_0xa68f('0x66')),'role':_0xa68f('0x67')},'attributes':['id','name',_0xa68f('0x68'),_0xa68f('0x69'),_0xa68f('0x6a')]});}})['then'](function(_0x5f22b4){if(_0x5f22b4){return{'count':_0x5f22b4[_0xa68f('0x50')],'rows':_[_0xa68f('0x3b')](_0x5f22b4['rows'],function(_0x174d03){return{'membername':_0x174d03[_0xa68f('0x3a')],'UserId':_0x174d03['id'],'queue_name':_0x474e7f[_0xa68f('0x3a')],'ChatQueueId':_0x474e7f['id'],'interface':util[_0xa68f('0x6b')]('%s/%s','SIP',_0x174d03[_0xa68f('0x3a')]),'penalty':0x0,'paused':_0x174d03[_0xa68f('0x68')],'createdAt':_0x174d03[_0xa68f('0x6a')],'updatedAt':_0x174d03[_0xa68f('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x12a756,_0x439efa))[_0xa68f('0x2a')](handleError(_0x12a756,null));};exports['getTeams']=function(_0x6a76ff,_0x137c17,_0x24135a){var _0x2cf402={};var _0x5b67b6={};var _0x1b0ea8;var _0x3aeb0f;return db[_0xa68f('0x3c')][_0xa68f('0x6c')]({'where':{'id':_0x6a76ff[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x137c17,null))['then'](function(_0x26fec6){if(_0x26fec6){_0x1b0ea8=_0x26fec6;_0x5b67b6[_0xa68f('0x41')]=_[_0xa68f('0x43')](db[_0xa68f('0x6d')][_0xa68f('0x3d')]);_0x5b67b6[_0xa68f('0x42')]=_[_0xa68f('0x43')](_0x6a76ff[_0xa68f('0x42')]);_0x5b67b6[_0xa68f('0x44')]=_[_0xa68f('0x45')](_0x5b67b6[_0xa68f('0x41')],_0x5b67b6[_0xa68f('0x42')]);_0x2cf402[_0xa68f('0x54')]=_[_0xa68f('0x45')](_0x5b67b6[_0xa68f('0x41')],qs['fields'](_0x6a76ff['query'][_0xa68f('0x46')]));_0x2cf402[_0xa68f('0x54')]=_0x2cf402[_0xa68f('0x54')]['length']?_0x2cf402[_0xa68f('0x54')]:_0x5b67b6[_0xa68f('0x41')];_0x2cf402[_0xa68f('0x49')]=qs[_0xa68f('0x4a')](_0x6a76ff[_0xa68f('0x42')]['sort']);_0x2cf402[_0xa68f('0x4b')]=qs['filters'](_[_0xa68f('0x4c')](_0x6a76ff['query'],_0x5b67b6[_0xa68f('0x44')]));if(_0x6a76ff[_0xa68f('0x42')][_0xa68f('0x4d')]){_0x2cf402[_0xa68f('0x4b')]=_[_0xa68f('0x4e')](_0x2cf402['where'],{'$or':_['map'](_0x2cf402['attributes'],function(_0x48af53){var _0xd2f75={};_0xd2f75[_0x48af53]={'$like':'%'+_0x6a76ff['query']['filter']+'%'};return _0xd2f75;})});}_0x2cf402=_[_0xa68f('0x4e')]({},_0x2cf402,_0x6a76ff['options']);return _0x1b0ea8[_0xa68f('0x6e')](_0x2cf402);}})[_0xa68f('0x36')](function(_0x328756){if(_0x328756){_0x3aeb0f=_0x328756[_0xa68f('0x55')];if(!_0x6a76ff[_0xa68f('0x42')]['hasOwnProperty']('nolimit')){_0x2cf402[_0xa68f('0x2f')]=qs[_0xa68f('0x2f')](_0x6a76ff[_0xa68f('0x42')]['limit']);_0x2cf402['offset']=qs[_0xa68f('0x2e')](_0x6a76ff['query'][_0xa68f('0x2e')]);}return _0x1b0ea8['getTeams'](_0x2cf402);}})[_0xa68f('0x36')](function(_0x3f4425){if(_0x3f4425){return _0x3f4425?{'count':_0x3aeb0f,'rows':_0x3f4425}:null;}})[_0xa68f('0x36')](respondWithResult(_0x137c17,null))['catch'](handleError(_0x137c17,null));};exports['addTeams']=function(_0x27392e,_0x64489c,_0x1925d1){var _0x24cad6=_0x27392e[_0xa68f('0x58')][_0xa68f('0x6f')];return db[_0xa68f('0x6d')][_0xa68f('0x53')]({'where':{'id':_0x24cad6},'attributes':['id'],'include':[{'model':db[_0xa68f('0x70')],'as':_0xa68f('0x71'),'attributes':['id',_0xa68f('0x3a'),'online','voicePause',_0xa68f('0x72')],'raw':!![]}]})[_0xa68f('0x36')](function(_0x364b31){if(_0x364b31){var _0x392c6a=_[_0xa68f('0x73')](_0x364b31,function(_0x420a6d){var _0x3ba25e=_0x420a6d[_0xa68f('0x37')]({'plain':!![]});return _0x3ba25e[_0xa68f('0x71')];});return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x27392e[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](function(_0x530850){return db[_0xa68f('0x74')][_0xa68f('0x75')](function(_0x2e06a5){return _0x530850['addTeams'](_0x24cad6,{'transaction':_0x2e06a5})[_0xa68f('0x36')](function(){return BPromise[_0xa68f('0x76')](_0x392c6a,function(_0x53a84c){return db['UserChatQueue'][_0xa68f('0x77')]({'where':{'UserId':_0x53a84c['id'],'ChatQueueId':_0x27392e[_0xa68f('0x60')]['id']},'transaction':_0x2e06a5});});})[_0xa68f('0x36')](function(){_0x392c6a[_0xa68f('0x78')](function(_0x1ceb14){socket[_0xa68f('0x79')](_0xa68f('0x7a'),{'UserId':_0x1ceb14['id'],'ChatQueueId':_0x530850['id']});});});});});}})[_0xa68f('0x36')](respondWithStatusCode(_0x64489c,null))['catch'](handleError(_0x64489c,null));};exports['removeTeams']=function(_0x402d10,_0x43a38b,_0x5ee89b){return db[_0xa68f('0x6d')][_0xa68f('0x53')]({'where':{'id':_0x402d10[_0xa68f('0x42')][_0xa68f('0x6f')]},'attributes':['id'],'include':[{'model':db[_0xa68f('0x70')],'as':_0xa68f('0x71'),'attributes':['id'],'raw':!![]}]})[_0xa68f('0x36')](handleEntityNotFound(_0x43a38b,null))['then'](function(_0x17ae5f){var _0x42c152=_['map'](_0x17ae5f,'id');var _0x5ee9d8=[];var _0x4a8568=[];var _0xa7822b=squel['select']();_0xa7822b[_0xa68f('0x7b')]('tq.TeamId')[_0xa68f('0x7c')](_0xa68f('0x7d'),'tq')[_0xa68f('0x7e')](_0xa68f('0x7f'),'ut',_0xa68f('0x80'))[_0xa68f('0x4b')]('ChatQueueId\x20=\x20?',_0x402d10[_0xa68f('0x60')]['id']);for(var _0xfb0426=0x0;_0xfb0426<_0x17ae5f[_0xa68f('0x55')];_0xfb0426+=0x1){let _0x5813aa=_0x17ae5f[_0xfb0426];for(var _0x30d01e=0x0;_0x30d01e<_0x5813aa['Agents']['length'];_0x30d01e+=0x1){let _0x212eb1=_0x5813aa[_0xa68f('0x71')][_0x30d01e];var _0x2d09bd=_0xa7822b[_0xa68f('0x81')]();_0x2d09bd[_0xa68f('0x4b')]('ut.UserId\x20=\x20?',_0x212eb1['id']);_0x4a8568[_0xa68f('0x82')](db[_0xa68f('0x74')]['query'](_0x2d09bd[_0xa68f('0x83')](),{'type':db[_0xa68f('0x74')]['QueryTypes'][_0xa68f('0x84')]})[_0xa68f('0x36')](function(_0x2453c9){if(_0x2453c9['length']===0x1){return _0x212eb1['id'];}else{var _0x5e09bb=_[_0xa68f('0x85')](_[_0xa68f('0x3b')](_0x2453c9,'TeamId'),function(_0x223768){return _[_0xa68f('0x86')](_0x42c152,_0x223768);});if(_0x5e09bb){return _0x212eb1['id'];}}}));}}return BPromise[_0xa68f('0x87')](_0x4a8568)[_0xa68f('0x36')](function(_0x5232f9){_0x5ee9d8=_(_0x5ee9d8)[_0xa68f('0x88')](_0x5232f9)[_0xa68f('0x89')]()[_0xa68f('0x8a')]();return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x402d10['params']['id']}})[_0xa68f('0x36')](function(_0x54a3ec){return db['sequelize'][_0xa68f('0x75')](function(_0x470320){return _0x54a3ec[_0xa68f('0x8b')](_0x402d10[_0xa68f('0x42')][_0xa68f('0x6f')],{'transaction':_0x470320})[_0xa68f('0x36')](function(){if(!_[_0xa68f('0x8c')](_0x5ee9d8)){return _0x54a3ec['removeAgents'](_0x5ee9d8,{'transaction':_0x470320});}})[_0xa68f('0x36')](function(){_0x5ee9d8['forEach'](function(_0x28a9ef){socket[_0xa68f('0x79')](_0xa68f('0x8d'),{'UserId':_0x28a9ef,'ChatQueueId':_0x54a3ec['id']});});});});});});})[_0xa68f('0x36')](respondWithStatusCode(_0x43a38b,null))[_0xa68f('0x2a')](handleError(_0x43a38b,null));};exports[_0xa68f('0x8e')]=function(_0x7ba303,_0x453192,_0x25c370){return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x7ba303[_0xa68f('0x60')]['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x453192,null))[_0xa68f('0x36')](function(_0x3055c1){if(_0x3055c1){return _0x3055c1[_0xa68f('0x8e')](_0x7ba303[_0xa68f('0x58')][_0xa68f('0x6f')],_[_0xa68f('0x8f')](_0x7ba303[_0xa68f('0x58')],['ids','id'])||{})[_0xa68f('0x90')](function(_0x3869f0){for(var _0x301852=0x0;_0x301852<_0x7ba303['body'][_0xa68f('0x6f')][_0xa68f('0x55')];_0x301852+=0x1){socket['emit'](_0xa68f('0x7a'),{'UserId':_0x7ba303[_0xa68f('0x58')][_0xa68f('0x6f')][_0x301852],'ChatQueueId':_0x7ba303['params']['id']});}return _0x3869f0;});}})[_0xa68f('0x36')](respondWithResult(_0x453192,null))['catch'](handleError(_0x453192,null));};exports[_0xa68f('0x91')]=function(_0x298161,_0x380c4d,_0x561051){return db[_0xa68f('0x3c')][_0xa68f('0x56')]({'where':{'id':_0x298161['params']['id']}})[_0xa68f('0x36')](handleEntityNotFound(_0x380c4d,null))[_0xa68f('0x36')](function(_0x451d4b){if(_0x451d4b){return _0x451d4b[_0xa68f('0x91')](_0x298161[_0xa68f('0x42')]['ids'])[_0xa68f('0x36')](function(){if(_[_0xa68f('0x92')](_0x298161[_0xa68f('0x42')][_0xa68f('0x6f')])){for(var _0x406772=0x0;_0x406772<_0x298161[_0xa68f('0x42')][_0xa68f('0x6f')][_0xa68f('0x55')];_0x406772+=0x1){socket[_0xa68f('0x79')](_0xa68f('0x8d'),{'UserId':Number(_0x298161[_0xa68f('0x42')][_0xa68f('0x6f')][_0x406772]),'ChatQueueId':Number(_0x298161[_0xa68f('0x60')]['id'])});}}else{socket[_0xa68f('0x79')]('userChatQueue:remove',{'UserId':Number(_0x298161[_0xa68f('0x42')][_0xa68f('0x6f')]),'ChatQueueId':Number(_0x298161[_0xa68f('0x60')]['id'])});}});}})[_0xa68f('0x36')](respondWithStatusCode(_0x380c4d,null))['catch'](handleError(_0x380c4d,null));};exports[_0xa68f('0x93')]=function(_0x25147e,_0x334ee4,_0xa9152){var _0x3d1bc2={};var _0x3e79b3={};var _0x1b3fab;var _0x5ea380;return db[_0xa68f('0x3c')][_0xa68f('0x6c')]({'where':{'id':_0x25147e['params']['id']}})['then'](handleEntityNotFound(_0x334ee4,null))[_0xa68f('0x36')](function(_0xb870f9){if(_0xb870f9){_0x1b3fab=_0xb870f9;_0x3e79b3[_0xa68f('0x41')]=_[_0xa68f('0x43')](db[_0xa68f('0x70')]['rawAttributes']);_0x3e79b3[_0xa68f('0x42')]=_[_0xa68f('0x43')](_0x25147e[_0xa68f('0x42')]);_0x3e79b3['filters']=_[_0xa68f('0x45')](_0x3e79b3['model'],_0x3e79b3[_0xa68f('0x42')]);_0x3d1bc2['attributes']=_['intersection'](_0x3e79b3[_0xa68f('0x41')],qs['fields'](_0x25147e[_0xa68f('0x42')]['fields']));_0x3d1bc2[_0xa68f('0x54')]=_0x3d1bc2[_0xa68f('0x54')][_0xa68f('0x55')]?_0x3d1bc2['attributes']:_0x3e79b3[_0xa68f('0x41')];_0x3d1bc2[_0xa68f('0x49')]=qs[_0xa68f('0x4a')](_0x25147e[_0xa68f('0x42')][_0xa68f('0x4a')]);_0x3d1bc2[_0xa68f('0x4b')]=qs[_0xa68f('0x44')](_[_0xa68f('0x4c')](_0x25147e['query'],_0x3e79b3[_0xa68f('0x44')]));if(_0x25147e[_0xa68f('0x42')]['filter']){_0x3d1bc2[_0xa68f('0x4b')]=_[_0xa68f('0x4e')](_0x3d1bc2[_0xa68f('0x4b')],{'$or':_[_0xa68f('0x3b')](_0x3d1bc2[_0xa68f('0x54')],function(_0x30a249){var _0x3d169a={};_0x3d169a[_0x30a249]={'$like':'%'+_0x25147e[_0xa68f('0x42')][_0xa68f('0x4d')]+'%'};return _0x3d169a;})});}_0x3d1bc2=_[_0xa68f('0x4e')]({},_0x3d1bc2,_0x25147e['options']);return _0x1b3fab[_0xa68f('0x93')](_0x3d1bc2);}})[_0xa68f('0x36')](function(_0x549dae){if(_0x549dae){_0x5ea380=_0x549dae['length'];if(!_0x25147e[_0xa68f('0x42')]['hasOwnProperty'](_0xa68f('0x48'))){_0x3d1bc2[_0xa68f('0x2f')]=qs['limit'](_0x25147e[_0xa68f('0x42')]['limit']);_0x3d1bc2[_0xa68f('0x2e')]=qs[_0xa68f('0x2e')](_0x25147e[_0xa68f('0x42')][_0xa68f('0x2e')]);}return _0x1b3fab['getAgents'](_0x3d1bc2);}})[_0xa68f('0x36')](function(_0xac5ecd){if(_0xac5ecd){return _0xac5ecd?{'count':_0x5ea380,'rows':_0xac5ecd}:null;}})['then'](respondWithResult(_0x334ee4,null))[_0xa68f('0x2a')](handleError(_0x334ee4,null));};