From ea6e0bb8e374a76d612be75c15a118dd30ab3fec Mon Sep 17 00:00:00 2001 From: catalintomai <56169943+catalintomai@users.noreply.github.com> Date: Mon, 18 May 2020 09:44:14 -0700 Subject: [PATCH] MM-23395: Add websockets support for update group (#5245) * MM-23395: add websockets support for update group --- actions/websocket_actions.jsx | 57 +++++++++++++++++++++++++++++++++++ utils/constants.jsx | 5 +++ 2 files changed, 62 insertions(+) diff --git a/actions/websocket_actions.jsx b/actions/websocket_actions.jsx index e3ea0469a596..2b2d1dd6d2e8 100644 --- a/actions/websocket_actions.jsx +++ b/actions/websocket_actions.jsx @@ -5,6 +5,7 @@ import {batchActions} from 'redux-batched-actions'; import { ChannelTypes, EmojiTypes, + GroupTypes, PostTypes, TeamTypes, UserTypes, @@ -424,6 +425,26 @@ export function handleEvent(msg) { handleOpenDialogEvent(msg); break; + case SocketEvents.RECEIVED_GROUP: + handleGroupUpdatedEvent(msg); + break; + + case SocketEvents.RECEIVED_GROUP_ASSOCIATED_TO_TEAM: + handleGroupAssociatedToTeamEvent(msg); + break; + + case SocketEvents.RECEIVED_GROUP_NOT_ASSOCIATED_TO_TEAM: + handleGroupNotAssociatedToTeamEvent(msg); + break; + + case SocketEvents.RECEIVED_GROUP_ASSOCIATED_TO_CHANNEL: + handleGroupAssociatedToChannelEvent(msg); + break; + + case SocketEvents.RECEIVED_GROUP_NOT_ASSOCIATED_TO_CHANNEL: + handleGroupNotAssociatedToChannelEvent(msg); + break; + default: } @@ -1127,3 +1148,39 @@ function handleOpenDialogEvent(msg) { store.dispatch(openModal({modalId: ModalIdentifiers.INTERACTIVE_DIALOG, dialogType: InteractiveDialog})); } + +function handleGroupUpdatedEvent(msg) { + const data = JSON.parse(msg.data.group); + store.dispatch({ + type: GroupTypes.RECEIVED_GROUP, + data, + }); +} + +function handleGroupAssociatedToTeamEvent(msg) { + store.dispatch({ + type: GroupTypes.RECEIVED_GROUP_ASSOCIATED_TO_TEAM, + data: {teamID: msg.broadcast.team_id, groups: [{id: msg.data.group_id}]} + }); +} + +function handleGroupNotAssociatedToTeamEvent(msg) { + store.dispatch({ + type: GroupTypes.RECEIVED_GROUP_NOT_ASSOCIATED_TO_TEAM, + data: {teamID: msg.broadcast.team_id, groups: [{id: msg.data.group_id}]} + }); +} + +function handleGroupAssociatedToChannelEvent(msg) { + store.dispatch({ + type: GroupTypes.RECEIVED_GROUP_ASSOCIATED_TO_CHANNEL, + data: {channelID: msg.broadcast.channel_id, groups: [{id: msg.data.group_id}]} + }); +} + +function handleGroupNotAssociatedToChannelEvent(msg) { + store.dispatch({ + type: GroupTypes.RECEIVED_GROUP_NOT_ASSOCIATED_TO_CHANNEL, + data: {channelID: msg.broadcast.channel_id, groups: [{id: msg.data.group_id}]} + }); +} \ No newline at end of file diff --git a/utils/constants.jsx b/utils/constants.jsx index 813db3b95ec5..64362f80341f 100644 --- a/utils/constants.jsx +++ b/utils/constants.jsx @@ -334,6 +334,11 @@ export const SocketEvents = { CONFIG_CHANGED: 'config_changed', PLUGIN_STATUSES_CHANGED: 'plugin_statuses_changed', OPEN_DIALOG: 'open_dialog', + RECEIVED_GROUP: 'received_group', + RECEIVED_GROUP_ASSOCIATED_TO_TEAM: 'received_group_associated_to_team', + RECEIVED_GROUP_NOT_ASSOCIATED_TO_TEAM: 'received_group_not_associated_to_team', + RECEIVED_GROUP_ASSOCIATED_TO_CHANNEL: 'received_group_associated_to_channel', + RECEIVED_GROUP_NOT_ASSOCIATED_TO_CHANNEL: 'received_group_not_associated_to_channel', }; export const TutorialSteps = {