import gleam/http/request.{type Request} import spacetraders_models/account_token.{type AccountToken} import spacetraders_models/agent_token.{type AgentToken} pub type AuthMethod { AccountAuth(AccountToken) AgentAuth(AgentToken) NoAuth } pub fn apply(req: Request(a), auth_method: AuthMethod) -> Request(a) { case auth_method { NoAuth -> req AccountAuth(account_token) -> req |> request.set_header( "Authorization", "Bearer " <> account_token.to_string(account_token), ) AgentAuth(agent_token) -> req |> request.set_header( "Authorization", "Bearer " <> agent_token.to_string(agent_token), ) } }