-module(rocksky@graph).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/graph.gleam").
-export([follow/1, unfollow/1, get_followers/1, get_follows/1, get_known_followers/1, with_dids/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(" `app.rocksky.graph.*` — follow graph.\n").
-file("src/rocksky/graph.gleam", 8).
?DOC(" `app.rocksky.graph.followAccount` — follow an actor (`did` or handle).\n").
-spec follow(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
follow(Account) ->
_pipe = rocksky:procedure(
<<"app.rocksky.graph.followAccount"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"account"/utf8>>, Account).
-file("src/rocksky/graph.gleam", 14).
?DOC(" `app.rocksky.graph.unfollowAccount` — unfollow an actor.\n").
-spec unfollow(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
unfollow(Account) ->
_pipe = rocksky:procedure(
<<"app.rocksky.graph.unfollowAccount"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"account"/utf8>>, Account).
-file("src/rocksky/graph.gleam", 21).
?DOC(
" `app.rocksky.graph.getFollowers` — list followers of `actor`. Refine with\n"
" `with_dids`, `rocksky.limit`, `rocksky.cursor`.\n"
).
-spec get_followers(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_followers(Actor) ->
_pipe = rocksky:'query'(
<<"app.rocksky.graph.getFollowers"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"actor"/utf8>>, Actor).
-file("src/rocksky/graph.gleam", 27).
?DOC(" `app.rocksky.graph.getFollows` — list accounts `actor` follows.\n").
-spec get_follows(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_follows(Actor) ->
_pipe = rocksky:'query'(
<<"app.rocksky.graph.getFollows"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"actor"/utf8>>, Actor).
-file("src/rocksky/graph.gleam", 33).
?DOC(" `app.rocksky.graph.getKnownFollowers` — followers known to the viewer.\n").
-spec get_known_followers(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_known_followers(Actor) ->
_pipe = rocksky:'query'(
<<"app.rocksky.graph.getKnownFollowers"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1}
),
rocksky:param(_pipe, <<"actor"/utf8>>, Actor).
-file("src/rocksky/graph.gleam", 39).
?DOC(" Filter the result to a specific set of DIDs (server-side).\n").
-spec with_dids(rocksky:request(HTN), list(binary())) -> rocksky:request(HTN).
with_dids(Req, Dids) ->
rocksky:repeated_param(Req, <<"dids"/utf8>>, Dids).