1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-11-30 18:53:30 +00:00

api: Add search endpoint (#236)

Co-authored-by: Terra Brown <superloach42@gmail.com>
This commit is contained in:
samhza 2021-06-25 15:29:14 -04:00 committed by GitHub
parent 8e4e48e25e
commit 7bc2be1498
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

37
api/search.go Normal file
View file

@ -0,0 +1,37 @@
package api
import (
"github.com/diamondburned/arikawa/v3/discord"
"github.com/diamondburned/arikawa/v3/utils/httputil"
"github.com/diamondburned/arikawa/v3/utils/json/option"
)
type SearchData struct {
Offset option.Uint `schema:"offset,omitempty"`
Content string `schema:"content,omitempty"`
Has string `schema:"has,omitempty"`
SortBy string `schema:"sort_by,omitempty"`
SortOrder string `schema:"sort_order,omitempty"`
ChannelID discord.ChannelID `schema:"channel_id,omitempty"`
AuthorID discord.UserID `schema:"author_id,omitempty"`
Mentions discord.UserID `schema:"mentions,omitempty"`
MaxID discord.MessageID `schema:"max_id,omitempty"`
MinID discord.MessageID `schema:"min_id,omitempty"`
}
type SearchResponse struct {
AnalyticsID string `json:"analytics_id"`
Messages [][]discord.Message `json:"messages"`
TotalResults uint `json:"total_results"`
}
// Search searches through a guild's messages. It only works for user accounts.
func (c *Client) Search(guildID discord.GuildID, data SearchData) (SearchResponse, error) {
var resp SearchResponse
return resp, c.RequestJSON(
&resp, "GET",
EndpointGuilds+guildID.String()+"/messages/search",
httputil.WithSchema(c, data),
)
}