From c3db4c2d2eb568587cadc8395aba5c5a81ab044d Mon Sep 17 00:00:00 2001 From: JaeYoung Mun Date: Wed, 4 Sep 2019 01:27:34 +0900 Subject: [PATCH 1/2] feat(groupchannels.go, templates.go): add freeze for group channel --- groupchannels.go | 21 +++++++++++++++++++++ groupchannels_test.go | 15 +++++++++++++++ templates/templates.go | 2 ++ templates/templates_test.go | 1 + 4 files changed, 39 insertions(+) diff --git a/groupchannels.go b/groupchannels.go index 17d613f..81f706a 100644 --- a/groupchannels.go +++ b/groupchannels.go @@ -376,3 +376,24 @@ func (c *Client) LeaveFromAGroupChannel(channelURL string, r *LeaveFromAGroupCha type LeaveFromAGroupChannelRequest struct { UserIDs []string `json:"user_ids"` } + +func (c *Client) FreezeAnGroupChannel(channelURL string, r *FreezeAnGroupChannelRequest) (GroupChannel, error) { + pathString, err := templates.GetGroupChannelTemplate(openChannelsTemplateData{ChannelURL: url.PathEscape(channelURL)}, templates.SendbirdURLGroupChannelsLeaveWithChannelURL) + if err != nil { + return GroupChannel{}, err + } + + parsedURL := c.PrepareUrl(pathString) + + result := GroupChannel{} + + if err := c.putAndReturnJSON(parsedURL, r, &result); err != nil { + return GroupChannel{}, err + } + + return result, nil +} + +type FreezeAnGroupChannelRequest struct { + Freeze bool `json:"freeze"` +} diff --git a/groupchannels_test.go b/groupchannels_test.go index d3bac83..bf0e2c4 100644 --- a/groupchannels_test.go +++ b/groupchannels_test.go @@ -47,6 +47,9 @@ func TestGroupChannelsActions(t *testing.T) { testInviteMembersToGroupChannel(t, groupChannel.ChannelURL, TestGroupChannelAdditionalUsers) + testFreezeAnGroupChannel(t, groupChannel.ChannelURL, true) + testFreezeAnGroupChannel(t, groupChannel.ChannelURL, false) + testHideFromAGroupChannel(t, groupChannel.ChannelURL, TestGroupnChannelUserID1) testLeaveFromAGroupChannel(t, groupChannel.ChannelURL, TestGroupChannelAdditionalUsers) @@ -183,3 +186,15 @@ func testLeaveFromAGroupChannel(t *testing.T, channelURL string, leaveUserIDs [] t.Logf("testLeaveFromAGroupChannel() Result: %+v", result) } + +func testFreezeAnGroupChannel(t *testing.T, channelURL string, freeze bool) { + r := &FreezeAnGroupChannelRequest{ + Freeze: freeze, + } + result, err := testGroupChannelClient.FreezeAnGroupChannel(channelURL, r) + if err != nil { + t.Errorf("Fail in testFreezeAnGroupChannel(): %+v", err) + } + + t.Logf("testFreezeAnGroupChannel() Result: %+v", result) +} diff --git a/templates/templates.go b/templates/templates.go index 700e480..c41e1d5 100644 --- a/templates/templates.go +++ b/templates/templates.go @@ -67,6 +67,7 @@ const ( {{define "invite"}}{{template "base" .}}/invite{{end}} {{define "hide"}}{{template "base" .}}/hide{{end}} {{define "leave"}}{{template "base" .}}/leave{{end}} + {{define "freeze"}}{{template "base" .}}/freeze{{end}} {{template "base"}} {{template "members"}} @@ -74,6 +75,7 @@ const ( {{template "invite"}} {{template "hide"}} {{template "leave"}} + {{template "freeze"}} ` SendbirdURLChannelMetadataTemplate = ` diff --git a/templates/templates_test.go b/templates/templates_test.go index 60c28ca..003181e 100644 --- a/templates/templates_test.go +++ b/templates/templates_test.go @@ -119,6 +119,7 @@ const ( SendbirdURLResultGroupChannelsInviteWithChannelURL = `/group_channels/TestChannelURL/invite` SendbirdURLResultGroupChannelsHideWithChannelURL = `/group_channels/TestChannelURL/hide` SendbirdURLResultGroupChannelsLeaveWithChannelURL = `/group_channels/TestChannelURL/leave` + SendbirdURLResultGroupChannelsFreezeWithChannelURL = `/group_channels/TestChannelURL/freeze` //Group Metadata SendbirdURLResultChannelMetadataWithChannelTypeAndChannelURL = `/open_channels/TestChannelURL/metadata` From 3d3717b329e29477045fdcdd828407eed821e77b Mon Sep 17 00:00:00 2001 From: JaeYoung Mun Date: Thu, 5 Sep 2019 18:17:08 +0900 Subject: [PATCH 2/2] feat(groupchannels.go, templates.go): fix typo, add missing variable --- groupchannels.go | 2 +- templates/templates.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/groupchannels.go b/groupchannels.go index 81f706a..187d555 100644 --- a/groupchannels.go +++ b/groupchannels.go @@ -378,7 +378,7 @@ type LeaveFromAGroupChannelRequest struct { } func (c *Client) FreezeAnGroupChannel(channelURL string, r *FreezeAnGroupChannelRequest) (GroupChannel, error) { - pathString, err := templates.GetGroupChannelTemplate(openChannelsTemplateData{ChannelURL: url.PathEscape(channelURL)}, templates.SendbirdURLGroupChannelsLeaveWithChannelURL) + pathString, err := templates.GetGroupChannelTemplate(groupChannelsTemplateData{ChannelURL: url.PathEscape(channelURL)}, templates.SendbirdURLGroupChannelsFreezeWithChannelURL) if err != nil { return GroupChannel{}, err } diff --git a/templates/templates.go b/templates/templates.go index c41e1d5..656ffc1 100644 --- a/templates/templates.go +++ b/templates/templates.go @@ -146,6 +146,7 @@ const ( SendbirdURLGroupChannelsInviteWithChannelURL templateKeysGroupChannels = `invite` SendbirdURLGroupChannelsHideWithChannelURL templateKeysGroupChannels = `hide` SendbirdURLGroupChannelsLeaveWithChannelURL templateKeysGroupChannels = `leave` + SendbirdURLGroupChannelsFreezeWithChannelURL templateKeysGroupChannels = `freeze` //Channel Metadata SendbirdURLChannelMetadataWithChannelTypeAndChannelURL templateKeysChannelMetadata = `chMeta`