Built motion from commit 5b761a7b.|2.5.36
[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 _0xe4bd=['UserProfileResource','destroy','stack','name','ChatQueue','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','show','find','create','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','describe','findOne','nolimit','ChatQueueId','map','UserChatQueue','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','SIP','chatPause','getTeams','Team','length','ids','Agents','online','voicePause','interface','sequelize','addTeams','each','findOrCreate','userChatQueue:save','removeTeams','select','tq.TeamId','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','every','TeamId','includes','all','union','compact','value','transaction','isEmpty','userChatQueue:remove','addAgents','omit','spread','emit','removeAgents','isArray','getAgents','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','client','http','request','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','get'];(function(_0x451bdc,_0x5f616f){var _0x36911b=function(_0x308a03){while(--_0x308a03){_0x451bdc['push'](_0x451bdc['shift']());}};_0x36911b(++_0x5f616f);}(_0xe4bd,0x190));var _0xde4b=function(_0x3c2610,_0x44d089){_0x3c2610=_0x3c2610-0x0;var _0x2aed1c=_0xe4bd[_0x3c2610];return _0x2aed1c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xde4b('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xde4b('0x1'));var rp=require(_0xde4b('0x2'));var moment=require(_0xde4b('0x3'));var BPromise=require(_0xde4b('0x4'));var Mustache=require(_0xde4b('0x5'));var util=require(_0xde4b('0x6'));var path=require('path');var sox=require(_0xde4b('0x7'));var csv=require(_0xde4b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xde4b('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xde4b('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xde4b('0xb'));var Papa=require(_0xde4b('0xc'));var Redis=require(_0xde4b('0xd'));var authService=require(_0xde4b('0xe'));var qs=require(_0xde4b('0xf'));var as=require(_0xde4b('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xde4b('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xde4b('0x12'));var db=require(_0xde4b('0x13'))['db'];config[_0xde4b('0x14')]=_['defaults'](config[_0xde4b('0x14')],{'host':_0xde4b('0x15'),'port':0x18eb});var socket=require(_0xde4b('0x16'))(new Redis(config[_0xde4b('0x14')]));require(_0xde4b('0x17'))[_0xde4b('0x18')](socket);var jayson=require(_0xde4b('0x19'));var client=jayson[_0xde4b('0x1a')][_0xde4b('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x525354,_0x2f5991,_0x45006b,_0x34c1a0){return new BPromise(function(_0x2688ad,_0x2b6b4d){var _0x522da6=_0x34c1a0||client;return _0x522da6[_0xde4b('0x1c')](_0x525354,_0x45006b)['then'](function(_0x34e823){logger[_0xde4b('0x1d')](_0xde4b('0x1e'),_0x2f5991,_0xde4b('0x1f'));logger[_0xde4b('0x20')](_0xde4b('0x21'),_0x2f5991,_0xde4b('0x1f'),JSON[_0xde4b('0x22')](_0x34e823));if(_0x34e823[_0xde4b('0x23')]){if(_0x34e823['error'][_0xde4b('0x24')]===0x1f4){logger[_0xde4b('0x23')](_0xde4b('0x1e'),_0x2f5991,_0x34e823[_0xde4b('0x23')][_0xde4b('0x25')]);return _0x2b6b4d(_0x34e823['error']['message']);}logger[_0xde4b('0x23')]('ChatQueue,\x20%s,\x20%s',_0x2f5991,_0x34e823['error'][_0xde4b('0x25')]);return _0x2688ad(_0x34e823[_0xde4b('0x23')][_0xde4b('0x25')]);}else{logger[_0xde4b('0x1d')](_0xde4b('0x1e'),_0x2f5991,_0xde4b('0x1f'));_0x2688ad(_0x34e823['result']['message']);}})['catch'](function(_0x542f71){logger[_0xde4b('0x23')](_0xde4b('0x1e'),_0x2f5991,_0x542f71);_0x2b6b4d(_0x542f71);});});}function respondWithStatusCode(_0x459595,_0x194b25){_0x194b25=_0x194b25||0xcc;return function(_0x55393b){if(_0x55393b){return _0x459595[_0xde4b('0x26')](_0x194b25);}return _0x459595[_0xde4b('0x27')](_0x194b25)[_0xde4b('0x28')]();};}function respondWithResult(_0x1a884c,_0x286480){_0x286480=_0x286480||0xc8;return function(_0x521577){if(_0x521577){return _0x1a884c[_0xde4b('0x27')](_0x286480)[_0xde4b('0x29')](_0x521577);}};}function respondWithFilteredResult(_0x54443b,_0x7e2bf7){return function(_0x52e47b){if(_0x52e47b){var _0x39b6c5=typeof _0x7e2bf7[_0xde4b('0x2a')]===_0xde4b('0x2b')&&typeof _0x7e2bf7[_0xde4b('0x2c')]===_0xde4b('0x2b');var _0x4aad6f=_0x52e47b[_0xde4b('0x2d')];var _0x58875d=_0x39b6c5?0x0:_0x7e2bf7[_0xde4b('0x2a')];var _0x446a5e=_0x39b6c5?_0x52e47b[_0xde4b('0x2d')]:_0x7e2bf7['offset']+_0x7e2bf7[_0xde4b('0x2c')];var _0x424de5;if(_0x446a5e>=_0x4aad6f){_0x446a5e=_0x4aad6f;_0x424de5=0xc8;}else{_0x424de5=0xce;}_0x54443b['status'](_0x424de5);return _0x54443b[_0xde4b('0x2e')](_0xde4b('0x2f'),_0x58875d+'-'+_0x446a5e+'/'+_0x4aad6f)['json'](_0x52e47b);}return null;};}function patchUpdates(_0x25e13d){return function(_0x58be2e){try{jsonpatch[_0xde4b('0x30')](_0x58be2e,_0x25e13d,!![]);}catch(_0x2d827e){return BPromise[_0xde4b('0x31')](_0x2d827e);}return _0x58be2e['save']();};}function saveUpdates(_0x100cb4,_0x2496fa){return function(_0x20f5c7){if(_0x20f5c7){return _0x20f5c7[_0xde4b('0x32')](_0x100cb4)[_0xde4b('0x33')](function(_0x14f5db){return _0x14f5db;});}return null;};}function removeEntity(_0x4901a3,_0x2def5f){return function(_0x3f3b61){if(_0x3f3b61){return _0x3f3b61['destroy']()['then'](function(){var _0x2650fe=_0x3f3b61[_0xde4b('0x34')]({'plain':!![]});var _0x946536='ChatQueues';return db[_0xde4b('0x35')][_0xde4b('0x36')]({'where':{'type':_0x946536,'resourceId':_0x2650fe['id']}})[_0xde4b('0x33')](function(){return _0x3f3b61;});})[_0xde4b('0x33')](function(){_0x4901a3[_0xde4b('0x27')](0xcc)[_0xde4b('0x28')]();});}};}function handleEntityNotFound(_0x23386b,_0x474d20){return function(_0x3ddf92){if(!_0x3ddf92){_0x23386b['sendStatus'](0x194);}return _0x3ddf92;};}function handleError(_0x48c052,_0x1bce11){_0x1bce11=_0x1bce11||0x1f4;return function(_0x452c0e){logger[_0xde4b('0x23')](_0x452c0e[_0xde4b('0x37')]);if(_0x452c0e[_0xde4b('0x38')]){delete _0x452c0e[_0xde4b('0x38')];}_0x48c052[_0xde4b('0x27')](_0x1bce11)['send'](_0x452c0e);};}exports['index']=function(_0x1dff1e,_0xf9a1be){var _0x3bce7d={},_0x3a716a={},_0x3e2b66={'count':0x0,'rows':[]};var _0x99b1d3=_['map'](db[_0xde4b('0x39')][_0xde4b('0x3a')],function(_0x144571){return{'name':_0x144571[_0xde4b('0x3b')],'type':_0x144571[_0xde4b('0x3c')]['key']};});_0x3a716a[_0xde4b('0x3d')]=_['map'](_0x99b1d3,'name');_0x3a716a[_0xde4b('0x3e')]=_[_0xde4b('0x3f')](_0x1dff1e[_0xde4b('0x3e')]);_0x3a716a[_0xde4b('0x40')]=_[_0xde4b('0x41')](_0x3a716a[_0xde4b('0x3d')],_0x3a716a['query']);_0x3bce7d[_0xde4b('0x42')]=_[_0xde4b('0x41')](_0x3a716a['model'],qs[_0xde4b('0x43')](_0x1dff1e[_0xde4b('0x3e')][_0xde4b('0x43')]));_0x3bce7d[_0xde4b('0x42')]=_0x3bce7d['attributes']['length']?_0x3bce7d[_0xde4b('0x42')]:_0x3a716a[_0xde4b('0x3d')];if(!_0x1dff1e[_0xde4b('0x3e')][_0xde4b('0x44')]('nolimit')){_0x3bce7d[_0xde4b('0x2c')]=qs[_0xde4b('0x2c')](_0x1dff1e[_0xde4b('0x3e')][_0xde4b('0x2c')]);_0x3bce7d[_0xde4b('0x2a')]=qs[_0xde4b('0x2a')](_0x1dff1e[_0xde4b('0x3e')][_0xde4b('0x2a')]);}_0x3bce7d[_0xde4b('0x45')]=qs[_0xde4b('0x46')](_0x1dff1e['query'][_0xde4b('0x46')]);_0x3bce7d[_0xde4b('0x47')]=qs['filters'](_[_0xde4b('0x48')](_0x1dff1e[_0xde4b('0x3e')],_0x3a716a[_0xde4b('0x40')]),_0x99b1d3);if(_0x1dff1e['query']['filter']){_0x3bce7d[_0xde4b('0x47')]=_['merge'](_0x3bce7d[_0xde4b('0x47')],{'$or':_['map'](_0x99b1d3,function(_0x86619){if(_0x86619[_0xde4b('0x3c')]!==_0xde4b('0x49')){var _0x482eb7={};_0x482eb7[_0x86619[_0xde4b('0x38')]]={'$like':'%'+_0x1dff1e['query'][_0xde4b('0x4a')]+'%'};return _0x482eb7;}})});}_0x3bce7d=_[_0xde4b('0x4b')]({},_0x3bce7d,_0x1dff1e[_0xde4b('0x4c')]);var _0xbf673e={'where':_0x3bce7d[_0xde4b('0x47')]};return db[_0xde4b('0x39')]['count'](_0xbf673e)[_0xde4b('0x33')](function(_0x5d3a6a){_0x3e2b66[_0xde4b('0x2d')]=_0x5d3a6a;if(_0x1dff1e['query'][_0xde4b('0x4d')]){_0x3bce7d[_0xde4b('0x4e')]=[{'all':!![]}];}return db[_0xde4b('0x39')][_0xde4b('0x4f')](_0x3bce7d);})[_0xde4b('0x33')](function(_0xa8937b){_0x3e2b66[_0xde4b('0x50')]=_0xa8937b;return _0x3e2b66;})[_0xde4b('0x33')](respondWithFilteredResult(_0xf9a1be,_0x3bce7d))[_0xde4b('0x51')](handleError(_0xf9a1be,null));};exports[_0xde4b('0x52')]=function(_0x33a86c,_0x329759){var _0xfa20c={'raw':!![],'where':{'id':_0x33a86c['params']['id']}},_0x58f436={};_0x58f436[_0xde4b('0x3d')]=_['keys'](db['ChatQueue'][_0xde4b('0x3a')]);_0x58f436[_0xde4b('0x3e')]=_[_0xde4b('0x3f')](_0x33a86c['query']);_0x58f436[_0xde4b('0x40')]=_[_0xde4b('0x41')](_0x58f436['model'],_0x58f436[_0xde4b('0x3e')]);_0xfa20c[_0xde4b('0x42')]=_[_0xde4b('0x41')](_0x58f436[_0xde4b('0x3d')],qs[_0xde4b('0x43')](_0x33a86c['query'][_0xde4b('0x43')]));_0xfa20c[_0xde4b('0x42')]=_0xfa20c[_0xde4b('0x42')]['length']?_0xfa20c[_0xde4b('0x42')]:_0x58f436[_0xde4b('0x3d')];if(_0x33a86c['query'][_0xde4b('0x4d')]){_0xfa20c[_0xde4b('0x4e')]=[{'all':!![]}];}_0xfa20c=_[_0xde4b('0x4b')]({},_0xfa20c,_0x33a86c['options']);return db['ChatQueue'][_0xde4b('0x53')](_0xfa20c)[_0xde4b('0x33')](handleEntityNotFound(_0x329759,null))[_0xde4b('0x33')](respondWithResult(_0x329759,null))[_0xde4b('0x51')](handleError(_0x329759,null));};exports[_0xde4b('0x54')]=function(_0xeaa295,_0x3a37af){return db['ChatQueue'][_0xde4b('0x54')](_0xeaa295['body'],{})['then'](function(_0x23002e){var _0x3cf4a2=_0xeaa295[_0xde4b('0x55')]['get']({'plain':!![]});if(!_0x3cf4a2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3cf4a2[_0xde4b('0x56')]==='user'){var _0x5e3792=_0x23002e['get']({'plain':!![]});var _0x1e08e6='ChatQueues';return db[_0xde4b('0x57')]['find']({'where':{'name':_0x1e08e6,'userProfileId':_0x3cf4a2[_0xde4b('0x58')]},'raw':!![]})[_0xde4b('0x33')](function(_0x564be2){if(_0x564be2&&_0x564be2[_0xde4b('0x59')]===0x0){return db['UserProfileResource'][_0xde4b('0x54')]({'name':_0x5e3792['name'],'resourceId':_0x5e3792['id'],'type':_0x564be2[_0xde4b('0x38')],'sectionId':_0x564be2['id']},{})[_0xde4b('0x33')](function(){return _0x23002e;});}else{return _0x23002e;}})[_0xde4b('0x51')](function(_0x3f863e){logger[_0xde4b('0x23')](_0xde4b('0x5a'),_0x3f863e);throw _0x3f863e;});}return _0x23002e;})['then'](respondWithResult(_0x3a37af,0xc9))['catch'](handleError(_0x3a37af,null));};exports[_0xde4b('0x32')]=function(_0x43fe9e,_0x4963ee){if(_0x43fe9e[_0xde4b('0x5b')]['id']){delete _0x43fe9e[_0xde4b('0x5b')]['id'];}return db['ChatQueue'][_0xde4b('0x53')]({'where':{'id':_0x43fe9e[_0xde4b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x4963ee,null))[_0xde4b('0x33')](saveUpdates(_0x43fe9e[_0xde4b('0x5b')],null))[_0xde4b('0x33')](respondWithResult(_0x4963ee,null))[_0xde4b('0x51')](handleError(_0x4963ee,null));};exports['destroy']=function(_0x356c77,_0x35a6d5){return db[_0xde4b('0x39')][_0xde4b('0x53')]({'where':{'id':_0x356c77['params']['id']}})['then'](handleEntityNotFound(_0x35a6d5,null))[_0xde4b('0x33')](removeEntity(_0x35a6d5,null))[_0xde4b('0x51')](handleError(_0x35a6d5,null));};exports['describe']=function(_0x266a54,_0x13fb7e){return db[_0xde4b('0x39')][_0xde4b('0x5d')]()['then'](respondWithResult(_0x13fb7e,null))[_0xde4b('0x51')](handleError(_0x13fb7e,null));};exports['getMembers']=function(_0xfe0ac,_0x25fb98,_0x5bc63b){var _0x2c2bb3={'raw':!![],'where':{}},_0x28a426={},_0x3b3e8a;return db[_0xde4b('0x39')][_0xde4b('0x5e')]({'where':{'id':_0xfe0ac[_0xde4b('0x5c')]['id']}})[_0xde4b('0x33')](handleEntityNotFound(_0x25fb98,null))[_0xde4b('0x33')](function(_0x295bad){if(_0x295bad){_0x3b3e8a=_0x295bad['get']({'plain':!![]});_0x28a426['model']=_[_0xde4b('0x3f')](db['UserChatQueue'][_0xde4b('0x3a')]);_0x28a426[_0xde4b('0x3e')]=_[_0xde4b('0x3f')](_0xfe0ac[_0xde4b('0x3e')]);_0x28a426[_0xde4b('0x40')]=_['intersection'](_0x28a426[_0xde4b('0x3d')],_0x28a426[_0xde4b('0x3e')]);_0x2c2bb3[_0xde4b('0x42')]=_[_0xde4b('0x41')](_0x28a426[_0xde4b('0x3d')],qs[_0xde4b('0x43')](_0xfe0ac[_0xde4b('0x3e')][_0xde4b('0x43')]));_0x2c2bb3[_0xde4b('0x42')]=_0x2c2bb3[_0xde4b('0x42')]['length']?_0x2c2bb3[_0xde4b('0x42')]:_0x28a426[_0xde4b('0x3d')];if(!_0xfe0ac[_0xde4b('0x3e')][_0xde4b('0x44')](_0xde4b('0x5f'))){_0x2c2bb3[_0xde4b('0x2c')]=qs['limit'](_0xfe0ac['query'][_0xde4b('0x2c')]);_0x2c2bb3['offset']=qs[_0xde4b('0x2a')](_0xfe0ac['query'][_0xde4b('0x2a')]);}_0x2c2bb3[_0xde4b('0x45')]=qs[_0xde4b('0x46')](_0xfe0ac['query'][_0xde4b('0x46')]);_0x2c2bb3['where']=qs[_0xde4b('0x40')](_[_0xde4b('0x48')](_0xfe0ac[_0xde4b('0x3e')],_0x28a426[_0xde4b('0x40')]));_0x2c2bb3[_0xde4b('0x47')][_0xde4b('0x60')]=_0x295bad['id'];if(_0xfe0ac[_0xde4b('0x3e')][_0xde4b('0x4a')]){_0x2c2bb3[_0xde4b('0x47')]=_['merge'](_0x2c2bb3['where'],{'$or':_[_0xde4b('0x61')](_0x2c2bb3[_0xde4b('0x42')],function(_0x59e574){var _0x365e62={};_0x365e62[_0x59e574]={'$like':'%'+_0xfe0ac[_0xde4b('0x3e')][_0xde4b('0x4a')]+'%'};return _0x365e62;})});}_0x2c2bb3=_[_0xde4b('0x4b')]({},_0x2c2bb3,_0xfe0ac[_0xde4b('0x4c')]);return db[_0xde4b('0x62')][_0xde4b('0x4f')](_0x2c2bb3);}})['then'](function(_0x47769c){if(_0x47769c){return db[_0xde4b('0x63')][_0xde4b('0x64')]({'where':{'id':_['map'](_0x47769c,_0xde4b('0x65')),'role':_0xde4b('0x66')},'attributes':['id',_0xde4b('0x38'),'chatPause',_0xde4b('0x67'),_0xde4b('0x68')]});}})[_0xde4b('0x33')](function(_0x296239){if(_0x296239){return{'count':_0x296239[_0xde4b('0x2d')],'rows':_['map'](_0x296239[_0xde4b('0x50')],function(_0x496d19){return{'membername':_0x496d19[_0xde4b('0x38')],'UserId':_0x496d19['id'],'queue_name':_0x3b3e8a['name'],'ChatQueueId':_0x3b3e8a['id'],'interface':util[_0xde4b('0x69')](_0xde4b('0x6a'),_0xde4b('0x6b'),_0x496d19[_0xde4b('0x38')]),'penalty':0x0,'paused':_0x496d19[_0xde4b('0x6c')],'createdAt':_0x496d19[_0xde4b('0x68')],'updatedAt':_0x496d19[_0xde4b('0x67')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xde4b('0x33')](respondWithFilteredResult(_0x25fb98,_0x2c2bb3))[_0xde4b('0x51')](handleError(_0x25fb98,null));};exports[_0xde4b('0x6d')]=function(_0x477368,_0x10e383,_0x127be0){var _0x335aa7={};var _0x2c7e00={};var _0x4a21de;var _0x407ede;return db[_0xde4b('0x39')][_0xde4b('0x5e')]({'where':{'id':_0x477368[_0xde4b('0x5c')]['id']}})[_0xde4b('0x33')](handleEntityNotFound(_0x10e383,null))['then'](function(_0x369993){if(_0x369993){_0x4a21de=_0x369993;_0x2c7e00[_0xde4b('0x3d')]=_[_0xde4b('0x3f')](db[_0xde4b('0x6e')]['rawAttributes']);_0x2c7e00['query']=_[_0xde4b('0x3f')](_0x477368[_0xde4b('0x3e')]);_0x2c7e00[_0xde4b('0x40')]=_['intersection'](_0x2c7e00['model'],_0x2c7e00[_0xde4b('0x3e')]);_0x335aa7[_0xde4b('0x42')]=_[_0xde4b('0x41')](_0x2c7e00[_0xde4b('0x3d')],qs[_0xde4b('0x43')](_0x477368[_0xde4b('0x3e')][_0xde4b('0x43')]));_0x335aa7[_0xde4b('0x42')]=_0x335aa7[_0xde4b('0x42')]['length']?_0x335aa7[_0xde4b('0x42')]:_0x2c7e00[_0xde4b('0x3d')];_0x335aa7[_0xde4b('0x45')]=qs[_0xde4b('0x46')](_0x477368['query'][_0xde4b('0x46')]);_0x335aa7[_0xde4b('0x47')]=qs[_0xde4b('0x40')](_[_0xde4b('0x48')](_0x477368[_0xde4b('0x3e')],_0x2c7e00[_0xde4b('0x40')]));if(_0x477368['query'][_0xde4b('0x4a')]){_0x335aa7['where']=_[_0xde4b('0x4b')](_0x335aa7['where'],{'$or':_[_0xde4b('0x61')](_0x335aa7['attributes'],function(_0x14c0e7){var _0x3c5b0c={};_0x3c5b0c[_0x14c0e7]={'$like':'%'+_0x477368[_0xde4b('0x3e')][_0xde4b('0x4a')]+'%'};return _0x3c5b0c;})});}_0x335aa7=_[_0xde4b('0x4b')]({},_0x335aa7,_0x477368[_0xde4b('0x4c')]);return _0x4a21de[_0xde4b('0x6d')](_0x335aa7);}})[_0xde4b('0x33')](function(_0x356686){if(_0x356686){_0x407ede=_0x356686[_0xde4b('0x6f')];if(!_0x477368[_0xde4b('0x3e')][_0xde4b('0x44')](_0xde4b('0x5f'))){_0x335aa7['limit']=qs[_0xde4b('0x2c')](_0x477368[_0xde4b('0x3e')]['limit']);_0x335aa7[_0xde4b('0x2a')]=qs[_0xde4b('0x2a')](_0x477368[_0xde4b('0x3e')]['offset']);}return _0x4a21de[_0xde4b('0x6d')](_0x335aa7);}})[_0xde4b('0x33')](function(_0x111d7d){if(_0x111d7d){return _0x111d7d?{'count':_0x407ede,'rows':_0x111d7d}:null;}})['then'](respondWithResult(_0x10e383,null))[_0xde4b('0x51')](handleError(_0x10e383,null));};exports['addTeams']=function(_0x28b8d1,_0x16a0f2,_0x19c93e){var _0x171a81=_0x28b8d1[_0xde4b('0x5b')][_0xde4b('0x70')];return db[_0xde4b('0x6e')]['findAll']({'where':{'id':_0x171a81},'attributes':['id'],'include':[{'model':db[_0xde4b('0x63')],'as':_0xde4b('0x71'),'attributes':['id',_0xde4b('0x38'),_0xde4b('0x72'),_0xde4b('0x73'),_0xde4b('0x74')],'raw':!![]}]})[_0xde4b('0x33')](function(_0x23f145){if(_0x23f145){var _0x283fb1=_['flatMap'](_0x23f145,function(_0x3078b0){var _0x30a86b=_0x3078b0[_0xde4b('0x34')]({'plain':!![]});return _0x30a86b[_0xde4b('0x71')];});return db[_0xde4b('0x39')]['find']({'where':{'id':_0x28b8d1['params']['id']}})[_0xde4b('0x33')](function(_0x197795){return db[_0xde4b('0x75')]['transaction'](function(_0x514690){return _0x197795[_0xde4b('0x76')](_0x171a81,{'transaction':_0x514690})['then'](function(){return BPromise[_0xde4b('0x77')](_0x283fb1,function(_0x119ff6){return db[_0xde4b('0x62')][_0xde4b('0x78')]({'where':{'UserId':_0x119ff6['id'],'ChatQueueId':_0x28b8d1[_0xde4b('0x5c')]['id']},'transaction':_0x514690});});})[_0xde4b('0x33')](function(){_0x283fb1['forEach'](function(_0x48600a){socket['emit'](_0xde4b('0x79'),{'UserId':_0x48600a['id'],'ChatQueueId':_0x197795['id']});});});});});}})['then'](respondWithStatusCode(_0x16a0f2,null))['catch'](handleError(_0x16a0f2,null));};exports[_0xde4b('0x7a')]=function(_0x3f7738,_0x5e7d25,_0x2e6ffc){return db['Team'][_0xde4b('0x4f')]({'where':{'id':_0x3f7738[_0xde4b('0x3e')][_0xde4b('0x70')]},'attributes':['id'],'include':[{'model':db[_0xde4b('0x63')],'as':_0xde4b('0x71'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x5e7d25,null))['then'](function(_0x457a90){var _0x5bad62=_[_0xde4b('0x61')](_0x457a90,'id');var _0xca6181=[];var _0x5c8665=[];var _0x4e966a=squel[_0xde4b('0x7b')]();_0x4e966a['field'](_0xde4b('0x7c'))['from']('team_has_chat_queues','tq')[_0xde4b('0x7d')](_0xde4b('0x7e'),'ut',_0xde4b('0x7f'))[_0xde4b('0x47')](_0xde4b('0x80'),_0x3f7738[_0xde4b('0x5c')]['id']);for(var _0x4944ff=0x0;_0x4944ff<_0x457a90['length'];_0x4944ff+=0x1){let _0x4321f=_0x457a90[_0x4944ff];for(var _0x4a6360=0x0;_0x4a6360<_0x4321f['Agents'][_0xde4b('0x6f')];_0x4a6360+=0x1){let _0x398e7d=_0x4321f[_0xde4b('0x71')][_0x4a6360];var _0x177d7d=_0x4e966a[_0xde4b('0x81')]();_0x177d7d['where'](_0xde4b('0x82'),_0x398e7d['id']);_0x5c8665[_0xde4b('0x83')](db[_0xde4b('0x75')]['query'](_0x177d7d[_0xde4b('0x84')](),{'type':db[_0xde4b('0x75')][_0xde4b('0x85')]['SELECT']})[_0xde4b('0x33')](function(_0x3a1f34){if(_0x3a1f34[_0xde4b('0x6f')]===0x1){return _0x398e7d['id'];}else{var _0x5d2450=_[_0xde4b('0x86')](_[_0xde4b('0x61')](_0x3a1f34,_0xde4b('0x87')),function(_0xae4872){return _[_0xde4b('0x88')](_0x5bad62,_0xae4872);});if(_0x5d2450){return _0x398e7d['id'];}}}));}}return BPromise[_0xde4b('0x89')](_0x5c8665)[_0xde4b('0x33')](function(_0x826eeb){_0xca6181=_(_0xca6181)[_0xde4b('0x8a')](_0x826eeb)[_0xde4b('0x8b')]()[_0xde4b('0x8c')]();return db[_0xde4b('0x39')]['find']({'where':{'id':_0x3f7738['params']['id']}})[_0xde4b('0x33')](function(_0x1c5d31){return db[_0xde4b('0x75')][_0xde4b('0x8d')](function(_0x40db38){return _0x1c5d31['removeTeams'](_0x3f7738[_0xde4b('0x3e')]['ids'],{'transaction':_0x40db38})[_0xde4b('0x33')](function(){if(!_[_0xde4b('0x8e')](_0xca6181)){return _0x1c5d31['removeAgents'](_0xca6181,{'transaction':_0x40db38});}})['then'](function(){_0xca6181['forEach'](function(_0x5b23f8){socket['emit'](_0xde4b('0x8f'),{'UserId':_0x5b23f8,'ChatQueueId':_0x1c5d31['id']});});});});});});})['then'](respondWithStatusCode(_0x5e7d25,null))[_0xde4b('0x51')](handleError(_0x5e7d25,null));};exports[_0xde4b('0x90')]=function(_0x3a8974,_0x50e95e,_0x43ec39){return db[_0xde4b('0x39')]['find']({'where':{'id':_0x3a8974['params']['id']}})[_0xde4b('0x33')](handleEntityNotFound(_0x50e95e,null))[_0xde4b('0x33')](function(_0x479d45){if(_0x479d45){return _0x479d45['addAgents'](_0x3a8974[_0xde4b('0x5b')]['ids'],_[_0xde4b('0x91')](_0x3a8974[_0xde4b('0x5b')],[_0xde4b('0x70'),'id'])||{})[_0xde4b('0x92')](function(_0x4f9a60){for(var _0x293248=0x0;_0x293248<_0x3a8974[_0xde4b('0x5b')][_0xde4b('0x70')][_0xde4b('0x6f')];_0x293248+=0x1){socket[_0xde4b('0x93')](_0xde4b('0x79'),{'UserId':Number(_0x3a8974[_0xde4b('0x5b')][_0xde4b('0x70')][_0x293248]),'ChatQueueId':Number(_0x3a8974['params']['id'])});}return _0x4f9a60;});}})[_0xde4b('0x33')](respondWithResult(_0x50e95e,null))[_0xde4b('0x51')](handleError(_0x50e95e,null));};exports[_0xde4b('0x94')]=function(_0x17e96c,_0x115e04,_0x252a67){return db['ChatQueue']['find']({'where':{'id':_0x17e96c[_0xde4b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x115e04,null))[_0xde4b('0x33')](function(_0x243f7e){if(_0x243f7e){return _0x243f7e['removeAgents'](_0x17e96c[_0xde4b('0x3e')][_0xde4b('0x70')])[_0xde4b('0x33')](function(){if(_[_0xde4b('0x95')](_0x17e96c[_0xde4b('0x3e')][_0xde4b('0x70')])){for(var _0x27ee60=0x0;_0x27ee60<_0x17e96c[_0xde4b('0x3e')][_0xde4b('0x70')][_0xde4b('0x6f')];_0x27ee60+=0x1){socket[_0xde4b('0x93')](_0xde4b('0x8f'),{'UserId':Number(_0x17e96c['query'][_0xde4b('0x70')][_0x27ee60]),'ChatQueueId':Number(_0x17e96c['params']['id'])});}}else{socket[_0xde4b('0x93')]('userChatQueue:remove',{'UserId':Number(_0x17e96c['query'][_0xde4b('0x70')]),'ChatQueueId':Number(_0x17e96c[_0xde4b('0x5c')]['id'])});}});}})['then'](respondWithStatusCode(_0x115e04,null))[_0xde4b('0x51')](handleError(_0x115e04,null));};exports[_0xde4b('0x96')]=function(_0x3197a5,_0x3e7b4a,_0x59a5f3){var _0x3e4e37={};var _0x4324f5={};var _0x329461;var _0x2dba33;return db['ChatQueue'][_0xde4b('0x5e')]({'where':{'id':_0x3197a5[_0xde4b('0x5c')]['id']}})['then'](handleEntityNotFound(_0x3e7b4a,null))[_0xde4b('0x33')](function(_0x596f98){if(_0x596f98){_0x329461=_0x596f98;_0x4324f5[_0xde4b('0x3d')]=_[_0xde4b('0x3f')](db[_0xde4b('0x63')][_0xde4b('0x3a')]);_0x4324f5['query']=_[_0xde4b('0x3f')](_0x3197a5['query']);_0x4324f5['filters']=_[_0xde4b('0x41')](_0x4324f5[_0xde4b('0x3d')],_0x4324f5[_0xde4b('0x3e')]);_0x3e4e37[_0xde4b('0x42')]=_[_0xde4b('0x41')](_0x4324f5[_0xde4b('0x3d')],qs['fields'](_0x3197a5[_0xde4b('0x3e')][_0xde4b('0x43')]));_0x3e4e37['attributes']=_0x3e4e37[_0xde4b('0x42')][_0xde4b('0x6f')]?_0x3e4e37[_0xde4b('0x42')]:_0x4324f5[_0xde4b('0x3d')];_0x3e4e37[_0xde4b('0x45')]=qs[_0xde4b('0x46')](_0x3197a5[_0xde4b('0x3e')][_0xde4b('0x46')]);_0x3e4e37['where']=qs[_0xde4b('0x40')](_[_0xde4b('0x48')](_0x3197a5[_0xde4b('0x3e')],_0x4324f5[_0xde4b('0x40')]));if(_0x3197a5[_0xde4b('0x3e')]['filter']){_0x3e4e37['where']=_[_0xde4b('0x4b')](_0x3e4e37[_0xde4b('0x47')],{'$or':_[_0xde4b('0x61')](_0x3e4e37['attributes'],function(_0x48b645){var _0x22b35f={};_0x22b35f[_0x48b645]={'$like':'%'+_0x3197a5[_0xde4b('0x3e')][_0xde4b('0x4a')]+'%'};return _0x22b35f;})});}_0x3e4e37=_[_0xde4b('0x4b')]({},_0x3e4e37,_0x3197a5['options']);return _0x329461[_0xde4b('0x96')](_0x3e4e37);}})[_0xde4b('0x33')](function(_0x5c19d4){if(_0x5c19d4){_0x2dba33=_0x5c19d4[_0xde4b('0x6f')];if(!_0x3197a5[_0xde4b('0x3e')]['hasOwnProperty'](_0xde4b('0x5f'))){_0x3e4e37[_0xde4b('0x2c')]=qs['limit'](_0x3197a5[_0xde4b('0x3e')][_0xde4b('0x2c')]);_0x3e4e37[_0xde4b('0x2a')]=qs[_0xde4b('0x2a')](_0x3197a5[_0xde4b('0x3e')][_0xde4b('0x2a')]);}return _0x329461['getAgents'](_0x3e4e37);}})[_0xde4b('0x33')](function(_0x1a8798){if(_0x1a8798){return _0x1a8798?{'count':_0x2dba33,'rows':_0x1a8798}:null;}})[_0xde4b('0x33')](respondWithResult(_0x3e7b4a,null))[_0xde4b('0x51')](handleError(_0x3e7b4a,null));};