8d27f6f29996662eadee55099ee5d5bdd747f7ec
[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 _0xe626=['ChatQueueId\x20=\x20?','QueryTypes','SELECT','TeamId','all','union','compact','value','isEmpty','removeAgents','addAgents','spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatQueue.socket','register','client','http','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','end','status','json','limit','offset','count','reject','update','destroy','get','ChatQueues','UserProfileResource','name','send','render','merge','body','agent','index','ChatQueue','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','map','options','includeAll','include','findAll','rows','show','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','describe','getMembers','findOne','UserChatQueue','nolimit','ChatQueueId','User','findAndCountAll','UserId','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','addTeams','Team','Agents','online','interface','flatMap','sequelize','transaction','forEach','emit','userChatQueue:save','removeTeams','ids','select','field','from','team_has_chat_queues','join','user_has_teams'];(function(_0x2e7fee,_0x6b0532){var _0x508040=function(_0x5ce51a){while(--_0x5ce51a){_0x2e7fee['push'](_0x2e7fee['shift']());}};_0x508040(++_0x6b0532);}(_0xe626,0x9d));var _0x6e62=function(_0x11c328,_0x1f5158){_0x11c328=_0x11c328-0x0;var _0x4f608c=_0xe626[_0x11c328];return _0x4f608c;};'use strict';var emlformat=require(_0x6e62('0x0'));var rimraf=require(_0x6e62('0x1'));var zipdir=require(_0x6e62('0x2'));var jsonpatch=require(_0x6e62('0x3'));var rp=require('request-promise');var moment=require(_0x6e62('0x4'));var BPromise=require(_0x6e62('0x5'));var Mustache=require(_0x6e62('0x6'));var util=require(_0x6e62('0x7'));var path=require(_0x6e62('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6e62('0x9'));var _=require(_0x6e62('0xa'));var squel=require('squel');var crypto=require(_0x6e62('0xb'));var jsforce=require(_0x6e62('0xc'));var deskjs=require(_0x6e62('0xd'));var toCsv=require(_0x6e62('0xe'));var querystring=require('querystring');var Papa=require(_0x6e62('0xf'));var Redis=require(_0x6e62('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x6e62('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6e62('0x12'));var logger=require('../../config/logger')(_0x6e62('0x13'));var utils=require('../../config/utils');var config=require(_0x6e62('0x14'));var licenseUtil=require(_0x6e62('0x15'));var db=require(_0x6e62('0x16'))['db'];config[_0x6e62('0x17')]=_[_0x6e62('0x18')](config[_0x6e62('0x17')],{'host':_0x6e62('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x6e62('0x1a'))[_0x6e62('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x6e62('0x1c')][_0x6e62('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x19a80d,_0x3f4e35,_0x58d84e,_0x416158){return new BPromise(function(_0x19deb1,_0x8aef1b){var _0x35748b=_0x416158||client;return _0x35748b[_0x6e62('0x1e')](_0x19a80d,_0x58d84e)[_0x6e62('0x1f')](function(_0x42c2ea){logger[_0x6e62('0x20')](_0x6e62('0x21'),_0x3f4e35,_0x6e62('0x22'));logger['debug'](_0x6e62('0x23'),_0x3f4e35,_0x6e62('0x22'),JSON['stringify'](_0x42c2ea));if(_0x42c2ea[_0x6e62('0x24')]){if(_0x42c2ea['error'][_0x6e62('0x25')]===0x1f4){logger[_0x6e62('0x24')](_0x6e62('0x21'),_0x3f4e35,_0x42c2ea[_0x6e62('0x24')][_0x6e62('0x26')]);return _0x8aef1b(_0x42c2ea[_0x6e62('0x24')][_0x6e62('0x26')]);}logger[_0x6e62('0x24')](_0x6e62('0x21'),_0x3f4e35,_0x42c2ea[_0x6e62('0x24')][_0x6e62('0x26')]);return _0x19deb1(_0x42c2ea['error'][_0x6e62('0x26')]);}else{logger['info'](_0x6e62('0x21'),_0x3f4e35,_0x6e62('0x22'));_0x19deb1(_0x42c2ea[_0x6e62('0x27')][_0x6e62('0x26')]);}})[_0x6e62('0x28')](function(_0x425d1c){logger[_0x6e62('0x24')](_0x6e62('0x21'),_0x3f4e35,_0x425d1c);_0x8aef1b(_0x425d1c);});});}function respondWithStatusCode(_0x2e4fe1,_0x448691){_0x448691=_0x448691||0xcc;return function(_0x5a6ffa){if(_0x5a6ffa){return _0x2e4fe1[_0x6e62('0x29')](_0x448691);}return _0x2e4fe1['status'](_0x448691)[_0x6e62('0x2a')]();};}function respondWithResult(_0x2f9baf,_0x318fc3){_0x318fc3=_0x318fc3||0xc8;return function(_0x17fee0){if(_0x17fee0){return _0x2f9baf[_0x6e62('0x2b')](_0x318fc3)[_0x6e62('0x2c')](_0x17fee0);}};}function respondWithFilteredResult(_0x4ecc45,_0x958169){return function(_0x26c991){if(_0x26c991){var _0x14cd51=typeof _0x958169['offset']==='undefined'&&typeof _0x958169[_0x6e62('0x2d')]==='undefined';var _0x479b12=_0x26c991['count'];var _0x5656d8=_0x14cd51?0x0:_0x958169[_0x6e62('0x2e')];var _0x4c6af1=_0x14cd51?_0x26c991[_0x6e62('0x2f')]:_0x958169['offset']+_0x958169[_0x6e62('0x2d')];var _0x2fb5ce;if(_0x4c6af1>=_0x479b12){_0x4c6af1=_0x479b12;_0x2fb5ce=0xc8;}else{_0x2fb5ce=0xce;}_0x4ecc45[_0x6e62('0x2b')](_0x2fb5ce);return _0x4ecc45['set']('Content-Range',_0x5656d8+'-'+_0x4c6af1+'/'+_0x479b12)[_0x6e62('0x2c')](_0x26c991);}return null;};}function patchUpdates(_0xb8d42e){return function(_0x578607){try{jsonpatch['apply'](_0x578607,_0xb8d42e,!![]);}catch(_0x53dfaa){return BPromise[_0x6e62('0x30')](_0x53dfaa);}return _0x578607['save']();};}function saveUpdates(_0xde2488,_0x6af555){return function(_0x3dc663){if(_0x3dc663){return _0x3dc663[_0x6e62('0x31')](_0xde2488)[_0x6e62('0x1f')](function(_0x4c8ed1){return _0x4c8ed1;});}return null;};}function removeEntity(_0x4b8397,_0x451e19){return function(_0x3e33e5){if(_0x3e33e5){return _0x3e33e5[_0x6e62('0x32')]()[_0x6e62('0x1f')](function(){var _0xf650a=_0x3e33e5[_0x6e62('0x33')]({'plain':!![]});var _0x9c62b=_0x6e62('0x34');return db[_0x6e62('0x35')]['destroy']({'where':{'type':_0x9c62b,'resourceId':_0xf650a['id']}})[_0x6e62('0x1f')](function(){return _0x3e33e5;});})[_0x6e62('0x1f')](function(){_0x4b8397[_0x6e62('0x2b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x134efd,_0x1e751d){return function(_0x504593){if(!_0x504593){_0x134efd[_0x6e62('0x29')](0x194);}return _0x504593;};}function handleError(_0x231120,_0x186e3c){_0x186e3c=_0x186e3c||0x1f4;return function(_0xa4f73a){logger[_0x6e62('0x24')](_0xa4f73a['stack']);if(_0xa4f73a[_0x6e62('0x36')]){delete _0xa4f73a[_0x6e62('0x36')];}_0x231120[_0x6e62('0x2b')](_0x186e3c)[_0x6e62('0x37')](_0xa4f73a);};}function getMustacheRender(_0x3f069c,_0x4900b0){return Mustache[_0x6e62('0x38')](_0x3f069c,_[_0x6e62('0x39')](_0x4900b0[_0x6e62('0x3a')],{'contact':_0x4900b0['contact'],'message':_0x4900b0[_0x6e62('0x26')],'agent':_0x4900b0[_0x6e62('0x3b')],'interaction':_0x4900b0['interaction'],'account':_0x4900b0['account']}))||'';}exports[_0x6e62('0x3c')]=function(_0x1c2ee1,_0x458ec0){var _0x5257be={},_0x5133a2={},_0x1ef318={'count':0x0,'rows':[]};var _0x4ac790=_['map'](db[_0x6e62('0x3d')][_0x6e62('0x3e')],function(_0xd07973){return{'name':_0xd07973[_0x6e62('0x3f')],'type':_0xd07973[_0x6e62('0x40')]['key']};});_0x5133a2[_0x6e62('0x41')]=_['map'](_0x4ac790,'name');_0x5133a2[_0x6e62('0x42')]=_[_0x6e62('0x43')](_0x1c2ee1[_0x6e62('0x42')]);_0x5133a2['filters']=_[_0x6e62('0x44')](_0x5133a2['model'],_0x5133a2[_0x6e62('0x42')]);_0x5257be[_0x6e62('0x45')]=_[_0x6e62('0x44')](_0x5133a2[_0x6e62('0x41')],qs[_0x6e62('0x46')](_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x46')]));_0x5257be[_0x6e62('0x45')]=_0x5257be[_0x6e62('0x45')][_0x6e62('0x47')]?_0x5257be['attributes']:_0x5133a2['model'];if(!_0x1c2ee1['query'][_0x6e62('0x48')]('nolimit')){_0x5257be[_0x6e62('0x2d')]=qs[_0x6e62('0x2d')](_0x1c2ee1['query'][_0x6e62('0x2d')]);_0x5257be[_0x6e62('0x2e')]=qs[_0x6e62('0x2e')](_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x2e')]);}_0x5257be[_0x6e62('0x49')]=qs[_0x6e62('0x4a')](_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x4a')]);_0x5257be[_0x6e62('0x4b')]=qs[_0x6e62('0x4c')](_[_0x6e62('0x4d')](_0x1c2ee1[_0x6e62('0x42')],_0x5133a2['filters']),_0x4ac790);if(_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x4e')]){_0x5257be['where']=_[_0x6e62('0x39')](_0x5257be['where'],{'$or':_[_0x6e62('0x4f')](_0x4ac790,function(_0x1aaec8){if(_0x1aaec8[_0x6e62('0x40')]!=='VIRTUAL'){var _0x447fc2={};_0x447fc2[_0x1aaec8[_0x6e62('0x36')]]={'$like':'%'+_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x4e')]+'%'};return _0x447fc2;}})});}_0x5257be=_[_0x6e62('0x39')]({},_0x5257be,_0x1c2ee1[_0x6e62('0x50')]);var _0x20ec84={'where':_0x5257be[_0x6e62('0x4b')]};return db[_0x6e62('0x3d')][_0x6e62('0x2f')](_0x20ec84)[_0x6e62('0x1f')](function(_0x5613a0){_0x1ef318['count']=_0x5613a0;if(_0x1c2ee1[_0x6e62('0x42')][_0x6e62('0x51')]){_0x5257be[_0x6e62('0x52')]=[{'all':!![]}];}return db[_0x6e62('0x3d')][_0x6e62('0x53')](_0x5257be);})[_0x6e62('0x1f')](function(_0x5b474f){_0x1ef318[_0x6e62('0x54')]=_0x5b474f;return _0x1ef318;})['then'](respondWithFilteredResult(_0x458ec0,_0x5257be))[_0x6e62('0x28')](handleError(_0x458ec0,null));};exports[_0x6e62('0x55')]=function(_0x3f9dd5,_0x7463fd){var _0x43afc9={'raw':!![],'where':{'id':_0x3f9dd5[_0x6e62('0x56')]['id']}},_0x498f95={};_0x498f95[_0x6e62('0x41')]=_[_0x6e62('0x43')](db[_0x6e62('0x3d')]['rawAttributes']);_0x498f95[_0x6e62('0x42')]=_['keys'](_0x3f9dd5[_0x6e62('0x42')]);_0x498f95[_0x6e62('0x4c')]=_[_0x6e62('0x44')](_0x498f95[_0x6e62('0x41')],_0x498f95[_0x6e62('0x42')]);_0x43afc9[_0x6e62('0x45')]=_[_0x6e62('0x44')](_0x498f95['model'],qs[_0x6e62('0x46')](_0x3f9dd5['query'][_0x6e62('0x46')]));_0x43afc9[_0x6e62('0x45')]=_0x43afc9[_0x6e62('0x45')][_0x6e62('0x47')]?_0x43afc9[_0x6e62('0x45')]:_0x498f95['model'];if(_0x3f9dd5[_0x6e62('0x42')]['includeAll']){_0x43afc9[_0x6e62('0x52')]=[{'all':!![]}];}_0x43afc9=_[_0x6e62('0x39')]({},_0x43afc9,_0x3f9dd5[_0x6e62('0x50')]);return db['ChatQueue'][_0x6e62('0x57')](_0x43afc9)[_0x6e62('0x1f')](handleEntityNotFound(_0x7463fd,null))['then'](respondWithResult(_0x7463fd,null))[_0x6e62('0x28')](handleError(_0x7463fd,null));};exports['create']=function(_0x3de583,_0x5bf3ef){return db[_0x6e62('0x3d')][_0x6e62('0x58')](_0x3de583['body'],{})[_0x6e62('0x1f')](function(_0x2f4f20){var _0x58b2e2=_0x3de583['user'][_0x6e62('0x33')]({'plain':!![]});if(!_0x58b2e2)throw new Error(_0x6e62('0x59'));if(_0x58b2e2[_0x6e62('0x5a')]===_0x6e62('0x5b')){var _0x171686=_0x2f4f20[_0x6e62('0x33')]({'plain':!![]});var _0x21b99c='ChatQueues';return db[_0x6e62('0x5c')][_0x6e62('0x57')]({'where':{'name':_0x21b99c,'userProfileId':_0x58b2e2[_0x6e62('0x5d')]},'raw':!![]})[_0x6e62('0x1f')](function(_0x109ff5){if(_0x109ff5&&_0x109ff5['autoAssociation']===0x0){return db[_0x6e62('0x35')][_0x6e62('0x58')]({'name':_0x171686['name'],'resourceId':_0x171686['id'],'type':_0x109ff5[_0x6e62('0x36')],'sectionId':_0x109ff5['id']},{})[_0x6e62('0x1f')](function(){return _0x2f4f20;});}else{return _0x2f4f20;}})[_0x6e62('0x28')](function(_0x2656cd){logger[_0x6e62('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2656cd);throw _0x2656cd;});}return _0x2f4f20;})[_0x6e62('0x1f')](respondWithResult(_0x5bf3ef,0xc9))[_0x6e62('0x28')](handleError(_0x5bf3ef,null));};exports[_0x6e62('0x31')]=function(_0x537cac,_0x2254ea){if(_0x537cac[_0x6e62('0x3a')]['id']){delete _0x537cac['body']['id'];}return db[_0x6e62('0x3d')]['find']({'where':{'id':_0x537cac[_0x6e62('0x56')]['id']}})[_0x6e62('0x1f')](handleEntityNotFound(_0x2254ea,null))[_0x6e62('0x1f')](saveUpdates(_0x537cac['body'],null))['then'](respondWithResult(_0x2254ea,null))[_0x6e62('0x28')](handleError(_0x2254ea,null));};exports[_0x6e62('0x32')]=function(_0x24e7d0,_0x92811d){return db[_0x6e62('0x3d')][_0x6e62('0x57')]({'where':{'id':_0x24e7d0[_0x6e62('0x56')]['id']}})[_0x6e62('0x1f')](handleEntityNotFound(_0x92811d,null))['then'](removeEntity(_0x92811d,null))[_0x6e62('0x28')](handleError(_0x92811d,null));};exports[_0x6e62('0x5e')]=function(_0x4e7ba3,_0x420455){return db['ChatQueue'][_0x6e62('0x5e')]()[_0x6e62('0x1f')](respondWithResult(_0x420455,null))[_0x6e62('0x28')](handleError(_0x420455,null));};exports[_0x6e62('0x5f')]=function(_0x5bbea0,_0x597a20,_0x1c4c3c){var _0xa15705={'raw':!![],'where':{}},_0x1a637b={},_0x1ccbff;return db[_0x6e62('0x3d')][_0x6e62('0x60')]({'where':{'id':_0x5bbea0[_0x6e62('0x56')]['id']}})[_0x6e62('0x1f')](handleEntityNotFound(_0x597a20,null))['then'](function(_0x1785bc){if(_0x1785bc){_0x1ccbff=_0x1785bc[_0x6e62('0x33')]({'plain':!![]});_0x1a637b[_0x6e62('0x41')]=_[_0x6e62('0x43')](db[_0x6e62('0x61')][_0x6e62('0x3e')]);_0x1a637b[_0x6e62('0x42')]=_[_0x6e62('0x43')](_0x5bbea0[_0x6e62('0x42')]);_0x1a637b['filters']=_[_0x6e62('0x44')](_0x1a637b[_0x6e62('0x41')],_0x1a637b[_0x6e62('0x42')]);_0xa15705[_0x6e62('0x45')]=_[_0x6e62('0x44')](_0x1a637b[_0x6e62('0x41')],qs[_0x6e62('0x46')](_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x46')]));_0xa15705[_0x6e62('0x45')]=_0xa15705[_0x6e62('0x45')][_0x6e62('0x47')]?_0xa15705[_0x6e62('0x45')]:_0x1a637b[_0x6e62('0x41')];if(!_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x48')](_0x6e62('0x62'))){_0xa15705['limit']=qs[_0x6e62('0x2d')](_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x2d')]);_0xa15705[_0x6e62('0x2e')]=qs['offset'](_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x2e')]);}_0xa15705[_0x6e62('0x49')]=qs['sort'](_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x4a')]);_0xa15705[_0x6e62('0x4b')]=qs[_0x6e62('0x4c')](_['pick'](_0x5bbea0[_0x6e62('0x42')],_0x1a637b[_0x6e62('0x4c')]));_0xa15705[_0x6e62('0x4b')][_0x6e62('0x63')]=_0x1785bc['id'];if(_0x5bbea0[_0x6e62('0x42')][_0x6e62('0x4e')]){_0xa15705[_0x6e62('0x4b')]=_[_0x6e62('0x39')](_0xa15705[_0x6e62('0x4b')],{'$or':_[_0x6e62('0x4f')](_0xa15705[_0x6e62('0x45')],function(_0x25daa9){var _0x1cd07e={};_0x1cd07e[_0x25daa9]={'$like':'%'+_0x5bbea0[_0x6e62('0x42')]['filter']+'%'};return _0x1cd07e;})});}_0xa15705=_[_0x6e62('0x39')]({},_0xa15705,_0x5bbea0[_0x6e62('0x50')]);return db[_0x6e62('0x61')][_0x6e62('0x53')](_0xa15705);}})[_0x6e62('0x1f')](function(_0x26a242){if(_0x26a242){return db[_0x6e62('0x64')][_0x6e62('0x65')]({'where':{'id':_['map'](_0x26a242,_0x6e62('0x66')),'role':_0x6e62('0x3b')},'attributes':['id',_0x6e62('0x36'),_0x6e62('0x67'),_0x6e62('0x68'),_0x6e62('0x69')]});}})[_0x6e62('0x1f')](function(_0x489e44){if(_0x489e44){return{'count':_0x489e44[_0x6e62('0x2f')],'rows':_[_0x6e62('0x4f')](_0x489e44[_0x6e62('0x54')],function(_0x12bf32){return{'membername':_0x12bf32[_0x6e62('0x36')],'UserId':_0x12bf32['id'],'queue_name':_0x1ccbff[_0x6e62('0x36')],'ChatQueueId':_0x1ccbff['id'],'interface':util[_0x6e62('0x6a')](_0x6e62('0x6b'),_0x6e62('0x6c'),_0x12bf32[_0x6e62('0x36')]),'penalty':0x0,'paused':_0x12bf32[_0x6e62('0x67')],'createdAt':_0x12bf32[_0x6e62('0x69')],'updatedAt':_0x12bf32[_0x6e62('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x6e62('0x1f')](respondWithFilteredResult(_0x597a20,_0xa15705))[_0x6e62('0x28')](handleError(_0x597a20,null));};exports[_0x6e62('0x6d')]=function(_0x4577c0,_0x46f419,_0x4cfd7b){var _0x349d64={};var _0x1a1303={};var _0x263105;var _0x28a758;return db[_0x6e62('0x3d')][_0x6e62('0x60')]({'where':{'id':_0x4577c0['params']['id']}})[_0x6e62('0x1f')](handleEntityNotFound(_0x46f419,null))[_0x6e62('0x1f')](function(_0x518213){if(_0x518213){_0x263105=_0x518213;_0x1a1303[_0x6e62('0x41')]=_['keys'](db['Team'][_0x6e62('0x3e')]);_0x1a1303[_0x6e62('0x42')]=_[_0x6e62('0x43')](_0x4577c0[_0x6e62('0x42')]);_0x1a1303['filters']=_[_0x6e62('0x44')](_0x1a1303[_0x6e62('0x41')],_0x1a1303[_0x6e62('0x42')]);_0x349d64[_0x6e62('0x45')]=_['intersection'](_0x1a1303[_0x6e62('0x41')],qs[_0x6e62('0x46')](_0x4577c0[_0x6e62('0x42')]['fields']));_0x349d64[_0x6e62('0x45')]=_0x349d64['attributes']['length']?_0x349d64[_0x6e62('0x45')]:_0x1a1303[_0x6e62('0x41')];_0x349d64[_0x6e62('0x49')]=qs['sort'](_0x4577c0['query'][_0x6e62('0x4a')]);_0x349d64[_0x6e62('0x4b')]=qs[_0x6e62('0x4c')](_[_0x6e62('0x4d')](_0x4577c0[_0x6e62('0x42')],_0x1a1303['filters']));if(_0x4577c0[_0x6e62('0x42')][_0x6e62('0x4e')]){_0x349d64[_0x6e62('0x4b')]=_[_0x6e62('0x39')](_0x349d64['where'],{'$or':_['map'](_0x349d64[_0x6e62('0x45')],function(_0x33003b){var _0x5f1e80={};_0x5f1e80[_0x33003b]={'$like':'%'+_0x4577c0['query'][_0x6e62('0x4e')]+'%'};return _0x5f1e80;})});}_0x349d64=_[_0x6e62('0x39')]({},_0x349d64,_0x4577c0[_0x6e62('0x50')]);return _0x263105[_0x6e62('0x6d')](_0x349d64);}})[_0x6e62('0x1f')](function(_0x288955){if(_0x288955){_0x28a758=_0x288955[_0x6e62('0x47')];if(!_0x4577c0[_0x6e62('0x42')][_0x6e62('0x48')]('nolimit')){_0x349d64[_0x6e62('0x2d')]=qs[_0x6e62('0x2d')](_0x4577c0[_0x6e62('0x42')]['limit']);_0x349d64[_0x6e62('0x2e')]=qs['offset'](_0x4577c0[_0x6e62('0x42')][_0x6e62('0x2e')]);}return _0x263105['getTeams'](_0x349d64);}})[_0x6e62('0x1f')](function(_0x19879c){if(_0x19879c){return _0x19879c?{'count':_0x28a758,'rows':_0x19879c}:null;}})[_0x6e62('0x1f')](respondWithResult(_0x46f419,null))[_0x6e62('0x28')](handleError(_0x46f419,null));};exports[_0x6e62('0x6e')]=function(_0x35f31b,_0x162750,_0x519e98){var _0x5e14a2=_0x35f31b[_0x6e62('0x3a')]['ids'];return db[_0x6e62('0x6f')][_0x6e62('0x53')]({'where':{'id':_0x5e14a2},'attributes':['id'],'include':[{'model':db['User'],'as':_0x6e62('0x70'),'attributes':['id','name',_0x6e62('0x71'),'voicePause',_0x6e62('0x72')],'raw':!![]}]})['then'](function(_0x1dfd45){if(_0x1dfd45){var _0x1161cd=_[_0x6e62('0x73')](_0x1dfd45,function(_0x47745e){var _0x45f361=_0x47745e['get']({'plain':!![]});return _0x45f361[_0x6e62('0x70')];});return db[_0x6e62('0x3d')][_0x6e62('0x57')]({'where':{'id':_0x35f31b[_0x6e62('0x56')]['id']}})[_0x6e62('0x1f')](function(_0x2049e4){return db[_0x6e62('0x74')][_0x6e62('0x75')](function(_0x7fa90b){return _0x2049e4[_0x6e62('0x6e')](_0x5e14a2,{'transaction':_0x7fa90b})[_0x6e62('0x1f')](function(){return BPromise['each'](_0x1161cd,function(_0x3db7f6){return db[_0x6e62('0x61')]['findOrCreate']({'where':{'UserId':_0x3db7f6['id'],'ChatQueueId':_0x35f31b['params']['id']},'transaction':_0x7fa90b});});})['then'](function(){_0x1161cd[_0x6e62('0x76')](function(_0x6f6e16){socket[_0x6e62('0x77')](_0x6e62('0x78'),{'UserId':_0x6f6e16['id'],'ChatQueueId':_0x2049e4['id']});});});});});}})['then'](respondWithStatusCode(_0x162750,null))['catch'](handleError(_0x162750,null));};exports[_0x6e62('0x79')]=function(_0x22cfd7,_0x3571f5,_0x23b57e){return db[_0x6e62('0x6f')][_0x6e62('0x53')]({'where':{'id':_0x22cfd7[_0x6e62('0x42')][_0x6e62('0x7a')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x6e62('0x70'),'attributes':['id'],'raw':!![]}]})[_0x6e62('0x1f')](handleEntityNotFound(_0x3571f5,null))[_0x6e62('0x1f')](function(_0x2164d2){var _0x156723=_[_0x6e62('0x4f')](_0x2164d2,'id');var _0x5849c9=[];var _0x4a617e=[];var _0x1f7fdb=squel[_0x6e62('0x7b')]();_0x1f7fdb[_0x6e62('0x7c')]('tq.TeamId')[_0x6e62('0x7d')](_0x6e62('0x7e'),'tq')[_0x6e62('0x7f')](_0x6e62('0x80'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x6e62('0x81'),_0x22cfd7[_0x6e62('0x56')]['id']);for(var _0x959380=0x0;_0x959380<_0x2164d2['length'];_0x959380+=0x1){let _0x519dbb=_0x2164d2[_0x959380];for(var _0xe836d8=0x0;_0xe836d8<_0x519dbb[_0x6e62('0x70')]['length'];_0xe836d8+=0x1){let _0x28d0fc=_0x519dbb[_0x6e62('0x70')][_0xe836d8];var _0x5ef47f=_0x1f7fdb['clone']();_0x5ef47f['where']('ut.UserId\x20=\x20?',_0x28d0fc['id']);_0x4a617e['push'](db['sequelize'][_0x6e62('0x42')](_0x5ef47f['toString'](),{'type':db[_0x6e62('0x74')][_0x6e62('0x82')][_0x6e62('0x83')]})[_0x6e62('0x1f')](function(_0x2809db){if(_0x2809db[_0x6e62('0x47')]===0x1){return _0x28d0fc['id'];}else{var _0x43c6b6=_['every'](_[_0x6e62('0x4f')](_0x2809db,_0x6e62('0x84')),function(_0x5cd737){return _['includes'](_0x156723,_0x5cd737);});if(_0x43c6b6){return _0x28d0fc['id'];}}}));}}return BPromise[_0x6e62('0x85')](_0x4a617e)[_0x6e62('0x1f')](function(_0x4e7ff9){_0x5849c9=_(_0x5849c9)[_0x6e62('0x86')](_0x4e7ff9)[_0x6e62('0x87')]()[_0x6e62('0x88')]();return db['ChatQueue'][_0x6e62('0x57')]({'where':{'id':_0x22cfd7['params']['id']}})[_0x6e62('0x1f')](function(_0x3f0e1f){return db[_0x6e62('0x74')][_0x6e62('0x75')](function(_0x231d19){return _0x3f0e1f[_0x6e62('0x79')](_0x22cfd7[_0x6e62('0x42')][_0x6e62('0x7a')],{'transaction':_0x231d19})['then'](function(){if(!_[_0x6e62('0x89')](_0x5849c9)){return _0x3f0e1f[_0x6e62('0x8a')](_0x5849c9,{'transaction':_0x231d19});}})['then'](function(){_0x5849c9[_0x6e62('0x76')](function(_0x159d5a){socket[_0x6e62('0x77')]('userChatQueue:remove',{'UserId':_0x159d5a,'ChatQueueId':_0x3f0e1f['id']});});});});});});})[_0x6e62('0x1f')](respondWithStatusCode(_0x3571f5,null))['catch'](handleError(_0x3571f5,null));};exports[_0x6e62('0x8b')]=function(_0x361b0c,_0x2eafde,_0x437c38){return db[_0x6e62('0x3d')]['find']({'where':{'id':_0x361b0c[_0x6e62('0x56')]['id']}})[_0x6e62('0x1f')](handleEntityNotFound(_0x2eafde,null))[_0x6e62('0x1f')](function(_0x3229f2){if(_0x3229f2){return _0x3229f2[_0x6e62('0x8b')](_0x361b0c['body']['ids'],_['omit'](_0x361b0c[_0x6e62('0x3a')],[_0x6e62('0x7a'),'id'])||{})[_0x6e62('0x8c')](function(_0x2749f7){for(var _0x5dd09a=0x0;_0x5dd09a<_0x361b0c['body'][_0x6e62('0x7a')][_0x6e62('0x47')];_0x5dd09a+=0x1){socket['emit'](_0x6e62('0x78'),{'UserId':_0x361b0c['body']['ids'][_0x5dd09a],'ChatQueueId':_0x361b0c['params']['id']});}return _0x2749f7;});}})[_0x6e62('0x1f')](respondWithResult(_0x2eafde,null))[_0x6e62('0x28')](handleError(_0x2eafde,null));};exports['removeAgents']=function(_0x11961d,_0x3ae486,_0x14de92){return db['ChatQueue'][_0x6e62('0x57')]({'where':{'id':_0x11961d[_0x6e62('0x56')]['id']}})['then'](handleEntityNotFound(_0x3ae486,null))[_0x6e62('0x1f')](function(_0x4151c3){if(_0x4151c3){return _0x4151c3[_0x6e62('0x8a')](_0x11961d['query'][_0x6e62('0x7a')])[_0x6e62('0x1f')](function(){if(_[_0x6e62('0x8d')](_0x11961d['query']['ids'])){for(var _0x5d8fde=0x0;_0x5d8fde<_0x11961d[_0x6e62('0x42')][_0x6e62('0x7a')]['length'];_0x5d8fde+=0x1){socket[_0x6e62('0x77')]('userChatQueue:remove',{'UserId':Number(_0x11961d[_0x6e62('0x42')]['ids'][_0x5d8fde]),'ChatQueueId':Number(_0x11961d[_0x6e62('0x56')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x11961d[_0x6e62('0x42')][_0x6e62('0x7a')]),'ChatQueueId':Number(_0x11961d[_0x6e62('0x56')]['id'])});}});}})[_0x6e62('0x1f')](respondWithStatusCode(_0x3ae486,null))[_0x6e62('0x28')](handleError(_0x3ae486,null));};exports[_0x6e62('0x8e')]=function(_0x3b2d26,_0x5a1d40,_0x3856c8){var _0x2a9bd6={};var _0x3ae5c0={};var _0x36283d;var _0x59a413;return db[_0x6e62('0x3d')]['findOne']({'where':{'id':_0x3b2d26[_0x6e62('0x56')]['id']}})['then'](handleEntityNotFound(_0x5a1d40,null))['then'](function(_0x4f2140){if(_0x4f2140){_0x36283d=_0x4f2140;_0x3ae5c0[_0x6e62('0x41')]=_[_0x6e62('0x43')](db[_0x6e62('0x64')]['rawAttributes']);_0x3ae5c0[_0x6e62('0x42')]=_['keys'](_0x3b2d26['query']);_0x3ae5c0[_0x6e62('0x4c')]=_[_0x6e62('0x44')](_0x3ae5c0['model'],_0x3ae5c0[_0x6e62('0x42')]);_0x2a9bd6[_0x6e62('0x45')]=_['intersection'](_0x3ae5c0['model'],qs[_0x6e62('0x46')](_0x3b2d26['query']['fields']));_0x2a9bd6[_0x6e62('0x45')]=_0x2a9bd6[_0x6e62('0x45')][_0x6e62('0x47')]?_0x2a9bd6[_0x6e62('0x45')]:_0x3ae5c0['model'];_0x2a9bd6[_0x6e62('0x49')]=qs[_0x6e62('0x4a')](_0x3b2d26[_0x6e62('0x42')][_0x6e62('0x4a')]);_0x2a9bd6['where']=qs[_0x6e62('0x4c')](_[_0x6e62('0x4d')](_0x3b2d26['query'],_0x3ae5c0[_0x6e62('0x4c')]));if(_0x3b2d26[_0x6e62('0x42')][_0x6e62('0x4e')]){_0x2a9bd6[_0x6e62('0x4b')]=_['merge'](_0x2a9bd6['where'],{'$or':_[_0x6e62('0x4f')](_0x2a9bd6[_0x6e62('0x45')],function(_0x58b4b9){var _0x5629ad={};_0x5629ad[_0x58b4b9]={'$like':'%'+_0x3b2d26['query']['filter']+'%'};return _0x5629ad;})});}_0x2a9bd6=_[_0x6e62('0x39')]({},_0x2a9bd6,_0x3b2d26[_0x6e62('0x50')]);return _0x36283d[_0x6e62('0x8e')](_0x2a9bd6);}})[_0x6e62('0x1f')](function(_0x1d89d7){if(_0x1d89d7){_0x59a413=_0x1d89d7['length'];if(!_0x3b2d26[_0x6e62('0x42')]['hasOwnProperty'](_0x6e62('0x62'))){_0x2a9bd6[_0x6e62('0x2d')]=qs[_0x6e62('0x2d')](_0x3b2d26['query'][_0x6e62('0x2d')]);_0x2a9bd6[_0x6e62('0x2e')]=qs['offset'](_0x3b2d26[_0x6e62('0x42')]['offset']);}return _0x36283d[_0x6e62('0x8e')](_0x2a9bd6);}})[_0x6e62('0x1f')](function(_0x1750de){if(_0x1750de){return _0x1750de?{'count':_0x59a413,'rows':_0x1750de}:null;}})[_0x6e62('0x1f')](respondWithResult(_0x5a1d40,null))[_0x6e62('0x28')](handleError(_0x5a1d40,null));};