Packages

A small, transport-agnostic atproto client for Gleam: XRPC, identity, OAuth discovery, blobs, and repo CRUD.

Current section

Files

Jump to
atproto_client src atproto@oauth@metadata.erl
Raw

src/atproto@oauth@metadata.erl

-module(atproto@oauth@metadata).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/atproto/oauth/metadata.gleam").
-export([fetch_protected_resource/2, fetch_authorization_server/2, discover/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" atproto OAuth discovery: from a user's PDS, find the authorization server\n"
" and its endpoints. A thin sync wrapper over the shared effect kernel in\n"
" `atproto/oauth/core/metadata`; the `AuthServerMetadata` type is re-exported\n"
" from there.\n"
).
-file("src/atproto/oauth/metadata.gleam", 13).
-spec fetch_protected_resource(atproto@xrpc:client(), binary()) -> {ok,
list(binary())} |
{error, atproto@xrpc:xrpc_error()}.
fetch_protected_resource(Client, Pds) ->
atproto@oauth@runner:run_readonly(
atproto@oauth@core@metadata:fetch_protected_resource(Pds),
Client
).
-file("src/atproto/oauth/metadata.gleam", 20).
-spec fetch_authorization_server(atproto@xrpc:client(), binary()) -> {ok,
atproto@oauth@core@metadata:auth_server_metadata()} |
{error, atproto@xrpc:xrpc_error()}.
fetch_authorization_server(Client, Issuer) ->
atproto@oauth@runner:run_readonly(
atproto@oauth@core@metadata:fetch_authorization_server(Issuer),
Client
).
-file("src/atproto/oauth/metadata.gleam", 28).
?DOC(" Resolve a PDS to its authorization server's endpoints in one call.\n").
-spec discover(atproto@xrpc:client(), binary()) -> {ok,
atproto@oauth@core@metadata:auth_server_metadata()} |
{error, atproto@xrpc:xrpc_error()}.
discover(Client, Pds) ->
atproto@oauth@runner:run_readonly(
atproto@oauth@core@metadata:discover(Pds),
Client
).