eef6fbf233db04e99bfe428d1122ae87c0b96baf
[motion2.git] / server / api / team / team.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 _0xd034=['intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','type','VIRTUAL','options','then','findAll','rows','show','includeAll','find','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','Teams','UserProfileSection','autoAssociation','params','body','destroy','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','QueryTypes','SELECT','VoiceQueueId','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','WhatsappQueueId','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','UserProfileResource','send','getQueues','findOne','channel','capitalize','toLowerCase','Queue','order','ValidationError','Unknown\x20channel','ids','isValidChannel','remove','Queues','addAgents','Chat','Mail','Sms','Fax','Whatsapp','Voice','through','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','emit','Queue:save','online','interface','UserVoiceQueueRt','upsert','isNil','format','SIP/%s','all','spread','removeAgents','isArray','Openchannel','Queue:remove','getAgents','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','register','status','end','undefined','limit','count','offset','set','Content-Range','json','reject','save','update','sendStatus','error','stack','name','index','map','Team','rawAttributes','model','query','keys'];(function(_0x4868af,_0x301a12){var _0x5c0a08=function(_0x172b68){while(--_0x172b68){_0x4868af['push'](_0x4868af['shift']());}};_0x5c0a08(++_0x301a12);}(_0xd034,0x67));var _0x4d03=function(_0x4d2f00,_0x4e94d5){_0x4d2f00=_0x4d2f00-0x0;var _0x2d7b7f=_0xd034[_0x4d2f00];return _0x2d7b7f;};'use strict';var emlformat=require(_0x4d03('0x0'));var rimraf=require(_0x4d03('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4d03('0x2'));var rp=require('request-promise');var moment=require(_0x4d03('0x3'));var BPromise=require(_0x4d03('0x4'));var Mustache=require(_0x4d03('0x5'));var util=require(_0x4d03('0x6'));var path=require(_0x4d03('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4d03('0x8'));var fs=require('fs');var fs_extra=require(_0x4d03('0x9'));var _=require(_0x4d03('0xa'));var squel=require(_0x4d03('0xb'));var crypto=require(_0x4d03('0xc'));var jsforce=require(_0x4d03('0xd'));var deskjs=require(_0x4d03('0xe'));var toCsv=require(_0x4d03('0xf'));var querystring=require('querystring');var Papa=require(_0x4d03('0x10'));var Redis=require(_0x4d03('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4d03('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4d03('0x13'))(_0x4d03('0x14'));var utils=require('../../config/utils');var config=require(_0x4d03('0x15'));var licenseUtil=require(_0x4d03('0x16'));var db=require(_0x4d03('0x17'))['db'];config[_0x4d03('0x18')]=_[_0x4d03('0x19')](config['redis'],{'host':_0x4d03('0x1a'),'port':0x18eb});var socket=require(_0x4d03('0x1b'))(new Redis(config[_0x4d03('0x18')]));require(_0x4d03('0x1c'))[_0x4d03('0x1d')](socket);function respondWithStatusCode(_0x423123,_0x3c6f80){_0x3c6f80=_0x3c6f80||0xcc;return function(_0xc2364e){if(_0xc2364e){return _0x423123['sendStatus'](_0x3c6f80);}return _0x423123[_0x4d03('0x1e')](_0x3c6f80)[_0x4d03('0x1f')]();};}function respondWithResult(_0x1b187f,_0x4997df){_0x4997df=_0x4997df||0xc8;return function(_0xb09861){if(_0xb09861){return _0x1b187f[_0x4d03('0x1e')](_0x4997df)['json'](_0xb09861);}};}function respondWithFilteredResult(_0xa9791,_0x3f2a25){return function(_0x56b354){if(_0x56b354){var _0x413450=typeof _0x3f2a25['offset']===_0x4d03('0x20')&&typeof _0x3f2a25[_0x4d03('0x21')]===_0x4d03('0x20');var _0x4f113d=_0x56b354[_0x4d03('0x22')];var _0x570738=_0x413450?0x0:_0x3f2a25[_0x4d03('0x23')];var _0x41b895=_0x413450?_0x56b354[_0x4d03('0x22')]:_0x3f2a25['offset']+_0x3f2a25[_0x4d03('0x21')];var _0x78d8cf;if(_0x41b895>=_0x4f113d){_0x41b895=_0x4f113d;_0x78d8cf=0xc8;}else{_0x78d8cf=0xce;}_0xa9791[_0x4d03('0x1e')](_0x78d8cf);return _0xa9791[_0x4d03('0x24')](_0x4d03('0x25'),_0x570738+'-'+_0x41b895+'/'+_0x4f113d)[_0x4d03('0x26')](_0x56b354);}return null;};}function patchUpdates(_0x35aa5b){return function(_0x3e863f){try{jsonpatch['apply'](_0x3e863f,_0x35aa5b,!![]);}catch(_0x3005a4){return BPromise[_0x4d03('0x27')](_0x3005a4);}return _0x3e863f[_0x4d03('0x28')]();};}function saveUpdates(_0x56d0eb,_0x146ec0){return function(_0x40a097){if(_0x40a097){return _0x40a097[_0x4d03('0x29')](_0x56d0eb)['then'](function(_0x119aeb){return _0x119aeb;});}return null;};}function handleEntityNotFound(_0x76b7f6,_0x2739db){return function(_0x2a0f78){if(!_0x2a0f78){_0x76b7f6[_0x4d03('0x2a')](0x194);}return _0x2a0f78;};}function handleError(_0x1c9919,_0xc27e4f){_0xc27e4f=_0xc27e4f||0x1f4;return function(_0x404f4d){logger[_0x4d03('0x2b')](_0x404f4d[_0x4d03('0x2c')]);if(_0x404f4d['name']){delete _0x404f4d[_0x4d03('0x2d')];}_0x1c9919[_0x4d03('0x1e')](_0xc27e4f)['send'](_0x404f4d);};}exports[_0x4d03('0x2e')]=function(_0x4af5a0,_0x1846a3){var _0x212e43={},_0x3c5415={},_0x127ca1={'count':0x0,'rows':[]};var _0xd5dac1=_[_0x4d03('0x2f')](db[_0x4d03('0x30')][_0x4d03('0x31')],function(_0x2b1840){return{'name':_0x2b1840['fieldName'],'type':_0x2b1840['type']['key']};});_0x3c5415[_0x4d03('0x32')]=_['map'](_0xd5dac1,'name');_0x3c5415[_0x4d03('0x33')]=_[_0x4d03('0x34')](_0x4af5a0[_0x4d03('0x33')]);_0x3c5415['filters']=_[_0x4d03('0x35')](_0x3c5415['model'],_0x3c5415['query']);_0x212e43[_0x4d03('0x36')]=_[_0x4d03('0x35')](_0x3c5415['model'],qs['fields'](_0x4af5a0['query'][_0x4d03('0x37')]));_0x212e43[_0x4d03('0x36')]=_0x212e43[_0x4d03('0x36')][_0x4d03('0x38')]?_0x212e43[_0x4d03('0x36')]:_0x3c5415['model'];if(!_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x39')](_0x4d03('0x3a'))){_0x212e43[_0x4d03('0x21')]=qs[_0x4d03('0x21')](_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x21')]);_0x212e43[_0x4d03('0x23')]=qs[_0x4d03('0x23')](_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x23')]);}_0x212e43['order']=qs[_0x4d03('0x3b')](_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x3b')]);_0x212e43[_0x4d03('0x3c')]=qs[_0x4d03('0x3d')](_['pick'](_0x4af5a0['query'],_0x3c5415[_0x4d03('0x3d')]),_0xd5dac1);if(_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x3e')]){_0x212e43[_0x4d03('0x3c')]=_[_0x4d03('0x3f')](_0x212e43[_0x4d03('0x3c')],{'$or':_[_0x4d03('0x2f')](_0xd5dac1,function(_0x3a71f0){if(_0x3a71f0[_0x4d03('0x40')]!==_0x4d03('0x41')){var _0x30f4ad={};_0x30f4ad[_0x3a71f0['name']]={'$like':'%'+_0x4af5a0[_0x4d03('0x33')][_0x4d03('0x3e')]+'%'};return _0x30f4ad;}})});}_0x212e43=_['merge']({},_0x212e43,_0x4af5a0[_0x4d03('0x42')]);var _0x50e8ef={'where':_0x212e43[_0x4d03('0x3c')]};return db['Team'][_0x4d03('0x22')](_0x50e8ef)[_0x4d03('0x43')](function(_0x2da18f){_0x127ca1[_0x4d03('0x22')]=_0x2da18f;if(_0x4af5a0[_0x4d03('0x33')]['includeAll']){_0x212e43['include']=[{'all':!![]}];}return db[_0x4d03('0x30')][_0x4d03('0x44')](_0x212e43);})[_0x4d03('0x43')](function(_0x16ed5b){_0x127ca1[_0x4d03('0x45')]=_0x16ed5b;return _0x127ca1;})[_0x4d03('0x43')](respondWithFilteredResult(_0x1846a3,_0x212e43))['catch'](handleError(_0x1846a3,null));};exports[_0x4d03('0x46')]=function(_0x2deea9,_0x505c83){var _0x47556b={'raw':![],'where':{'id':_0x2deea9['params']['id']}},_0x10eb41={};_0x10eb41[_0x4d03('0x32')]=_[_0x4d03('0x34')](db[_0x4d03('0x30')][_0x4d03('0x31')]);_0x10eb41['query']=_['keys'](_0x2deea9[_0x4d03('0x33')]);_0x10eb41['filters']=_[_0x4d03('0x35')](_0x10eb41['model'],_0x10eb41['query']);_0x47556b['attributes']=_[_0x4d03('0x35')](_0x10eb41[_0x4d03('0x32')],qs['fields'](_0x2deea9[_0x4d03('0x33')][_0x4d03('0x37')]));_0x47556b[_0x4d03('0x36')]=_0x47556b[_0x4d03('0x36')][_0x4d03('0x38')]?_0x47556b[_0x4d03('0x36')]:_0x10eb41[_0x4d03('0x32')];if(_0x2deea9[_0x4d03('0x33')][_0x4d03('0x47')]){_0x47556b['include']=[{'all':!![]}];}_0x47556b=_['merge']({},_0x47556b,_0x2deea9[_0x4d03('0x42')]);return db[_0x4d03('0x30')][_0x4d03('0x48')](_0x47556b)[_0x4d03('0x43')](handleEntityNotFound(_0x505c83,null))[_0x4d03('0x43')](respondWithResult(_0x505c83,null))[_0x4d03('0x49')](handleError(_0x505c83,null));};exports[_0x4d03('0x4a')]=function(_0x4cd932,_0x2c5edc){return db[_0x4d03('0x30')][_0x4d03('0x4a')](_0x4cd932['body'],{})[_0x4d03('0x43')](function(_0x3939e6){var _0xe330=_0x4cd932['user'][_0x4d03('0x4b')]({'plain':!![]});if(!_0xe330)throw new Error(_0x4d03('0x4c'));if(_0xe330['role']===_0x4d03('0x4d')){var _0x42afa2=_0x3939e6[_0x4d03('0x4b')]({'plain':!![]});var _0x350333=_0x4d03('0x4e');return db[_0x4d03('0x4f')][_0x4d03('0x48')]({'where':{'name':_0x350333,'userProfileId':_0xe330['userProfileId']},'raw':!![]})[_0x4d03('0x43')](function(_0x26f387){if(_0x26f387&&_0x26f387[_0x4d03('0x50')]===0x0){return db['UserProfileResource'][_0x4d03('0x4a')]({'name':_0x42afa2['name'],'resourceId':_0x42afa2['id'],'type':_0x26f387[_0x4d03('0x2d')],'sectionId':_0x26f387['id']},{})['then'](function(){return _0x3939e6;});}else{return _0x3939e6;}})['catch'](function(_0x3871ae){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3871ae);throw _0x3871ae;});}return _0x3939e6;})['then'](respondWithResult(_0x2c5edc,0xc9))[_0x4d03('0x49')](handleError(_0x2c5edc,null));};exports['update']=function(_0x4b983f,_0x189815){if(_0x4b983f['body']['id']){delete _0x4b983f['body']['id'];}return db['Team'][_0x4d03('0x48')]({'where':{'id':_0x4b983f[_0x4d03('0x51')]['id']}})[_0x4d03('0x43')](handleEntityNotFound(_0x189815,null))[_0x4d03('0x43')](saveUpdates(_0x4b983f[_0x4d03('0x52')],null))[_0x4d03('0x43')](respondWithResult(_0x189815,null))[_0x4d03('0x49')](handleError(_0x189815,null));};exports[_0x4d03('0x53')]=function(_0x579a9c,_0x24ff9b){var _0x1f5f49=_0x579a9c[_0x4d03('0x51')]['id'];var _0x3f3509=[];return db[_0x4d03('0x54')][_0x4d03('0x55')](function(_0x2cee83){var _0x45320d=_0x4d03('0x56')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0x45320d,{'type':db[_0x4d03('0x57')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x2cee83})[_0x4d03('0x43')](function(_0x207e19){_0x3f3509=_[_0x4d03('0x2f')](_0x207e19,function(_0x16adec){return Number(_0x16adec[_0x4d03('0x58')]);});})['then'](function(){var _0x5472b8=_0x4d03('0x59')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0x5472b8,{'type':db['Sequelize'][_0x4d03('0x5a')][_0x4d03('0x5b')],'raw':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x1e33de){var _0x4e3e1e=_[_0x4d03('0x2f')](_0x1e33de,function(_0x5c73c1){return Number(_0x5c73c1[_0x4d03('0x5c')]);});return db[_0x4d03('0x5d')][_0x4d03('0x53')]({'where':{'UserId':{'$in':_0x3f3509},'VoiceQueueId':{'$in':_0x4e3e1e}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){var _0x568e7d=_0x4d03('0x5e')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0x568e7d,{'type':db[_0x4d03('0x57')][_0x4d03('0x5a')][_0x4d03('0x5b')],'raw':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x54e341){var _0x1140f0=_['map'](_0x54e341,function(_0x51da9b){return Number(_0x51da9b[_0x4d03('0x5f')]);});return db[_0x4d03('0x60')][_0x4d03('0x53')]({'where':{'UserId':{'$in':_0x3f3509},'MailQueueId':{'$in':_0x1140f0}},'transaction':_0x2cee83});})['then'](function(){var _0xeddb82=_0x4d03('0x61')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0xeddb82,{'type':db[_0x4d03('0x57')][_0x4d03('0x5a')][_0x4d03('0x5b')],'raw':!![],'transaction':_0x2cee83});})['then'](function(_0x4a4c06){var _0x3920f4=_[_0x4d03('0x2f')](_0x4a4c06,function(_0x2345a9){return Number(_0x2345a9[_0x4d03('0x62')]);});return db[_0x4d03('0x63')]['destroy']({'where':{'UserId':{'$in':_0x3f3509},'SmsQueueId':{'$in':_0x3920f4}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){var _0x148dc2=_0x4d03('0x64')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0x148dc2,{'type':db[_0x4d03('0x57')][_0x4d03('0x5a')][_0x4d03('0x5b')],'raw':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x245a14){var _0x5db9cd=_[_0x4d03('0x2f')](_0x245a14,function(_0x361a47){return Number(_0x361a47[_0x4d03('0x65')]);});return db[_0x4d03('0x66')]['destroy']({'where':{'UserId':{'$in':_0x3f3509},'ChatQueueId':{'$in':_0x5db9cd}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){var _0x3995ce=_0x4d03('0x67')+_0x1f5f49;return db[_0x4d03('0x54')][_0x4d03('0x33')](_0x3995ce,{'type':db[_0x4d03('0x57')][_0x4d03('0x5a')][_0x4d03('0x5b')],'raw':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x502c31){var _0x1452ba=_[_0x4d03('0x2f')](_0x502c31,function(_0xb95c6e){return Number(_0xb95c6e[_0x4d03('0x68')]);});return db['UserFaxQueue'][_0x4d03('0x53')]({'where':{'UserId':{'$in':_0x3f3509},'FaxQueueId':{'$in':_0x1452ba}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){var _0x4d773d=_0x4d03('0x69')+_0x1f5f49;return db[_0x4d03('0x54')]['query'](_0x4d773d,{'type':db[_0x4d03('0x57')]['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x2cee83});})['then'](function(_0x144b82){var _0x26dd2a=_[_0x4d03('0x2f')](_0x144b82,function(_0x13a21c){return Number(_0x13a21c[_0x4d03('0x6a')]);});return db[_0x4d03('0x6b')]['destroy']({'where':{'UserId':{'$in':_0x3f3509},'OpenchannelQueueId':{'$in':_0x26dd2a}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){var _0x2e7b11='SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20'+_0x1f5f49;return db['sequelize']['query'](_0x2e7b11,{'type':db['Sequelize'][_0x4d03('0x5a')]['SELECT'],'raw':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x33cd7f){var _0x180f0f=_[_0x4d03('0x2f')](_0x33cd7f,function(_0xad2612){return Number(_0xad2612[_0x4d03('0x6c')]);});return db['UserWhatsappQueue'][_0x4d03('0x53')]({'where':{'UserId':{'$in':_0x3f3509},'WhatsappQueueId':{'$in':_0x180f0f}},'transaction':_0x2cee83});})[_0x4d03('0x43')](function(){return db[_0x4d03('0x6d')]['find']({'where':{'TeamId':_0x1f5f49}});})[_0x4d03('0x43')](function(_0x394367){if(_0x394367===null){return;}return db[_0x4d03('0x6e')][_0x4d03('0x53')]({'where':{'UserId':{'$in':_0x3f3509},'VoicePrefixId':_0x394367[_0x4d03('0x6f')]},'transaction':_0x2cee83});})['then'](function(){return db[_0x4d03('0x30')][_0x4d03('0x53')]({'where':{'id':_0x1f5f49},'cascade':!![],'transaction':_0x2cee83});})[_0x4d03('0x43')](function(_0x52e592){if(_0x52e592===0x0){_0x24ff9b[_0x4d03('0x2a')](0x194);}else{return db[_0x4d03('0x70')][_0x4d03('0x53')]({'where':{'type':'Teams','resourceId':_0x1f5f49},'cascade':!![],'transaction':_0x2cee83})[_0x4d03('0x43')](function(){_0x24ff9b['status'](0xcc)[_0x4d03('0x1f')]();});}})['catch'](function(_0x3bd7ab){_0x24ff9b[_0x4d03('0x1e')](0x1f4)[_0x4d03('0x71')](_0x3bd7ab);});});};exports[_0x4d03('0x72')]=function(_0x410519,_0x1b3956,_0x4f61c8){return db['Team'][_0x4d03('0x73')]({'where':{'id':_0x410519[_0x4d03('0x51')]['id']}})[_0x4d03('0x43')](handleEntityNotFound(_0x1b3956,null))[_0x4d03('0x43')](function(_0x455118){if(!_0x410519['query'][_0x4d03('0x74')]||!utils['isValidChannel'](_0x410519[_0x4d03('0x33')]['channel'])){throw new db[(_0x4d03('0x57'))]['ValidationError']('Unknown\x20channel');}var _0x4f5792={};var _0x551150={};_0x551150[_0x4d03('0x32')]=_[_0x4d03('0x34')](db[_[_0x4d03('0x75')](_0x410519[_0x4d03('0x33')][_0x4d03('0x74')][_0x4d03('0x76')]())+_0x4d03('0x77')][_0x4d03('0x31')]);_0x551150['query']=_[_0x4d03('0x34')](_0x410519[_0x4d03('0x33')]);_0x551150[_0x4d03('0x3d')]=_[_0x4d03('0x35')](_0x551150[_0x4d03('0x32')],_0x551150[_0x4d03('0x33')]);_0x4f5792['attributes']=_[_0x4d03('0x35')](_0x551150['model'],qs[_0x4d03('0x37')](_0x410519[_0x4d03('0x33')]['fields']));_0x4f5792[_0x4d03('0x36')]=_0x4f5792[_0x4d03('0x36')][_0x4d03('0x38')]?_0x4f5792[_0x4d03('0x36')]:_0x551150['model'];_0x4f5792[_0x4d03('0x21')]=qs[_0x4d03('0x21')](_0x410519[_0x4d03('0x33')][_0x4d03('0x21')]);_0x4f5792['offset']=qs[_0x4d03('0x23')](_0x410519[_0x4d03('0x33')][_0x4d03('0x23')]);_0x4f5792[_0x4d03('0x78')]=qs[_0x4d03('0x3b')](_0x410519[_0x4d03('0x33')][_0x4d03('0x3b')]);_0x4f5792[_0x4d03('0x3c')]=qs[_0x4d03('0x3d')](_['pick'](_0x410519[_0x4d03('0x33')],_0x551150[_0x4d03('0x3d')]));_0x4f5792=_[_0x4d03('0x3f')]({},_0x4f5792,_0x410519[_0x4d03('0x42')]);return _0x455118['get'+_['capitalize'](_0x410519[_0x4d03('0x33')][_0x4d03('0x74')][_0x4d03('0x76')]())+'Queues'](_0x4f5792);})[_0x4d03('0x43')](respondWithResult(_0x1b3956,null))[_0x4d03('0x49')](handleError(_0x1b3956,null));};exports['addQueues']=function(_0x175a88,_0x173af6,_0x2f236c){return db[_0x4d03('0x30')][_0x4d03('0x73')]({'where':{'id':_0x175a88[_0x4d03('0x51')]['id']}})[_0x4d03('0x43')](function(_0x5c4c54){if(_0x5c4c54){if(!_0x175a88[_0x4d03('0x52')]['channel']||!utils['isValidChannel'](_0x175a88[_0x4d03('0x52')]['channel'])){throw new db['Sequelize'][(_0x4d03('0x79'))](_0x4d03('0x7a'));}return _0x5c4c54['add'+_['capitalize'](_0x175a88['body']['channel'][_0x4d03('0x76')]())+'Queues'](_0x175a88['body'][_0x4d03('0x7b')]);}return null;})[_0x4d03('0x43')](handleEntityNotFound(_0x173af6,null))[_0x4d03('0x43')](respondWithStatusCode(_0x173af6,null))[_0x4d03('0x49')](handleError(_0x173af6,null));};exports['removeQueues']=function(_0x557c35,_0x38400e,_0x13c6c1){return db['Team'][_0x4d03('0x73')]({'where':{'id':_0x557c35['params']['id']}})[_0x4d03('0x43')](function(_0x479d1e){if(_0x479d1e){if(!_0x557c35[_0x4d03('0x33')][_0x4d03('0x74')]||!utils[_0x4d03('0x7c')](_0x557c35[_0x4d03('0x33')][_0x4d03('0x74')])){throw new db[(_0x4d03('0x57'))][(_0x4d03('0x79'))](_0x4d03('0x7a'));}return _0x479d1e[_0x4d03('0x7d')+_['capitalize'](_0x557c35[_0x4d03('0x33')][_0x4d03('0x74')][_0x4d03('0x76')]())+_0x4d03('0x7e')](_0x557c35[_0x4d03('0x33')][_0x4d03('0x7b')]);}return null;})[_0x4d03('0x43')](handleEntityNotFound(_0x38400e,null))['then'](respondWithStatusCode(_0x38400e,null))[_0x4d03('0x49')](handleError(_0x38400e,null));};exports[_0x4d03('0x7f')]=function(_0xe1270a,_0x2447f4){var _0x12535f=_['isArray'](_0xe1270a[_0x4d03('0x52')]['ids'])?_0xe1270a[_0x4d03('0x52')][_0x4d03('0x7b')]:[_0xe1270a[_0x4d03('0x52')][_0x4d03('0x7b')]];var _0x184c07=_0xe1270a['params']['id'];return db[_0x4d03('0x30')][_0x4d03('0x48')]({'where':{'id':_0x184c07}})[_0x4d03('0x43')](handleEntityNotFound(_0x2447f4,null))['then'](function(_0x45c7d9){if(_0x45c7d9){var _0x513b7f=['Voice',_0x4d03('0x80'),_0x4d03('0x81'),_0x4d03('0x82'),_0x4d03('0x83'),'Openchannel',_0x4d03('0x84')];return db[_0x4d03('0x54')][_0x4d03('0x55')](function(_0x3f4caa){var _0x304150=_['map'](_0x513b7f,function(_0x26d48f){var _0x555ba0={'attributes':['id','name']};if(_0x26d48f===_0x4d03('0x85')){_0x555ba0[_0x4d03('0x86')]={'attributes':[_0x4d03('0x87')]};}return _0x45c7d9[_0x4d03('0x4b')+_0x26d48f+'Queues'](_0x555ba0)[_0x4d03('0x43')](function(_0x150322){var _0x2d90ea=_[_0x4d03('0x2f')](_0x150322,function(_0x196f6c){var _0xea39c3=_[_0x4d03('0x2f')](_0x12535f,function(_0x2d43bd){var _0x541e75={'where':{'UserId':_0x2d43bd,[_0x26d48f+_0x4d03('0x88')]:_0x196f6c['id']},'transaction':_0x3f4caa};if(_0x26d48f===_0x4d03('0x85')){_0x541e75[_0x4d03('0x19')]={'penalty':_0x196f6c[_0x4d03('0x89')][_0x4d03('0x87')]};}return db[_0x4d03('0x8a')+_0x26d48f+'Queue'][_0x4d03('0x8b')](_0x541e75)[_0x4d03('0x43')](function(){socket[_0x4d03('0x8c')](_0x4d03('0x4d')+_0x26d48f+_0x4d03('0x8d'),{'UserId':_0x2d43bd,[_0x26d48f+'QueueId']:_0x196f6c['id']});if(_0x26d48f!==_0x4d03('0x85')){return;}return db[_0x4d03('0x8a')]['findAll']({'where':{'id':_0x12535f,'online':0x1},'attributes':['id',_0x4d03('0x2d'),_0x4d03('0x8e'),'voicePause',_0x4d03('0x8f')],'raw':!![]})[_0x4d03('0x43')](function(_0x4460fd){var _0x4c4aeb=_[_0x4d03('0x2f')](_0x4460fd,function(_0x44fdcb){return db[_0x4d03('0x90')][_0x4d03('0x91')]({'membername':_0x44fdcb['name'],'UserId':_0x44fdcb['id'],'queue_name':_0x196f6c[_0x4d03('0x2d')],'VoiceQueueId':_0x196f6c['id'],'interface':_[_0x4d03('0x92')](_0x44fdcb['interface'])?util[_0x4d03('0x93')](_0x4d03('0x94'),_0x44fdcb[_0x4d03('0x2d')]):_0x44fdcb['interface'],'paused':_0x44fdcb['voicePause']||![],'penalty':_0x196f6c[_0x4d03('0x89')][_0x4d03('0x87')]},{'transaction':_0x3f4caa});});return Promise[_0x4d03('0x95')](_0x4c4aeb);});});});return Promise[_0x4d03('0x95')](_0xea39c3);});return Promise['all'](_0x2d90ea);})[_0x4d03('0x43')](function(){return db[_0x4d03('0x6d')]['findOne']({'where':{'teamId':_0x184c07}})[_0x4d03('0x43')](function(_0x460ee0){if(_0x460ee0){var _0x1c6ba8=_[_0x4d03('0x2f')](_0x12535f,function(_0x4b0083){db[_0x4d03('0x6e')][_0x4d03('0x91')]({'UserId':_0x4b0083,'VoicePrefixId':_0x460ee0[_0x4d03('0x6f')]});});return Promise['all'](_0x1c6ba8);}});});});return Promise[_0x4d03('0x95')](_0x304150)[_0x4d03('0x43')](function(){return _0x45c7d9[_0x4d03('0x7f')](_0x12535f,{'transaction':_0x3f4caa})[_0x4d03('0x96')](function(_0x33c017){return _0x33c017;});});});}})[_0x4d03('0x43')](respondWithResult(_0x2447f4,null))[_0x4d03('0x49')](handleError(_0x2447f4,null));};exports[_0x4d03('0x97')]=function(_0x3b653e,_0x5ceb28){var _0x526551=_[_0x4d03('0x98')](_0x3b653e[_0x4d03('0x33')][_0x4d03('0x7b')])?_0x3b653e[_0x4d03('0x33')][_0x4d03('0x7b')]:[_0x3b653e['query'][_0x4d03('0x7b')]];var _0x571889=_0x3b653e[_0x4d03('0x51')]['id'];return db['Team']['find']({'where':{'id':_0x571889}})[_0x4d03('0x43')](handleEntityNotFound(_0x5ceb28,null))[_0x4d03('0x43')](function(_0x35ad55){if(_0x35ad55){var _0x5a11e6=[_0x4d03('0x85'),'Chat',_0x4d03('0x81'),_0x4d03('0x82'),'Fax',_0x4d03('0x99'),_0x4d03('0x84')];return db[_0x4d03('0x54')]['transaction'](function(_0x40c38c){var _0x4c7610=_[_0x4d03('0x2f')](_0x5a11e6,function(_0x20e3d6){var _0x34fc22={'attributes':['id',_0x4d03('0x2d')]};return _0x35ad55[_0x4d03('0x4b')+_0x20e3d6+_0x4d03('0x7e')](_0x34fc22)['then'](function(_0x51dc16){var _0x2c7772=_[_0x4d03('0x2f')](_0x51dc16,function(_0x36274e){return _0x36274e[_0x4d03('0x97')](_0x526551,{'transaction':_0x40c38c})[_0x4d03('0x43')](function(){var _0xdfe584=_[_0x4d03('0x2f')](_0x526551,function(_0xb29be6){socket[_0x4d03('0x8c')]('user'+_0x20e3d6+_0x4d03('0x9a'),{'UserId':Number(_0xb29be6),[_0x20e3d6+_0x4d03('0x88')]:_0x36274e['id']});if(_0x20e3d6!==_0x4d03('0x85')){return;}return db['UserVoiceQueueRt'][_0x4d03('0x53')]({'where':{'VoiceQueueId':_0x36274e['id'],'UserId':_0xb29be6},'transaction':_0x40c38c});});return Promise[_0x4d03('0x95')](_0xdfe584);});});return Promise[_0x4d03('0x95')](_0x2c7772);});});return Promise[_0x4d03('0x95')](_0x4c7610)[_0x4d03('0x43')](function(){return _0x35ad55[_0x4d03('0x97')](_0x526551,{'transaction':_0x40c38c});})[_0x4d03('0x43')](function(){return db[_0x4d03('0x6d')]['findOne']({'where':{'teamId':_0x571889}})[_0x4d03('0x43')](function(_0xa344dc){if(_0xa344dc){var _0x294cf4=_[_0x4d03('0x2f')](_0x526551,function(_0x4fb88c){db[_0x4d03('0x6e')]['destroy']({'where':{'UserId':_0x4fb88c,'VoicePrefixId':_0xa344dc['VoicePrefixId']}});});return Promise[_0x4d03('0x95')](_0x294cf4);}});});});}})[_0x4d03('0x43')](respondWithStatusCode(_0x5ceb28,null))[_0x4d03('0x49')](handleError(_0x5ceb28,null));};exports[_0x4d03('0x9b')]=function(_0x681101,_0x1366d5,_0x490cff){var _0x265d46={};var _0x1a8aa1={};var _0x480c6b;var _0x2270ee;return db['Team']['findOne']({'where':{'id':_0x681101['params']['id']}})[_0x4d03('0x43')](handleEntityNotFound(_0x1366d5,null))['then'](function(_0x43c479){if(_0x43c479){_0x480c6b=_0x43c479;_0x1a8aa1[_0x4d03('0x32')]=_[_0x4d03('0x34')](db[_0x4d03('0x8a')]['rawAttributes']);_0x1a8aa1['query']=_[_0x4d03('0x34')](_0x681101[_0x4d03('0x33')]);_0x1a8aa1['filters']=_[_0x4d03('0x35')](_0x1a8aa1['model'],_0x1a8aa1['query']);_0x265d46[_0x4d03('0x36')]=_[_0x4d03('0x35')](_0x1a8aa1['model'],qs[_0x4d03('0x37')](_0x681101[_0x4d03('0x33')]['fields']));_0x265d46[_0x4d03('0x36')]=_0x265d46[_0x4d03('0x36')]['length']?_0x265d46['attributes']:_0x1a8aa1[_0x4d03('0x32')];_0x265d46[_0x4d03('0x78')]=qs[_0x4d03('0x3b')](_0x681101[_0x4d03('0x33')][_0x4d03('0x3b')]);_0x265d46['where']=qs[_0x4d03('0x3d')](_['pick'](_0x681101['query'],_0x1a8aa1[_0x4d03('0x3d')]));if(_0x681101[_0x4d03('0x33')][_0x4d03('0x3e')]){_0x265d46[_0x4d03('0x3c')]=_[_0x4d03('0x3f')](_0x265d46[_0x4d03('0x3c')],{'$or':_[_0x4d03('0x2f')](_0x265d46['attributes'],function(_0xe29021){var _0x38247e={};_0x38247e[_0xe29021]={'$like':'%'+_0x681101[_0x4d03('0x33')][_0x4d03('0x3e')]+'%'};return _0x38247e;})});}_0x265d46=_[_0x4d03('0x3f')]({},_0x265d46,_0x681101[_0x4d03('0x42')]);return _0x480c6b[_0x4d03('0x9b')](_0x265d46);}})[_0x4d03('0x43')](function(_0xb62c64){if(_0xb62c64){_0x2270ee=_0xb62c64['length'];if(!_0x681101[_0x4d03('0x33')][_0x4d03('0x39')](_0x4d03('0x3a'))){_0x265d46[_0x4d03('0x21')]=qs[_0x4d03('0x21')](_0x681101['query']['limit']);_0x265d46['offset']=qs[_0x4d03('0x23')](_0x681101[_0x4d03('0x33')][_0x4d03('0x23')]);}return _0x480c6b['getAgents'](_0x265d46);}})['then'](function(_0x64096){if(_0x64096){return _0x64096?{'count':_0x2270ee,'rows':_0x64096}:null;}})['then'](respondWithResult(_0x1366d5,null))[_0x4d03('0x49')](handleError(_0x1366d5,null));};