27 lines
688 B
Gleam
27 lines
688 B
Gleam
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),
|
|
)
|
|
}
|
|
}
|