From ad5b4c3f8a1f0709287f22361eadce07a50bc2ec Mon Sep 17 00:00:00 2001 From: shindakioku Date: Wed, 18 Aug 2021 00:49:33 +0300 Subject: [PATCH] Fix CreateInviteLink;EditInviteLink;RevokeInviteLink functions. Add tests. --- admin.go | 5 +++++ bot.go | 14 +++++++------- bot_test.go | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/admin.go b/admin.go index 21faed6..e230d13 100644 --- a/admin.go +++ b/admin.go @@ -6,6 +6,11 @@ import ( "time" ) +// ChatInviteLinkResult object represents an invite for a chat +type ChatInviteLinkResult struct { + Result ChatInviteLink `json:"result"` +} + // ChatInviteLink object represents an invite for a chat. type ChatInviteLink struct { // The invite link. diff --git a/bot.go b/bot.go index da55f06..0469e92 100644 --- a/bot.go +++ b/bot.go @@ -1703,12 +1703,12 @@ func (b *Bot) CreateInviteLink(chat *Chat, link *ChatInviteLink) (*ChatInviteLin return nil, err } - var resp ChatInviteLink + var resp ChatInviteLinkResult if err := json.Unmarshal(data, &resp); err != nil { return nil, wrapError(err) } - return &resp, nil + return &resp.Result, nil } // EditInviteLink edits a non-primary invite link created by the bot. @@ -1727,19 +1727,19 @@ func (b *Bot) EditInviteLink(chat *Chat, link *ChatInviteLink) (*ChatInviteLink, return nil, err } - var resp ChatInviteLink + var resp ChatInviteLinkResult if err := json.Unmarshal(data, &resp); err != nil { return nil, wrapError(err) } - return &resp, nil + return &resp.Result, nil } // RevokeInviteLink revokes an invite link created by the bot. func (b *Bot) RevokeInviteLink(chat *Chat, link string) (*ChatInviteLink, error) { params := map[string]string{ "chat_id": chat.Recipient(), - "link": link, + "invite_link": link, } data, err := b.Raw("revokeChatInviteLink", params) @@ -1747,10 +1747,10 @@ func (b *Bot) RevokeInviteLink(chat *Chat, link string) (*ChatInviteLink, error) return nil, err } - var resp ChatInviteLink + var resp ChatInviteLinkResult if err := json.Unmarshal(data, &resp); err != nil { return nil, wrapError(err) } - return &resp, nil + return &resp.Result, nil } diff --git a/bot_test.go b/bot_test.go index f69c664..958bfec 100644 --- a/bot_test.go +++ b/bot_test.go @@ -480,4 +480,30 @@ func TestBot(t *testing.T) { require.NoError(t, err) assert.Equal(t, orig, cmds) }) + + t.Run("CreateInviteLink", func(t *testing.T) { + inviteLink, err := b.CreateInviteLink(&Chat{ID: chatID}, nil) + assert.Nil(t, err) + assert.True(t, len(inviteLink.InviteLink) > 0) + }) + + t.Run("EditInviteLink", func(t *testing.T) { + inviteLink, err := b.CreateInviteLink(&Chat{ID: chatID}, nil) + assert.Nil(t, err) + assert.True(t, len(inviteLink.InviteLink) > 0) + + response, err := b.EditInviteLink(&Chat{ID: chatID}, &ChatInviteLink{InviteLink: inviteLink.InviteLink}) + assert.Nil(t, err) + assert.True(t, len(response.InviteLink) > 0) + }) + + t.Run("RevokeInviteLink", func(t *testing.T) { + inviteLink, err := b.CreateInviteLink(&Chat{ID: chatID}, nil) + assert.Nil(t, err) + assert.True(t, len(inviteLink.InviteLink) > 0) + + response, err := b.RevokeInviteLink(&Chat{ID: chatID}, inviteLink.InviteLink) + assert.Nil(t, err) + assert.True(t, len(response.InviteLink) > 0) + }) }