From 03de5601709a061ff0fb625553fbd41d26335dc9 Mon Sep 17 00:00:00 2001 From: Filip Hoffmann Date: Wed, 16 Jul 2025 00:54:51 +0200 Subject: [PATCH] get guild member endpoint --- src/grom/guild_member.gleam | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/grom/guild_member.gleam b/src/grom/guild_member.gleam index 205d7e0..66aa96c 100644 --- a/src/grom/guild_member.gleam +++ b/src/grom/guild_member.gleam @@ -1,8 +1,14 @@ import gleam/dynamic/decode +import gleam/http import gleam/int +import gleam/json import gleam/option.{type Option, None} +import gleam/result import gleam/time/timestamp.{type Timestamp} +import grom/client.{type Client} +import grom/error import grom/internal/flags +import grom/internal/rest import grom/internal/time_rfc3339 import grom/user.{type User} @@ -135,3 +141,24 @@ pub fn decoder() -> decode.Decoder(GuildMember) { avatar_decoration_data:, )) } + +// PUBLIC API FUNCTIONS -------------------------------------------------------- + +pub fn get( + client: Client, + for guild_id: String, + id user_id: String, +) -> Result(GuildMember, error.Error) { + use response <- result.try( + client + |> rest.new_request( + http.Get, + "/guilds/" <> guild_id <> "/members/" <> user_id, + ) + |> rest.execute, + ) + + response.body + |> json.parse(using: decoder()) + |> result.map_error(error.CouldNotDecode) +} -- 2.51.2