ce9814be2fd4aec656cc1f1e358c48e4c11bebe9
[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 _0x366d=['sort','filters','pick','filter','merge','where','type','VIRTUAL','options','findAll','rows','show','params','intersection','length','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','destroy','describe','getMembers','findOne','UserChatQueue','hasOwnProperty','ChatQueueId','findAndCountAll','agent','chatPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','Team','addTeams','ids','User','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','forEach','emit','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','QueryTypes','SELECT','every','TeamId','all','union','compact','removeAgents','addAgents','omit','spread','userChatQueue:save','userChatQueue:remove','getAgents','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','request','then','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','save','update','get','ChatQueues','UserProfileResource','stack','name','send','index','map','ChatQueue','rawAttributes','fieldName','model','query','keys','attributes','fields','nolimit','order'];(function(_0x12bcf7,_0xc11103){var _0x2825a=function(_0x4452ba){while(--_0x4452ba){_0x12bcf7['push'](_0x12bcf7['shift']());}};_0x2825a(++_0xc11103);}(_0x366d,0x17a));var _0xd366=function(_0x504a72,_0x203320){_0x504a72=_0x504a72-0x0;var _0x43dd76=_0x366d[_0x504a72];return _0x43dd76;};'use strict';var emlformat=require(_0xd366('0x0'));var rimraf=require(_0xd366('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd366('0x2'));var rp=require('request-promise');var moment=require(_0xd366('0x3'));var BPromise=require(_0xd366('0x4'));var Mustache=require(_0xd366('0x5'));var util=require(_0xd366('0x6'));var path=require(_0xd366('0x7'));var sox=require('sox');var csv=require(_0xd366('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd366('0x9'));var _=require(_0xd366('0xa'));var squel=require(_0xd366('0xb'));var crypto=require(_0xd366('0xc'));var jsforce=require(_0xd366('0xd'));var deskjs=require(_0xd366('0xe'));var toCsv=require(_0xd366('0x8'));var querystring=require('querystring');var Papa=require(_0xd366('0xf'));var Redis=require('ioredis');var authService=require(_0xd366('0x10'));var qs=require(_0xd366('0x11'));var as=require(_0xd366('0x12'));var hardwareService=require(_0xd366('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0xd366('0x14'));var config=require(_0xd366('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xd366('0x16')]=_['defaults'](config[_0xd366('0x16')],{'host':_0xd366('0x17'),'port':0x18eb});var socket=require(_0xd366('0x18'))(new Redis(config[_0xd366('0x16')]));require(_0xd366('0x19'))[_0xd366('0x1a')](socket);var jayson=require(_0xd366('0x1b'));var client=jayson[_0xd366('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2f09a7,_0x500988,_0x2beac9,_0x2f7463){return new BPromise(function(_0x17d97e,_0x53456e){var _0x2920ab=_0x2f7463||client;return _0x2920ab[_0xd366('0x1d')](_0x2f09a7,_0x2beac9)[_0xd366('0x1e')](function(_0x390fe2){logger['info'](_0xd366('0x1f'),_0x500988,_0xd366('0x20'));logger[_0xd366('0x21')](_0xd366('0x22'),_0x500988,_0xd366('0x20'),JSON[_0xd366('0x23')](_0x390fe2));if(_0x390fe2[_0xd366('0x24')]){if(_0x390fe2[_0xd366('0x24')][_0xd366('0x25')]===0x1f4){logger[_0xd366('0x24')](_0xd366('0x1f'),_0x500988,_0x390fe2[_0xd366('0x24')][_0xd366('0x26')]);return _0x53456e(_0x390fe2['error']['message']);}logger['error'](_0xd366('0x1f'),_0x500988,_0x390fe2[_0xd366('0x24')]['message']);return _0x17d97e(_0x390fe2['error'][_0xd366('0x26')]);}else{logger[_0xd366('0x27')](_0xd366('0x1f'),_0x500988,_0xd366('0x20'));_0x17d97e(_0x390fe2[_0xd366('0x28')][_0xd366('0x26')]);}})[_0xd366('0x29')](function(_0x5498fc){logger[_0xd366('0x24')](_0xd366('0x1f'),_0x500988,_0x5498fc);_0x53456e(_0x5498fc);});});}function respondWithStatusCode(_0x5e5542,_0x352052){_0x352052=_0x352052||0xcc;return function(_0x119fe3){if(_0x119fe3){return _0x5e5542[_0xd366('0x2a')](_0x352052);}return _0x5e5542[_0xd366('0x2b')](_0x352052)[_0xd366('0x2c')]();};}function respondWithResult(_0x4abde9,_0x95e0dd){_0x95e0dd=_0x95e0dd||0xc8;return function(_0x1a1ebe){if(_0x1a1ebe){return _0x4abde9[_0xd366('0x2b')](_0x95e0dd)[_0xd366('0x2d')](_0x1a1ebe);}};}function respondWithFilteredResult(_0xcf1df8,_0x40ecb9){return function(_0x35bb0e){if(_0x35bb0e){var _0x578a6b=typeof _0x40ecb9['offset']===_0xd366('0x2e')&&typeof _0x40ecb9[_0xd366('0x2f')]===_0xd366('0x2e');var _0x7c99bc=_0x35bb0e['count'];var _0x279e6e=_0x578a6b?0x0:_0x40ecb9['offset'];var _0x22d9f7=_0x578a6b?_0x35bb0e[_0xd366('0x30')]:_0x40ecb9[_0xd366('0x31')]+_0x40ecb9[_0xd366('0x2f')];var _0x5f0b01;if(_0x22d9f7>=_0x7c99bc){_0x22d9f7=_0x7c99bc;_0x5f0b01=0xc8;}else{_0x5f0b01=0xce;}_0xcf1df8[_0xd366('0x2b')](_0x5f0b01);return _0xcf1df8['set'](_0xd366('0x32'),_0x279e6e+'-'+_0x22d9f7+'/'+_0x7c99bc)['json'](_0x35bb0e);}return null;};}function patchUpdates(_0x248766){return function(_0x1c8d7c){try{jsonpatch[_0xd366('0x33')](_0x1c8d7c,_0x248766,!![]);}catch(_0x49ec8e){return BPromise['reject'](_0x49ec8e);}return _0x1c8d7c[_0xd366('0x34')]();};}function saveUpdates(_0xbbb9aa,_0x2433c8){return function(_0x41ccc7){if(_0x41ccc7){return _0x41ccc7[_0xd366('0x35')](_0xbbb9aa)[_0xd366('0x1e')](function(_0x37c689){return _0x37c689;});}return null;};}function removeEntity(_0x847a5f,_0x46e8ec){return function(_0x1955d5){if(_0x1955d5){return _0x1955d5['destroy']()['then'](function(){var _0x315225=_0x1955d5[_0xd366('0x36')]({'plain':!![]});var _0x1a459f=_0xd366('0x37');return db[_0xd366('0x38')]['destroy']({'where':{'type':_0x1a459f,'resourceId':_0x315225['id']}})[_0xd366('0x1e')](function(){return _0x1955d5;});})[_0xd366('0x1e')](function(){_0x847a5f[_0xd366('0x2b')](0xcc)[_0xd366('0x2c')]();});}};}function handleEntityNotFound(_0x547ebb,_0x32c72f){return function(_0x7bad00){if(!_0x7bad00){_0x547ebb[_0xd366('0x2a')](0x194);}return _0x7bad00;};}function handleError(_0x552cde,_0x38c65a){_0x38c65a=_0x38c65a||0x1f4;return function(_0x2b4fd1){logger[_0xd366('0x24')](_0x2b4fd1[_0xd366('0x39')]);if(_0x2b4fd1[_0xd366('0x3a')]){delete _0x2b4fd1['name'];}_0x552cde[_0xd366('0x2b')](_0x38c65a)[_0xd366('0x3b')](_0x2b4fd1);};}exports[_0xd366('0x3c')]=function(_0x13c6f0,_0xf83362){var _0x1d9ce3={},_0x2cd534={},_0x52faf9={'count':0x0,'rows':[]};var _0x589241=_[_0xd366('0x3d')](db[_0xd366('0x3e')][_0xd366('0x3f')],function(_0xe4945c){return{'name':_0xe4945c[_0xd366('0x40')],'type':_0xe4945c['type']['key']};});_0x2cd534[_0xd366('0x41')]=_[_0xd366('0x3d')](_0x589241,'name');_0x2cd534[_0xd366('0x42')]=_[_0xd366('0x43')](_0x13c6f0[_0xd366('0x42')]);_0x2cd534['filters']=_['intersection'](_0x2cd534[_0xd366('0x41')],_0x2cd534['query']);_0x1d9ce3[_0xd366('0x44')]=_['intersection'](_0x2cd534['model'],qs[_0xd366('0x45')](_0x13c6f0[_0xd366('0x42')][_0xd366('0x45')]));_0x1d9ce3[_0xd366('0x44')]=_0x1d9ce3[_0xd366('0x44')]['length']?_0x1d9ce3[_0xd366('0x44')]:_0x2cd534[_0xd366('0x41')];if(!_0x13c6f0[_0xd366('0x42')]['hasOwnProperty'](_0xd366('0x46'))){_0x1d9ce3[_0xd366('0x2f')]=qs[_0xd366('0x2f')](_0x13c6f0[_0xd366('0x42')][_0xd366('0x2f')]);_0x1d9ce3[_0xd366('0x31')]=qs['offset'](_0x13c6f0['query']['offset']);}_0x1d9ce3[_0xd366('0x47')]=qs[_0xd366('0x48')](_0x13c6f0[_0xd366('0x42')][_0xd366('0x48')]);_0x1d9ce3['where']=qs[_0xd366('0x49')](_[_0xd366('0x4a')](_0x13c6f0[_0xd366('0x42')],_0x2cd534[_0xd366('0x49')]),_0x589241);if(_0x13c6f0[_0xd366('0x42')][_0xd366('0x4b')]){_0x1d9ce3['where']=_[_0xd366('0x4c')](_0x1d9ce3[_0xd366('0x4d')],{'$or':_[_0xd366('0x3d')](_0x589241,function(_0x164d30){if(_0x164d30[_0xd366('0x4e')]!==_0xd366('0x4f')){var _0x44fd2d={};_0x44fd2d[_0x164d30[_0xd366('0x3a')]]={'$like':'%'+_0x13c6f0['query'][_0xd366('0x4b')]+'%'};return _0x44fd2d;}})});}_0x1d9ce3=_[_0xd366('0x4c')]({},_0x1d9ce3,_0x13c6f0[_0xd366('0x50')]);var _0x1b7fd7={'where':_0x1d9ce3['where']};return db[_0xd366('0x3e')][_0xd366('0x30')](_0x1b7fd7)[_0xd366('0x1e')](function(_0x12caf3){_0x52faf9[_0xd366('0x30')]=_0x12caf3;if(_0x13c6f0[_0xd366('0x42')]['includeAll']){_0x1d9ce3['include']=[{'all':!![]}];}return db[_0xd366('0x3e')][_0xd366('0x51')](_0x1d9ce3);})[_0xd366('0x1e')](function(_0x3808c8){_0x52faf9[_0xd366('0x52')]=_0x3808c8;return _0x52faf9;})[_0xd366('0x1e')](respondWithFilteredResult(_0xf83362,_0x1d9ce3))[_0xd366('0x29')](handleError(_0xf83362,null));};exports[_0xd366('0x53')]=function(_0x3a6d28,_0x30a695){var _0x35ada2={'raw':!![],'where':{'id':_0x3a6d28[_0xd366('0x54')]['id']}},_0x5489c9={};_0x5489c9[_0xd366('0x41')]=_[_0xd366('0x43')](db[_0xd366('0x3e')][_0xd366('0x3f')]);_0x5489c9[_0xd366('0x42')]=_['keys'](_0x3a6d28['query']);_0x5489c9[_0xd366('0x49')]=_[_0xd366('0x55')](_0x5489c9[_0xd366('0x41')],_0x5489c9[_0xd366('0x42')]);_0x35ada2[_0xd366('0x44')]=_[_0xd366('0x55')](_0x5489c9[_0xd366('0x41')],qs['fields'](_0x3a6d28[_0xd366('0x42')]['fields']));_0x35ada2['attributes']=_0x35ada2[_0xd366('0x44')][_0xd366('0x56')]?_0x35ada2[_0xd366('0x44')]:_0x5489c9[_0xd366('0x41')];if(_0x3a6d28[_0xd366('0x42')]['includeAll']){_0x35ada2['include']=[{'all':!![]}];}_0x35ada2=_[_0xd366('0x4c')]({},_0x35ada2,_0x3a6d28[_0xd366('0x50')]);return db[_0xd366('0x3e')][_0xd366('0x57')](_0x35ada2)['then'](handleEntityNotFound(_0x30a695,null))[_0xd366('0x1e')](respondWithResult(_0x30a695,null))[_0xd366('0x29')](handleError(_0x30a695,null));};exports[_0xd366('0x58')]=function(_0x113237,_0x2989e1){return db['ChatQueue'][_0xd366('0x58')](_0x113237[_0xd366('0x59')],{})[_0xd366('0x1e')](function(_0x7e8d78){var _0x37eeaa=_0x113237[_0xd366('0x5a')][_0xd366('0x36')]({'plain':!![]});if(!_0x37eeaa)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x37eeaa[_0xd366('0x5b')]===_0xd366('0x5a')){var _0x22c9bb=_0x7e8d78[_0xd366('0x36')]({'plain':!![]});var _0x57b986=_0xd366('0x37');return db[_0xd366('0x5c')][_0xd366('0x57')]({'where':{'name':_0x57b986,'userProfileId':_0x37eeaa[_0xd366('0x5d')]},'raw':!![]})[_0xd366('0x1e')](function(_0x4864ae){if(_0x4864ae&&_0x4864ae[_0xd366('0x5e')]===0x0){return db[_0xd366('0x38')]['create']({'name':_0x22c9bb[_0xd366('0x3a')],'resourceId':_0x22c9bb['id'],'type':_0x4864ae['name'],'sectionId':_0x4864ae['id']},{})[_0xd366('0x1e')](function(){return _0x7e8d78;});}else{return _0x7e8d78;}})['catch'](function(_0x33aaef){logger[_0xd366('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x33aaef);throw _0x33aaef;});}return _0x7e8d78;})[_0xd366('0x1e')](respondWithResult(_0x2989e1,0xc9))['catch'](handleError(_0x2989e1,null));};exports[_0xd366('0x35')]=function(_0x39d7ff,_0x56a619){if(_0x39d7ff['body']['id']){delete _0x39d7ff[_0xd366('0x59')]['id'];}return db['ChatQueue'][_0xd366('0x57')]({'where':{'id':_0x39d7ff[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x56a619,null))[_0xd366('0x1e')](saveUpdates(_0x39d7ff[_0xd366('0x59')],null))[_0xd366('0x1e')](respondWithResult(_0x56a619,null))['catch'](handleError(_0x56a619,null));};exports[_0xd366('0x5f')]=function(_0xf5a12c,_0x1e36c6){return db['ChatQueue'][_0xd366('0x57')]({'where':{'id':_0xf5a12c['params']['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x1e36c6,null))[_0xd366('0x1e')](removeEntity(_0x1e36c6,null))[_0xd366('0x29')](handleError(_0x1e36c6,null));};exports[_0xd366('0x60')]=function(_0x569735,_0x1d5e7e){return db[_0xd366('0x3e')][_0xd366('0x60')]()[_0xd366('0x1e')](respondWithResult(_0x1d5e7e,null))[_0xd366('0x29')](handleError(_0x1d5e7e,null));};exports[_0xd366('0x61')]=function(_0x52da23,_0x6a2f98,_0x34052b){var _0x25c8ca={'raw':!![],'where':{}},_0x32fe20={},_0x55efce;return db[_0xd366('0x3e')][_0xd366('0x62')]({'where':{'id':_0x52da23[_0xd366('0x54')]['id']}})['then'](handleEntityNotFound(_0x6a2f98,null))['then'](function(_0x243dfd){if(_0x243dfd){_0x55efce=_0x243dfd[_0xd366('0x36')]({'plain':!![]});_0x32fe20[_0xd366('0x41')]=_[_0xd366('0x43')](db[_0xd366('0x63')][_0xd366('0x3f')]);_0x32fe20['query']=_[_0xd366('0x43')](_0x52da23['query']);_0x32fe20['filters']=_[_0xd366('0x55')](_0x32fe20[_0xd366('0x41')],_0x32fe20[_0xd366('0x42')]);_0x25c8ca[_0xd366('0x44')]=_[_0xd366('0x55')](_0x32fe20['model'],qs[_0xd366('0x45')](_0x52da23['query'][_0xd366('0x45')]));_0x25c8ca[_0xd366('0x44')]=_0x25c8ca[_0xd366('0x44')]['length']?_0x25c8ca['attributes']:_0x32fe20[_0xd366('0x41')];if(!_0x52da23['query'][_0xd366('0x64')]('nolimit')){_0x25c8ca[_0xd366('0x2f')]=qs[_0xd366('0x2f')](_0x52da23[_0xd366('0x42')]['limit']);_0x25c8ca[_0xd366('0x31')]=qs[_0xd366('0x31')](_0x52da23[_0xd366('0x42')][_0xd366('0x31')]);}_0x25c8ca['order']=qs['sort'](_0x52da23[_0xd366('0x42')]['sort']);_0x25c8ca[_0xd366('0x4d')]=qs[_0xd366('0x49')](_[_0xd366('0x4a')](_0x52da23[_0xd366('0x42')],_0x32fe20[_0xd366('0x49')]));_0x25c8ca[_0xd366('0x4d')][_0xd366('0x65')]=_0x243dfd['id'];if(_0x52da23[_0xd366('0x42')][_0xd366('0x4b')]){_0x25c8ca[_0xd366('0x4d')]=_['merge'](_0x25c8ca[_0xd366('0x4d')],{'$or':_[_0xd366('0x3d')](_0x25c8ca['attributes'],function(_0x45cae5){var _0x4fcc7d={};_0x4fcc7d[_0x45cae5]={'$like':'%'+_0x52da23['query']['filter']+'%'};return _0x4fcc7d;})});}_0x25c8ca=_[_0xd366('0x4c')]({},_0x25c8ca,_0x52da23[_0xd366('0x50')]);return db[_0xd366('0x63')][_0xd366('0x51')](_0x25c8ca);}})[_0xd366('0x1e')](function(_0x30072f){if(_0x30072f){return db['User'][_0xd366('0x66')]({'where':{'id':_[_0xd366('0x3d')](_0x30072f,'UserId'),'role':_0xd366('0x67')},'attributes':['id',_0xd366('0x3a'),_0xd366('0x68'),'updatedAt',_0xd366('0x69')]});}})[_0xd366('0x1e')](function(_0x112ca0){if(_0x112ca0){return{'count':_0x112ca0[_0xd366('0x30')],'rows':_['map'](_0x112ca0[_0xd366('0x52')],function(_0x326240){return{'membername':_0x326240[_0xd366('0x3a')],'UserId':_0x326240['id'],'queue_name':_0x55efce[_0xd366('0x3a')],'ChatQueueId':_0x55efce['id'],'interface':util[_0xd366('0x6a')](_0xd366('0x6b'),_0xd366('0x6c'),_0x326240[_0xd366('0x3a')]),'penalty':0x0,'paused':_0x326240[_0xd366('0x68')],'createdAt':_0x326240[_0xd366('0x69')],'updatedAt':_0x326240[_0xd366('0x6d')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x6a2f98,_0x25c8ca))['catch'](handleError(_0x6a2f98,null));};exports[_0xd366('0x6e')]=function(_0x59e906,_0x2835b3,_0x55f91e){var _0x4721c3={};var _0x521470={};var _0x49784b;var _0x23cb8a;return db[_0xd366('0x3e')][_0xd366('0x62')]({'where':{'id':_0x59e906[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x2835b3,null))[_0xd366('0x1e')](function(_0x4e11db){if(_0x4e11db){_0x49784b=_0x4e11db;_0x521470[_0xd366('0x41')]=_['keys'](db[_0xd366('0x6f')][_0xd366('0x3f')]);_0x521470[_0xd366('0x42')]=_[_0xd366('0x43')](_0x59e906[_0xd366('0x42')]);_0x521470['filters']=_[_0xd366('0x55')](_0x521470[_0xd366('0x41')],_0x521470[_0xd366('0x42')]);_0x4721c3['attributes']=_[_0xd366('0x55')](_0x521470[_0xd366('0x41')],qs[_0xd366('0x45')](_0x59e906[_0xd366('0x42')][_0xd366('0x45')]));_0x4721c3[_0xd366('0x44')]=_0x4721c3[_0xd366('0x44')][_0xd366('0x56')]?_0x4721c3[_0xd366('0x44')]:_0x521470[_0xd366('0x41')];_0x4721c3[_0xd366('0x47')]=qs[_0xd366('0x48')](_0x59e906[_0xd366('0x42')][_0xd366('0x48')]);_0x4721c3['where']=qs[_0xd366('0x49')](_[_0xd366('0x4a')](_0x59e906[_0xd366('0x42')],_0x521470[_0xd366('0x49')]));if(_0x59e906[_0xd366('0x42')]['filter']){_0x4721c3[_0xd366('0x4d')]=_[_0xd366('0x4c')](_0x4721c3[_0xd366('0x4d')],{'$or':_['map'](_0x4721c3[_0xd366('0x44')],function(_0x164136){var _0x453d8b={};_0x453d8b[_0x164136]={'$like':'%'+_0x59e906[_0xd366('0x42')][_0xd366('0x4b')]+'%'};return _0x453d8b;})});}_0x4721c3=_[_0xd366('0x4c')]({},_0x4721c3,_0x59e906['options']);return _0x49784b[_0xd366('0x6e')](_0x4721c3);}})[_0xd366('0x1e')](function(_0xa42738){if(_0xa42738){_0x23cb8a=_0xa42738[_0xd366('0x56')];if(!_0x59e906[_0xd366('0x42')][_0xd366('0x64')]('nolimit')){_0x4721c3[_0xd366('0x2f')]=qs['limit'](_0x59e906[_0xd366('0x42')]['limit']);_0x4721c3['offset']=qs[_0xd366('0x31')](_0x59e906[_0xd366('0x42')][_0xd366('0x31')]);}return _0x49784b['getTeams'](_0x4721c3);}})[_0xd366('0x1e')](function(_0x39a121){if(_0x39a121){return _0x39a121?{'count':_0x23cb8a,'rows':_0x39a121}:null;}})[_0xd366('0x1e')](respondWithResult(_0x2835b3,null))[_0xd366('0x29')](handleError(_0x2835b3,null));};exports[_0xd366('0x70')]=function(_0x358c61,_0xd07b1b,_0x1ca634){var _0x5f090c=_0x358c61[_0xd366('0x59')][_0xd366('0x71')];return db[_0xd366('0x6f')]['findAll']({'where':{'id':_0x5f090c},'attributes':['id'],'include':[{'model':db[_0xd366('0x72')],'as':_0xd366('0x73'),'attributes':['id',_0xd366('0x3a'),_0xd366('0x74'),_0xd366('0x75'),_0xd366('0x76')],'raw':!![]}]})[_0xd366('0x1e')](function(_0x10c312){if(_0x10c312){var _0xb77302=_[_0xd366('0x77')](_0x10c312,function(_0x184027){var _0x2ef84e=_0x184027[_0xd366('0x36')]({'plain':!![]});return _0x2ef84e[_0xd366('0x73')];});return db[_0xd366('0x3e')][_0xd366('0x57')]({'where':{'id':_0x358c61[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](function(_0x54b69b){return db[_0xd366('0x78')][_0xd366('0x79')](function(_0x4c1a14){return _0x54b69b[_0xd366('0x70')](_0x5f090c,{'transaction':_0x4c1a14})[_0xd366('0x1e')](function(){return BPromise[_0xd366('0x7a')](_0xb77302,function(_0x4f4547){return db['UserChatQueue']['findOrCreate']({'where':{'UserId':_0x4f4547['id'],'ChatQueueId':_0x358c61['params']['id']},'transaction':_0x4c1a14});});})[_0xd366('0x1e')](function(){_0xb77302[_0xd366('0x7b')](function(_0x424c0f){socket[_0xd366('0x7c')]('userChatQueue:save',{'UserId':_0x424c0f['id'],'ChatQueueId':_0x54b69b['id']});});});});});}})[_0xd366('0x1e')](respondWithStatusCode(_0xd07b1b,null))[_0xd366('0x29')](handleError(_0xd07b1b,null));};exports[_0xd366('0x7d')]=function(_0x1f2803,_0x2d2059,_0x5e70f2){return db['Team']['findAll']({'where':{'id':_0x1f2803['query'][_0xd366('0x71')]},'attributes':['id'],'include':[{'model':db[_0xd366('0x72')],'as':_0xd366('0x73'),'attributes':['id'],'raw':!![]}]})[_0xd366('0x1e')](handleEntityNotFound(_0x2d2059,null))[_0xd366('0x1e')](function(_0x2e2420){var _0xbd3158=_[_0xd366('0x3d')](_0x2e2420,'id');var _0x2028dc=[];var _0x5bf04d=[];var _0x1d4d93=squel[_0xd366('0x7e')]();_0x1d4d93[_0xd366('0x7f')](_0xd366('0x80'))[_0xd366('0x81')](_0xd366('0x82'),'tq')[_0xd366('0x83')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xd366('0x4d')](_0xd366('0x84'),_0x1f2803[_0xd366('0x54')]['id']);for(var _0x455441=0x0;_0x455441<_0x2e2420[_0xd366('0x56')];_0x455441+=0x1){let _0x5a30cd=_0x2e2420[_0x455441];for(var _0x14aa71=0x0;_0x14aa71<_0x5a30cd[_0xd366('0x73')][_0xd366('0x56')];_0x14aa71+=0x1){let _0x151dc9=_0x5a30cd[_0xd366('0x73')][_0x14aa71];var _0x5b63a2=_0x1d4d93[_0xd366('0x85')]();_0x5b63a2['where'](_0xd366('0x86'),_0x151dc9['id']);_0x5bf04d[_0xd366('0x87')](db[_0xd366('0x78')]['query'](_0x5b63a2['toString'](),{'type':db['sequelize'][_0xd366('0x88')][_0xd366('0x89')]})['then'](function(_0xf1b546){if(_0xf1b546[_0xd366('0x56')]===0x1){return _0x151dc9['id'];}else{var _0x5e8147=_[_0xd366('0x8a')](_[_0xd366('0x3d')](_0xf1b546,_0xd366('0x8b')),function(_0x2650ed){return _['includes'](_0xbd3158,_0x2650ed);});if(_0x5e8147){return _0x151dc9['id'];}}}));}}return BPromise[_0xd366('0x8c')](_0x5bf04d)[_0xd366('0x1e')](function(_0x73ecc0){_0x2028dc=_(_0x2028dc)[_0xd366('0x8d')](_0x73ecc0)[_0xd366('0x8e')]()['value']();return db[_0xd366('0x3e')][_0xd366('0x57')]({'where':{'id':_0x1f2803[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](function(_0x9519c6){return db[_0xd366('0x78')]['transaction'](function(_0x3a35f9){return _0x9519c6[_0xd366('0x7d')](_0x1f2803[_0xd366('0x42')][_0xd366('0x71')],{'transaction':_0x3a35f9})[_0xd366('0x1e')](function(){if(!_['isEmpty'](_0x2028dc)){return _0x9519c6[_0xd366('0x8f')](_0x2028dc,{'transaction':_0x3a35f9});}})[_0xd366('0x1e')](function(){_0x2028dc[_0xd366('0x7b')](function(_0x152204){socket['emit']('userChatQueue:remove',{'UserId':_0x152204,'ChatQueueId':_0x9519c6['id']});});});});});});})[_0xd366('0x1e')](respondWithStatusCode(_0x2d2059,null))[_0xd366('0x29')](handleError(_0x2d2059,null));};exports[_0xd366('0x90')]=function(_0x2fe28e,_0x47f43e,_0x5c5591){return db[_0xd366('0x3e')][_0xd366('0x57')]({'where':{'id':_0x2fe28e[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x47f43e,null))[_0xd366('0x1e')](function(_0x1e5f48){if(_0x1e5f48){return _0x1e5f48[_0xd366('0x90')](_0x2fe28e[_0xd366('0x59')]['ids'],_[_0xd366('0x91')](_0x2fe28e['body'],['ids','id'])||{})[_0xd366('0x92')](function(_0x60cdfb){for(var _0x55b965=0x0;_0x55b965<_0x2fe28e['body'][_0xd366('0x71')]['length'];_0x55b965+=0x1){socket['emit'](_0xd366('0x93'),{'UserId':Number(_0x2fe28e['body']['ids'][_0x55b965]),'ChatQueueId':Number(_0x2fe28e['params']['id'])});}return _0x60cdfb;});}})['then'](respondWithResult(_0x47f43e,null))[_0xd366('0x29')](handleError(_0x47f43e,null));};exports['removeAgents']=function(_0x56c991,_0x3a645b,_0x5cff4f){return db[_0xd366('0x3e')][_0xd366('0x57')]({'where':{'id':_0x56c991[_0xd366('0x54')]['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x3a645b,null))[_0xd366('0x1e')](function(_0x4d42ad){if(_0x4d42ad){return _0x4d42ad[_0xd366('0x8f')](_0x56c991[_0xd366('0x42')][_0xd366('0x71')])['then'](function(){if(_['isArray'](_0x56c991[_0xd366('0x42')]['ids'])){for(var _0x404f50=0x0;_0x404f50<_0x56c991[_0xd366('0x42')][_0xd366('0x71')][_0xd366('0x56')];_0x404f50+=0x1){socket[_0xd366('0x7c')](_0xd366('0x94'),{'UserId':Number(_0x56c991[_0xd366('0x42')]['ids'][_0x404f50]),'ChatQueueId':Number(_0x56c991[_0xd366('0x54')]['id'])});}}else{socket['emit'](_0xd366('0x94'),{'UserId':Number(_0x56c991['query'][_0xd366('0x71')]),'ChatQueueId':Number(_0x56c991[_0xd366('0x54')]['id'])});}});}})[_0xd366('0x1e')](respondWithStatusCode(_0x3a645b,null))[_0xd366('0x29')](handleError(_0x3a645b,null));};exports['getAgents']=function(_0x1181ff,_0x20e486,_0x4d1abb){var _0x1dd055={};var _0x11a3ad={};var _0xb52034;var _0x4cefb2;return db[_0xd366('0x3e')][_0xd366('0x62')]({'where':{'id':_0x1181ff['params']['id']}})[_0xd366('0x1e')](handleEntityNotFound(_0x20e486,null))['then'](function(_0x2de10d){if(_0x2de10d){_0xb52034=_0x2de10d;_0x11a3ad[_0xd366('0x41')]=_['keys'](db[_0xd366('0x72')][_0xd366('0x3f')]);_0x11a3ad[_0xd366('0x42')]=_[_0xd366('0x43')](_0x1181ff[_0xd366('0x42')]);_0x11a3ad['filters']=_[_0xd366('0x55')](_0x11a3ad[_0xd366('0x41')],_0x11a3ad['query']);_0x1dd055['attributes']=_[_0xd366('0x55')](_0x11a3ad[_0xd366('0x41')],qs[_0xd366('0x45')](_0x1181ff[_0xd366('0x42')]['fields']));_0x1dd055[_0xd366('0x44')]=_0x1dd055[_0xd366('0x44')][_0xd366('0x56')]?_0x1dd055[_0xd366('0x44')]:_0x11a3ad[_0xd366('0x41')];_0x1dd055[_0xd366('0x47')]=qs[_0xd366('0x48')](_0x1181ff[_0xd366('0x42')][_0xd366('0x48')]);_0x1dd055[_0xd366('0x4d')]=qs[_0xd366('0x49')](_[_0xd366('0x4a')](_0x1181ff['query'],_0x11a3ad[_0xd366('0x49')]));if(_0x1181ff['query'][_0xd366('0x4b')]){_0x1dd055['where']=_[_0xd366('0x4c')](_0x1dd055[_0xd366('0x4d')],{'$or':_[_0xd366('0x3d')](_0x1dd055[_0xd366('0x44')],function(_0x32fea0){var _0x3fbf2d={};_0x3fbf2d[_0x32fea0]={'$like':'%'+_0x1181ff[_0xd366('0x42')][_0xd366('0x4b')]+'%'};return _0x3fbf2d;})});}_0x1dd055=_[_0xd366('0x4c')]({},_0x1dd055,_0x1181ff[_0xd366('0x50')]);return _0xb52034[_0xd366('0x95')](_0x1dd055);}})['then'](function(_0x18efe6){if(_0x18efe6){_0x4cefb2=_0x18efe6[_0xd366('0x56')];if(!_0x1181ff[_0xd366('0x42')]['hasOwnProperty']('nolimit')){_0x1dd055['limit']=qs[_0xd366('0x2f')](_0x1181ff['query'][_0xd366('0x2f')]);_0x1dd055[_0xd366('0x31')]=qs[_0xd366('0x31')](_0x1181ff[_0xd366('0x42')][_0xd366('0x31')]);}return _0xb52034['getAgents'](_0x1dd055);}})['then'](function(_0x39f8ba){if(_0x39f8ba){return _0x39f8ba?{'count':_0x4cefb2,'rows':_0x39f8ba}:null;}})['then'](respondWithResult(_0x20e486,null))['catch'](handleError(_0x20e486,null));};