b5c904d74ddfd6f2ae5678305a6e40a903e5d1ab
[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 _0x41fe=['include','findAll','catch','show','options','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','find','autoAssociation','UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','destroy','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','UserVoiceQueue','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','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','end','channel','isValidChannel','ValidationError','Unknown\x20channel','Queue','rawAttributes','toLowerCase','Queues','addQueues','add','capitalize','ids','removeQueues','findOne','remove','Voice','Mail','Sms','Fax','Openchannel','Whatsapp','penalty','QueueId','TeamVoiceQueue','User','Queue:save','online','interface','UserVoiceQueueRt','upsert','isNil','SIP/%s','voicePause','all','spread','Chat','removeAgents','emit','getAgents','eml-format','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','./team.socket','register','sendStatus','status','json','undefined','count','offset','set','Content-Range','update','then','error','name','index','Team','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll'];(function(_0x2730da,_0x1098bd){var _0xfe9991=function(_0x2ea521){while(--_0x2ea521){_0x2730da['push'](_0x2730da['shift']());}};_0xfe9991(++_0x1098bd);}(_0x41fe,0x182));var _0xe41f=function(_0x2e04ef,_0x31a596){_0x2e04ef=_0x2e04ef-0x0;var _0x5722b0=_0x41fe[_0x2e04ef];return _0x5722b0;};'use strict';var emlformat=require(_0xe41f('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe41f('0x1'));var rp=require(_0xe41f('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe41f('0x3'));var util=require(_0xe41f('0x4'));var path=require(_0xe41f('0x5'));var sox=require(_0xe41f('0x6'));var csv=require(_0xe41f('0x7'));var ejs=require(_0xe41f('0x8'));var fs=require('fs');var fs_extra=require(_0xe41f('0x9'));var _=require(_0xe41f('0xa'));var squel=require(_0xe41f('0xb'));var crypto=require('crypto');var jsforce=require(_0xe41f('0xc'));var deskjs=require(_0xe41f('0xd'));var toCsv=require(_0xe41f('0x7'));var querystring=require(_0xe41f('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe41f('0xf'));var qs=require(_0xe41f('0x10'));var as=require(_0xe41f('0x11'));var hardwareService=require(_0xe41f('0x12'));var logger=require(_0xe41f('0x13'))('api');var utils=require(_0xe41f('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xe41f('0x15'));var db=require(_0xe41f('0x16'))['db'];config['redis']=_[_0xe41f('0x17')](config[_0xe41f('0x18')],{'host':_0xe41f('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe41f('0x18')]));require(_0xe41f('0x1a'))[_0xe41f('0x1b')](socket);function respondWithStatusCode(_0x21e6bc,_0x13239c){_0x13239c=_0x13239c||0xcc;return function(_0x23309b){if(_0x23309b){return _0x21e6bc[_0xe41f('0x1c')](_0x13239c);}return _0x21e6bc[_0xe41f('0x1d')](_0x13239c)['end']();};}function respondWithResult(_0x48318b,_0x1e17b1){_0x1e17b1=_0x1e17b1||0xc8;return function(_0x5204ec){if(_0x5204ec){return _0x48318b[_0xe41f('0x1d')](_0x1e17b1)[_0xe41f('0x1e')](_0x5204ec);}};}function respondWithFilteredResult(_0x158292,_0x5c7fef){return function(_0x43f8cc){if(_0x43f8cc){var _0x2fb3d5=typeof _0x5c7fef['offset']==='undefined'&&typeof _0x5c7fef['limit']===_0xe41f('0x1f');var _0x2b72a6=_0x43f8cc[_0xe41f('0x20')];var _0x37903d=_0x2fb3d5?0x0:_0x5c7fef[_0xe41f('0x21')];var _0xc8ee7e=_0x2fb3d5?_0x43f8cc[_0xe41f('0x20')]:_0x5c7fef[_0xe41f('0x21')]+_0x5c7fef['limit'];var _0x123c6d;if(_0xc8ee7e>=_0x2b72a6){_0xc8ee7e=_0x2b72a6;_0x123c6d=0xc8;}else{_0x123c6d=0xce;}_0x158292[_0xe41f('0x1d')](_0x123c6d);return _0x158292[_0xe41f('0x22')](_0xe41f('0x23'),_0x37903d+'-'+_0xc8ee7e+'/'+_0x2b72a6)[_0xe41f('0x1e')](_0x43f8cc);}return null;};}function patchUpdates(_0x1dfc77){return function(_0x58a79c){try{jsonpatch['apply'](_0x58a79c,_0x1dfc77,!![]);}catch(_0x222b34){return BPromise['reject'](_0x222b34);}return _0x58a79c['save']();};}function saveUpdates(_0x1062b7,_0x54a6cd){return function(_0x5109d6){if(_0x5109d6){return _0x5109d6[_0xe41f('0x24')](_0x1062b7)[_0xe41f('0x25')](function(_0x216756){return _0x216756;});}return null;};}function handleEntityNotFound(_0x22402e,_0x2757d9){return function(_0x4ef8fa){if(!_0x4ef8fa){_0x22402e[_0xe41f('0x1c')](0x194);}return _0x4ef8fa;};}function handleError(_0x1bec31,_0x2ac172){_0x2ac172=_0x2ac172||0x1f4;return function(_0x24121a){logger[_0xe41f('0x26')](_0x24121a['stack']);if(_0x24121a[_0xe41f('0x27')]){delete _0x24121a[_0xe41f('0x27')];}_0x1bec31[_0xe41f('0x1d')](_0x2ac172)['send'](_0x24121a);};}exports[_0xe41f('0x28')]=function(_0xf1efaa,_0x36efb8){var _0x465412={},_0x537cae={},_0x12d202={'count':0x0,'rows':[]};var _0x2f00e7=_['map'](db[_0xe41f('0x29')]['rawAttributes'],function(_0x4fed05){return{'name':_0x4fed05['fieldName'],'type':_0x4fed05[_0xe41f('0x2a')][_0xe41f('0x2b')]};});_0x537cae[_0xe41f('0x2c')]=_[_0xe41f('0x2d')](_0x2f00e7,_0xe41f('0x27'));_0x537cae[_0xe41f('0x2e')]=_[_0xe41f('0x2f')](_0xf1efaa[_0xe41f('0x2e')]);_0x537cae[_0xe41f('0x30')]=_[_0xe41f('0x31')](_0x537cae[_0xe41f('0x2c')],_0x537cae[_0xe41f('0x2e')]);_0x465412[_0xe41f('0x32')]=_[_0xe41f('0x31')](_0x537cae['model'],qs[_0xe41f('0x33')](_0xf1efaa[_0xe41f('0x2e')][_0xe41f('0x33')]));_0x465412[_0xe41f('0x32')]=_0x465412[_0xe41f('0x32')][_0xe41f('0x34')]?_0x465412['attributes']:_0x537cae[_0xe41f('0x2c')];if(!_0xf1efaa['query'][_0xe41f('0x35')](_0xe41f('0x36'))){_0x465412['limit']=qs[_0xe41f('0x37')](_0xf1efaa[_0xe41f('0x2e')]['limit']);_0x465412[_0xe41f('0x21')]=qs['offset'](_0xf1efaa[_0xe41f('0x2e')]['offset']);}_0x465412[_0xe41f('0x38')]=qs[_0xe41f('0x39')](_0xf1efaa[_0xe41f('0x2e')][_0xe41f('0x39')]);_0x465412[_0xe41f('0x3a')]=qs[_0xe41f('0x30')](_[_0xe41f('0x3b')](_0xf1efaa['query'],_0x537cae[_0xe41f('0x30')]),_0x2f00e7);if(_0xf1efaa[_0xe41f('0x2e')][_0xe41f('0x3c')]){_0x465412['where']=_[_0xe41f('0x3d')](_0x465412[_0xe41f('0x3a')],{'$or':_[_0xe41f('0x2d')](_0x2f00e7,function(_0x11c5a3){if(_0x11c5a3[_0xe41f('0x2a')]!==_0xe41f('0x3e')){var _0x1b7143={};_0x1b7143[_0x11c5a3[_0xe41f('0x27')]]={'$like':'%'+_0xf1efaa[_0xe41f('0x2e')][_0xe41f('0x3c')]+'%'};return _0x1b7143;}})});}_0x465412=_[_0xe41f('0x3d')]({},_0x465412,_0xf1efaa['options']);var _0x5dd6ca={'where':_0x465412[_0xe41f('0x3a')]};return db[_0xe41f('0x29')][_0xe41f('0x20')](_0x5dd6ca)[_0xe41f('0x25')](function(_0x1eccac){_0x12d202[_0xe41f('0x20')]=_0x1eccac;if(_0xf1efaa[_0xe41f('0x2e')][_0xe41f('0x3f')]){_0x465412[_0xe41f('0x40')]=[{'all':!![]}];}return db[_0xe41f('0x29')][_0xe41f('0x41')](_0x465412);})[_0xe41f('0x25')](function(_0x3b8ddd){_0x12d202['rows']=_0x3b8ddd;return _0x12d202;})[_0xe41f('0x25')](respondWithFilteredResult(_0x36efb8,_0x465412))[_0xe41f('0x42')](handleError(_0x36efb8,null));};exports[_0xe41f('0x43')]=function(_0x294a84,_0x34536f){var _0x4f1390={'raw':![],'where':{'id':_0x294a84['params']['id']}},_0x40a5ac={};_0x40a5ac[_0xe41f('0x2c')]=_[_0xe41f('0x2f')](db[_0xe41f('0x29')]['rawAttributes']);_0x40a5ac[_0xe41f('0x2e')]=_[_0xe41f('0x2f')](_0x294a84[_0xe41f('0x2e')]);_0x40a5ac[_0xe41f('0x30')]=_[_0xe41f('0x31')](_0x40a5ac[_0xe41f('0x2c')],_0x40a5ac[_0xe41f('0x2e')]);_0x4f1390['attributes']=_[_0xe41f('0x31')](_0x40a5ac[_0xe41f('0x2c')],qs[_0xe41f('0x33')](_0x294a84[_0xe41f('0x2e')]['fields']));_0x4f1390[_0xe41f('0x32')]=_0x4f1390[_0xe41f('0x32')][_0xe41f('0x34')]?_0x4f1390['attributes']:_0x40a5ac[_0xe41f('0x2c')];if(_0x294a84[_0xe41f('0x2e')][_0xe41f('0x3f')]){_0x4f1390[_0xe41f('0x40')]=[{'all':!![]}];}_0x4f1390=_[_0xe41f('0x3d')]({},_0x4f1390,_0x294a84[_0xe41f('0x44')]);return db[_0xe41f('0x29')]['find'](_0x4f1390)[_0xe41f('0x25')](handleEntityNotFound(_0x34536f,null))[_0xe41f('0x25')](respondWithResult(_0x34536f,null))['catch'](handleError(_0x34536f,null));};exports['create']=function(_0x440bda,_0x1c4039){return db[_0xe41f('0x29')]['create'](_0x440bda[_0xe41f('0x45')],{})[_0xe41f('0x25')](function(_0x114261){var _0x4c557e=_0x440bda[_0xe41f('0x46')][_0xe41f('0x47')]({'plain':!![]});if(!_0x4c557e)throw new Error(_0xe41f('0x48'));if(_0x4c557e[_0xe41f('0x49')]==='user'){var _0x4138f8=_0x114261[_0xe41f('0x47')]({'plain':!![]});var _0xa25901=_0xe41f('0x4a');return db[_0xe41f('0x4b')][_0xe41f('0x4c')]({'where':{'name':_0xa25901,'userProfileId':_0x4c557e['userProfileId']},'raw':!![]})[_0xe41f('0x25')](function(_0x16ae0f){if(_0x16ae0f&&_0x16ae0f[_0xe41f('0x4d')]===0x0){return db[_0xe41f('0x4e')][_0xe41f('0x4f')]({'name':_0x4138f8[_0xe41f('0x27')],'resourceId':_0x4138f8['id'],'type':_0x16ae0f[_0xe41f('0x27')],'sectionId':_0x16ae0f['id']},{})[_0xe41f('0x25')](function(){return _0x114261;});}else{return _0x114261;}})[_0xe41f('0x42')](function(_0x381860){logger[_0xe41f('0x26')](_0xe41f('0x50'),_0x381860);throw _0x381860;});}return _0x114261;})[_0xe41f('0x25')](respondWithResult(_0x1c4039,0xc9))[_0xe41f('0x42')](handleError(_0x1c4039,null));};exports[_0xe41f('0x24')]=function(_0x9222d7,_0x1ea0e7){if(_0x9222d7['body']['id']){delete _0x9222d7[_0xe41f('0x45')]['id'];}return db[_0xe41f('0x29')][_0xe41f('0x4c')]({'where':{'id':_0x9222d7[_0xe41f('0x51')]['id']}})[_0xe41f('0x25')](handleEntityNotFound(_0x1ea0e7,null))[_0xe41f('0x25')](saveUpdates(_0x9222d7['body'],null))[_0xe41f('0x25')](respondWithResult(_0x1ea0e7,null))[_0xe41f('0x42')](handleError(_0x1ea0e7,null));};exports[_0xe41f('0x52')]=function(_0x2962d4,_0x413767){var _0x3b3a3b=_0x2962d4[_0xe41f('0x51')]['id'];var _0x431489=[];return db[_0xe41f('0x53')][_0xe41f('0x54')](function(_0x29b7ae){var _0x4d5fb7=_0xe41f('0x55')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x4d5fb7,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae})[_0xe41f('0x25')](function(_0x56cbed){_0x431489=_[_0xe41f('0x2d')](_0x56cbed,function(_0x1d2da9){return Number(_0x1d2da9[_0xe41f('0x59')]);});})[_0xe41f('0x25')](function(){var _0x3e5285=_0xe41f('0x5a')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x3e5285,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x56e953){var _0x4e7316=_['map'](_0x56e953,function(_0x2a28ea){return Number(_0x2a28ea['VoiceQueueId']);});return db[_0xe41f('0x5b')][_0xe41f('0x52')]({'where':{'UserId':{'$in':_0x431489},'VoiceQueueId':{'$in':_0x4e7316}},'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(){var _0x4f6561='SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3b3a3b;return db['sequelize'][_0xe41f('0x2e')](_0x4f6561,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x4ee287){var _0x335e31=_[_0xe41f('0x2d')](_0x4ee287,function(_0x51c70e){return Number(_0x51c70e[_0xe41f('0x5c')]);});return db[_0xe41f('0x5d')][_0xe41f('0x52')]({'where':{'UserId':{'$in':_0x431489},'MailQueueId':{'$in':_0x335e31}},'transaction':_0x29b7ae});})['then'](function(){var _0x5212ee=_0xe41f('0x5e')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x5212ee,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x4488e3){var _0x5464ba=_['map'](_0x4488e3,function(_0x4df657){return Number(_0x4df657[_0xe41f('0x5f')]);});return db[_0xe41f('0x60')][_0xe41f('0x52')]({'where':{'UserId':{'$in':_0x431489},'SmsQueueId':{'$in':_0x5464ba}},'transaction':_0x29b7ae});})['then'](function(){var _0x54a088=_0xe41f('0x61')+_0x3b3a3b;return db['sequelize'][_0xe41f('0x2e')](_0x54a088,{'type':db['Sequelize'][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x46650d){var _0x1518bb=_[_0xe41f('0x2d')](_0x46650d,function(_0x38aab5){return Number(_0x38aab5['ChatQueueId']);});return db[_0xe41f('0x62')][_0xe41f('0x52')]({'where':{'UserId':{'$in':_0x431489},'ChatQueueId':{'$in':_0x1518bb}},'transaction':_0x29b7ae});})['then'](function(){var _0x1fb2b2=_0xe41f('0x63')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x1fb2b2,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x164652){var _0x536753=_[_0xe41f('0x2d')](_0x164652,function(_0x3fced7){return Number(_0x3fced7[_0xe41f('0x64')]);});return db[_0xe41f('0x65')][_0xe41f('0x52')]({'where':{'UserId':{'$in':_0x431489},'FaxQueueId':{'$in':_0x536753}},'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(){var _0x1a39f6=_0xe41f('0x66')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x1a39f6,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x8e198c){var _0x5d8536=_['map'](_0x8e198c,function(_0x48bca2){return Number(_0x48bca2['OpenchannelQueueId']);});return db[_0xe41f('0x67')]['destroy']({'where':{'UserId':{'$in':_0x431489},'OpenchannelQueueId':{'$in':_0x5d8536}},'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(){var _0x2f2ce0=_0xe41f('0x68')+_0x3b3a3b;return db[_0xe41f('0x53')][_0xe41f('0x2e')](_0x2f2ce0,{'type':db[_0xe41f('0x56')][_0xe41f('0x57')][_0xe41f('0x58')],'raw':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x5924f4){var _0x3ca856=_[_0xe41f('0x2d')](_0x5924f4,function(_0x190546){return Number(_0x190546[_0xe41f('0x69')]);});return db[_0xe41f('0x6a')]['destroy']({'where':{'UserId':{'$in':_0x431489},'WhatsappQueueId':{'$in':_0x3ca856}},'transaction':_0x29b7ae});})['then'](function(){return db[_0xe41f('0x6b')][_0xe41f('0x4c')]({'where':{'TeamId':_0x3b3a3b}});})[_0xe41f('0x25')](function(_0x238a0e){if(_0x238a0e===null){return;}return db[_0xe41f('0x6c')]['destroy']({'where':{'UserId':{'$in':_0x431489},'VoicePrefixId':_0x238a0e[_0xe41f('0x6d')]},'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(){return db[_0xe41f('0x29')][_0xe41f('0x52')]({'where':{'id':_0x3b3a3b},'cascade':!![],'transaction':_0x29b7ae});})[_0xe41f('0x25')](function(_0x2e9262){if(_0x2e9262===0x0){_0x413767[_0xe41f('0x1c')](0x194);}else{return db[_0xe41f('0x4e')][_0xe41f('0x52')]({'where':{'type':'Teams','resourceId':_0x3b3a3b},'cascade':!![],'transaction':_0x29b7ae})[_0xe41f('0x25')](function(){_0x413767['status'](0xcc)[_0xe41f('0x6e')]();});}})[_0xe41f('0x42')](function(_0x1c2d32){_0x413767[_0xe41f('0x1d')](0x1f4)['send'](_0x1c2d32);});});};exports['getQueues']=function(_0x586e6a,_0x11f781,_0x2b119b){return db[_0xe41f('0x29')]['findOne']({'where':{'id':_0x586e6a['params']['id']}})['then'](handleEntityNotFound(_0x11f781,null))[_0xe41f('0x25')](function(_0x4183f4){if(!_0x586e6a[_0xe41f('0x2e')][_0xe41f('0x6f')]||!utils[_0xe41f('0x70')](_0x586e6a[_0xe41f('0x2e')]['channel'])){throw new db[(_0xe41f('0x56'))][(_0xe41f('0x71'))](_0xe41f('0x72'));}var _0x36869b={};var _0x4884b8={};_0x4884b8[_0xe41f('0x2c')]=_[_0xe41f('0x2f')](db[_['capitalize'](_0x586e6a[_0xe41f('0x2e')][_0xe41f('0x6f')]['toLowerCase']())+_0xe41f('0x73')][_0xe41f('0x74')]);_0x4884b8['query']=_['keys'](_0x586e6a[_0xe41f('0x2e')]);_0x4884b8[_0xe41f('0x30')]=_[_0xe41f('0x31')](_0x4884b8[_0xe41f('0x2c')],_0x4884b8[_0xe41f('0x2e')]);_0x36869b[_0xe41f('0x32')]=_[_0xe41f('0x31')](_0x4884b8['model'],qs[_0xe41f('0x33')](_0x586e6a['query'][_0xe41f('0x33')]));_0x36869b[_0xe41f('0x32')]=_0x36869b[_0xe41f('0x32')][_0xe41f('0x34')]?_0x36869b[_0xe41f('0x32')]:_0x4884b8[_0xe41f('0x2c')];_0x36869b['limit']=qs[_0xe41f('0x37')](_0x586e6a[_0xe41f('0x2e')][_0xe41f('0x37')]);_0x36869b[_0xe41f('0x21')]=qs[_0xe41f('0x21')](_0x586e6a['query'][_0xe41f('0x21')]);_0x36869b[_0xe41f('0x38')]=qs[_0xe41f('0x39')](_0x586e6a['query'][_0xe41f('0x39')]);_0x36869b[_0xe41f('0x3a')]=qs[_0xe41f('0x30')](_[_0xe41f('0x3b')](_0x586e6a[_0xe41f('0x2e')],_0x4884b8['filters']));_0x36869b=_['merge']({},_0x36869b,_0x586e6a[_0xe41f('0x44')]);return _0x4183f4[_0xe41f('0x47')+_['capitalize'](_0x586e6a[_0xe41f('0x2e')][_0xe41f('0x6f')][_0xe41f('0x75')]())+_0xe41f('0x76')](_0x36869b);})['then'](respondWithResult(_0x11f781,null))[_0xe41f('0x42')](handleError(_0x11f781,null));};exports[_0xe41f('0x77')]=function(_0x548f0b,_0x39eb93,_0x1da45b){return db[_0xe41f('0x29')]['findOne']({'where':{'id':_0x548f0b['params']['id']}})[_0xe41f('0x25')](function(_0x19eaf5){if(_0x19eaf5){if(!_0x548f0b[_0xe41f('0x45')][_0xe41f('0x6f')]||!utils['isValidChannel'](_0x548f0b[_0xe41f('0x45')][_0xe41f('0x6f')])){throw new db[(_0xe41f('0x56'))][(_0xe41f('0x71'))](_0xe41f('0x72'));}return _0x19eaf5[_0xe41f('0x78')+_[_0xe41f('0x79')](_0x548f0b['body'][_0xe41f('0x6f')][_0xe41f('0x75')]())+'Queues'](_0x548f0b[_0xe41f('0x45')][_0xe41f('0x7a')]);}return null;})['then'](handleEntityNotFound(_0x39eb93,null))[_0xe41f('0x25')](respondWithStatusCode(_0x39eb93,null))[_0xe41f('0x42')](handleError(_0x39eb93,null));};exports[_0xe41f('0x7b')]=function(_0x497db2,_0x57f40b,_0x25a024){return db[_0xe41f('0x29')][_0xe41f('0x7c')]({'where':{'id':_0x497db2['params']['id']}})[_0xe41f('0x25')](function(_0x5dfc80){if(_0x5dfc80){if(!_0x497db2[_0xe41f('0x2e')][_0xe41f('0x6f')]||!utils[_0xe41f('0x70')](_0x497db2[_0xe41f('0x2e')][_0xe41f('0x6f')])){throw new db['Sequelize'][(_0xe41f('0x71'))]('Unknown\x20channel');}return _0x5dfc80[_0xe41f('0x7d')+_[_0xe41f('0x79')](_0x497db2[_0xe41f('0x2e')][_0xe41f('0x6f')][_0xe41f('0x75')]())+'Queues'](_0x497db2[_0xe41f('0x2e')][_0xe41f('0x7a')]);}return null;})[_0xe41f('0x25')](handleEntityNotFound(_0x57f40b,null))[_0xe41f('0x25')](respondWithStatusCode(_0x57f40b,null))[_0xe41f('0x42')](handleError(_0x57f40b,null));};exports['addAgents']=function(_0x2acab7,_0x483eaa){var _0x35a0ca=_['isArray'](_0x2acab7['body'][_0xe41f('0x7a')])?_0x2acab7[_0xe41f('0x45')][_0xe41f('0x7a')]:[_0x2acab7[_0xe41f('0x45')][_0xe41f('0x7a')]];var _0x294646=_0x2acab7['params']['id'];return db[_0xe41f('0x29')]['find']({'where':{'id':_0x294646}})[_0xe41f('0x25')](handleEntityNotFound(_0x483eaa,null))['then'](function(_0x52e5b5){if(_0x52e5b5){var _0x1b155c=[_0xe41f('0x7e'),'Chat',_0xe41f('0x7f'),_0xe41f('0x80'),_0xe41f('0x81'),_0xe41f('0x82'),_0xe41f('0x83')];return db[_0xe41f('0x53')][_0xe41f('0x54')](function(_0x4f65aa){var _0x521391=_[_0xe41f('0x2d')](_0x1b155c,function(_0x4e804b){var _0x7a9ed6={'attributes':['id',_0xe41f('0x27')]};if(_0x4e804b===_0xe41f('0x7e')){_0x7a9ed6['through']={'attributes':[_0xe41f('0x84')]};}return _0x52e5b5[_0xe41f('0x47')+_0x4e804b+'Queues'](_0x7a9ed6)[_0xe41f('0x25')](function(_0x1b760c){var _0x2b7073=_[_0xe41f('0x2d')](_0x1b760c,function(_0x57554b){var _0x5bcc81=_[_0xe41f('0x2d')](_0x35a0ca,function(_0x103715){var _0x477daa={'where':{'UserId':_0x103715,[_0x4e804b+_0xe41f('0x85')]:_0x57554b['id']},'transaction':_0x4f65aa};if(_0x4e804b===_0xe41f('0x7e')){_0x477daa['defaults']={'penalty':_0x57554b[_0xe41f('0x86')][_0xe41f('0x84')]};}return db[_0xe41f('0x87')+_0x4e804b+_0xe41f('0x73')]['findOrCreate'](_0x477daa)[_0xe41f('0x25')](function(){socket['emit'](_0xe41f('0x46')+_0x4e804b+_0xe41f('0x88'),{'UserId':_0x103715,[_0x4e804b+_0xe41f('0x85')]:_0x57554b['id']});if(_0x4e804b!==_0xe41f('0x7e')){return;}return db['User'][_0xe41f('0x41')]({'where':{'id':_0x35a0ca,'online':0x1},'attributes':['id',_0xe41f('0x27'),_0xe41f('0x89'),'voicePause',_0xe41f('0x8a')],'raw':!![]})[_0xe41f('0x25')](function(_0x5b2bd6){var _0x37f387=_[_0xe41f('0x2d')](_0x5b2bd6,function(_0x17eb43){return db[_0xe41f('0x8b')][_0xe41f('0x8c')]({'membername':_0x17eb43['name'],'UserId':_0x17eb43['id'],'queue_name':_0x57554b['name'],'VoiceQueueId':_0x57554b['id'],'interface':_[_0xe41f('0x8d')](_0x17eb43[_0xe41f('0x8a')])?util['format'](_0xe41f('0x8e'),_0x17eb43[_0xe41f('0x27')]):_0x17eb43[_0xe41f('0x8a')],'paused':_0x17eb43[_0xe41f('0x8f')]||![],'penalty':_0x57554b[_0xe41f('0x86')][_0xe41f('0x84')]},{'transaction':_0x4f65aa});});return Promise[_0xe41f('0x90')](_0x37f387);});});});return Promise[_0xe41f('0x90')](_0x5bcc81);});return Promise[_0xe41f('0x90')](_0x2b7073);})[_0xe41f('0x25')](function(){return db[_0xe41f('0x6b')][_0xe41f('0x7c')]({'where':{'teamId':_0x294646}})[_0xe41f('0x25')](function(_0x6c9e18){if(_0x6c9e18){var _0x136fe9=_[_0xe41f('0x2d')](_0x35a0ca,function(_0x6b6627){db['UserVoicePrefix']['upsert']({'UserId':_0x6b6627,'VoicePrefixId':_0x6c9e18[_0xe41f('0x6d')]});});return Promise[_0xe41f('0x90')](_0x136fe9);}});});});return Promise[_0xe41f('0x90')](_0x521391)[_0xe41f('0x25')](function(){return _0x52e5b5['addAgents'](_0x35a0ca,{'transaction':_0x4f65aa})[_0xe41f('0x91')](function(_0x2e0009){return _0x2e0009;});});});}})[_0xe41f('0x25')](respondWithResult(_0x483eaa,null))[_0xe41f('0x42')](handleError(_0x483eaa,null));};exports['removeAgents']=function(_0x568743,_0x41f253){var _0x4ee33e=_['isArray'](_0x568743['query'][_0xe41f('0x7a')])?_0x568743[_0xe41f('0x2e')]['ids']:[_0x568743[_0xe41f('0x2e')][_0xe41f('0x7a')]];var _0xdf7e69=_0x568743[_0xe41f('0x51')]['id'];return db[_0xe41f('0x29')]['find']({'where':{'id':_0xdf7e69}})[_0xe41f('0x25')](handleEntityNotFound(_0x41f253,null))[_0xe41f('0x25')](function(_0x1ce30b){if(_0x1ce30b){var _0x4319b1=[_0xe41f('0x7e'),_0xe41f('0x92'),_0xe41f('0x7f'),_0xe41f('0x80'),_0xe41f('0x81'),_0xe41f('0x82'),'Whatsapp'];return db['sequelize'][_0xe41f('0x54')](function(_0x48bce8){var _0x34252a=_[_0xe41f('0x2d')](_0x4319b1,function(_0x479f69){var _0x5dddee={'attributes':['id','name']};return _0x1ce30b[_0xe41f('0x47')+_0x479f69+'Queues'](_0x5dddee)[_0xe41f('0x25')](function(_0x292fe3){var _0x5caead=_[_0xe41f('0x2d')](_0x292fe3,function(_0x3f599e){return _0x3f599e[_0xe41f('0x93')](_0x4ee33e,{'transaction':_0x48bce8})[_0xe41f('0x25')](function(){var _0x4ba374=_[_0xe41f('0x2d')](_0x4ee33e,function(_0x3111b4){socket[_0xe41f('0x94')](_0xe41f('0x46')+_0x479f69+'Queue:remove',{'UserId':Number(_0x3111b4),[_0x479f69+_0xe41f('0x85')]:_0x3f599e['id']});if(_0x479f69!==_0xe41f('0x7e')){return;}return db['UserVoiceQueueRt']['destroy']({'where':{'VoiceQueueId':_0x3f599e['id'],'UserId':_0x3111b4},'transaction':_0x48bce8});});return Promise[_0xe41f('0x90')](_0x4ba374);});});return Promise['all'](_0x5caead);});});return Promise[_0xe41f('0x90')](_0x34252a)[_0xe41f('0x25')](function(){return _0x1ce30b[_0xe41f('0x93')](_0x4ee33e,{'transaction':_0x48bce8});})[_0xe41f('0x25')](function(){return db['TeamVoicePrefix'][_0xe41f('0x7c')]({'where':{'teamId':_0xdf7e69}})[_0xe41f('0x25')](function(_0x51f8a2){if(_0x51f8a2){var _0x10e7d6=_[_0xe41f('0x2d')](_0x4ee33e,function(_0x32b902){db[_0xe41f('0x6c')][_0xe41f('0x52')]({'where':{'UserId':_0x32b902,'VoicePrefixId':_0x51f8a2[_0xe41f('0x6d')]}});});return Promise[_0xe41f('0x90')](_0x10e7d6);}});});});}})['then'](respondWithStatusCode(_0x41f253,null))['catch'](handleError(_0x41f253,null));};exports[_0xe41f('0x95')]=function(_0x5addc8,_0x6df51e,_0xc64f22){var _0x360f81={};var _0x17fb75={};var _0x5afdcf;var _0x16d858;return db[_0xe41f('0x29')]['findOne']({'where':{'id':_0x5addc8['params']['id']}})[_0xe41f('0x25')](handleEntityNotFound(_0x6df51e,null))[_0xe41f('0x25')](function(_0x494c57){if(_0x494c57){_0x5afdcf=_0x494c57;_0x17fb75[_0xe41f('0x2c')]=_[_0xe41f('0x2f')](db[_0xe41f('0x87')][_0xe41f('0x74')]);_0x17fb75[_0xe41f('0x2e')]=_[_0xe41f('0x2f')](_0x5addc8[_0xe41f('0x2e')]);_0x17fb75[_0xe41f('0x30')]=_['intersection'](_0x17fb75[_0xe41f('0x2c')],_0x17fb75[_0xe41f('0x2e')]);_0x360f81[_0xe41f('0x32')]=_[_0xe41f('0x31')](_0x17fb75[_0xe41f('0x2c')],qs[_0xe41f('0x33')](_0x5addc8[_0xe41f('0x2e')][_0xe41f('0x33')]));_0x360f81[_0xe41f('0x32')]=_0x360f81[_0xe41f('0x32')][_0xe41f('0x34')]?_0x360f81[_0xe41f('0x32')]:_0x17fb75[_0xe41f('0x2c')];_0x360f81[_0xe41f('0x38')]=qs['sort'](_0x5addc8[_0xe41f('0x2e')][_0xe41f('0x39')]);_0x360f81[_0xe41f('0x3a')]=qs[_0xe41f('0x30')](_[_0xe41f('0x3b')](_0x5addc8[_0xe41f('0x2e')],_0x17fb75[_0xe41f('0x30')]));if(_0x5addc8[_0xe41f('0x2e')][_0xe41f('0x3c')]){_0x360f81[_0xe41f('0x3a')]=_[_0xe41f('0x3d')](_0x360f81[_0xe41f('0x3a')],{'$or':_['map'](_0x360f81['attributes'],function(_0x123e40){var _0x3a81f9={};_0x3a81f9[_0x123e40]={'$like':'%'+_0x5addc8[_0xe41f('0x2e')]['filter']+'%'};return _0x3a81f9;})});}_0x360f81=_[_0xe41f('0x3d')]({},_0x360f81,_0x5addc8[_0xe41f('0x44')]);return _0x5afdcf[_0xe41f('0x95')](_0x360f81);}})[_0xe41f('0x25')](function(_0x10e604){if(_0x10e604){_0x16d858=_0x10e604['length'];if(!_0x5addc8[_0xe41f('0x2e')][_0xe41f('0x35')](_0xe41f('0x36'))){_0x360f81[_0xe41f('0x37')]=qs[_0xe41f('0x37')](_0x5addc8['query'][_0xe41f('0x37')]);_0x360f81[_0xe41f('0x21')]=qs[_0xe41f('0x21')](_0x5addc8[_0xe41f('0x2e')]['offset']);}return _0x5afdcf[_0xe41f('0x95')](_0x360f81);}})[_0xe41f('0x25')](function(_0x160651){if(_0x160651){return _0x160651?{'count':_0x16d858,'rows':_0x160651}:null;}})[_0xe41f('0x25')](respondWithResult(_0x6df51e,null))[_0xe41f('0x42')](handleError(_0x6df51e,null));};