Skip to content

Commit 011e6c5

Browse files
committed
Add Get Webhook Message endpoint
Closes #452
1 parent af9dd6d commit 011e6c5

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

rest/rest_endpoints.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ var (
259259
UpdateWebhookWithToken = NewNoBotAuthEndpoint(http.MethodPatch, "/webhooks/{webhook.id}/{webhook.token}")
260260
DeleteWebhookWithToken = NewNoBotAuthEndpoint(http.MethodDelete, "/webhooks/{webhook.id}/{webhook.token}")
261261

262+
GetWebhookMessage = NewNoBotAuthEndpoint(http.MethodGet, "/webhooks/{webhook.id}/{webhook.token}/messages/{message.id}")
262263
CreateWebhookMessage = NewNoBotAuthEndpoint(http.MethodPost, "/webhooks/{webhook.id}/{webhook.token}")
263264
CreateWebhookMessageSlack = NewNoBotAuthEndpoint(http.MethodPost, "/webhooks/{webhook.id}/{webhook.token}/slack")
264265
CreateWebhookMessageGitHub = NewNoBotAuthEndpoint(http.MethodPost, "/webhooks/{webhook.id}/{webhook.token}/github")

rest/webhooks.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ type Webhooks interface {
2121
UpdateWebhookWithToken(webhookID snowflake.ID, webhookToken string, webhookUpdate discord.WebhookUpdateWithToken, opts ...RequestOpt) (discord.Webhook, error)
2222
DeleteWebhookWithToken(webhookID snowflake.ID, webhookToken string, opts ...RequestOpt) error
2323

24+
GetWebhookMessage(webhookID snowflake.ID, webhookToken string, messageID snowflake.ID, opts ...RequestOpt) (*discord.Message, error)
2425
CreateWebhookMessage(webhookID snowflake.ID, webhookToken string, messageCreate discord.WebhookMessageCreate, params CreateWebhookMessageParams, opts ...RequestOpt) (*discord.Message, error)
2526
CreateWebhookMessageSlack(webhookID snowflake.ID, webhookToken string, messageCreate discord.Payload, params CreateWebhookMessageParams, opts ...RequestOpt) (*discord.Message, error)
2627
CreateWebhookMessageGitHub(webhookID snowflake.ID, webhookToken string, messageCreate discord.Payload, params CreateWebhookMessageParams, opts ...RequestOpt) (*discord.Message, error)
@@ -112,6 +113,11 @@ func (s *webhookImpl) DeleteWebhookWithToken(webhookID snowflake.ID, webhookToke
112113
return s.client.Do(DeleteWebhookWithToken.Compile(nil, webhookID, webhookToken), nil, nil, opts...)
113114
}
114115

116+
func (s *webhookImpl) GetWebhookMessage(webhookID snowflake.ID, webhookToken string, messageID snowflake.ID, opts ...RequestOpt) (message *discord.Message, err error) {
117+
err = s.client.Do(GetWebhookMessage.Compile(nil, webhookID, webhookToken, messageID), nil, &message, opts...)
118+
return
119+
}
120+
115121
func (s *webhookImpl) createWebhookMessage(webhookID snowflake.ID, webhookToken string, messageCreate discord.Payload, params CreateWebhookMessageParams, endpoint *Endpoint, opts []RequestOpt) (message *discord.Message, err error) {
116122
compiledEndpoint := endpoint.Compile(params.ToQueryValues(), webhookID, webhookToken)
117123

webhook/webhook_client.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ type Client interface {
3232
// DeleteWebhook deletes the current Webhook
3333
DeleteWebhook(opts ...rest.RequestOpt) error
3434

35+
// GetMessage fetches a webhook Message by its id
36+
GetMessage(messageID snowflake.ID, opts ...rest.RequestOpt) (*discord.Message, error)
37+
3538
// CreateMessage creates a new Message from the discord.WebhookMessageCreate
3639
CreateMessage(messageCreate discord.WebhookMessageCreate, opts ...rest.RequestOpt) (*discord.Message, error)
3740
// CreateMessageInThread creates a new Message from the discord.WebhookMessageCreate in the provided thread

webhook/webhook_client_impl.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ func (c *clientImpl) DeleteWebhook(opts ...rest.RequestOpt) error {
9292
return c.Rest().DeleteWebhookWithToken(c.id, c.token, opts...)
9393
}
9494

95+
func (c *clientImpl) GetMessage(messageID snowflake.ID, opts ...rest.RequestOpt) (*discord.Message, error) {
96+
return c.Rest().GetWebhookMessage(c.id, c.token, messageID, opts...)
97+
}
98+
9599
func (c *clientImpl) CreateMessageInThread(messageCreate discord.WebhookMessageCreate, threadID snowflake.ID, opts ...rest.RequestOpt) (*discord.Message, error) {
96100
return c.Rest().CreateWebhookMessage(c.id, c.token, messageCreate, rest.CreateWebhookMessageParams{Wait: true, ThreadID: threadID}, opts...)
97101
}

0 commit comments

Comments
 (0)