Skip to main content

src/rocksky@stats.erl

-module(rocksky@stats).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/rocksky/stats.gleam").
-export([get_stats/1, get_wrapped/1]).

-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.stats.*` — aggregate user statistics and Wrapped.\n").

-file("src/rocksky/stats.gleam", 10).
?DOC(" `app.rocksky.stats.getStats` — high-level totals for an actor.\n").
-spec get_stats(binary()) -> rocksky:request(rocksky@generated@types:stats_view()).
get_stats(Did) ->
    _pipe = rocksky:'query'(
        <<"app.rocksky.stats.getStats"/utf8>>,
        rocksky@decoders:stats()
    ),
    rocksky:param(_pipe, <<"did"/utf8>>, Did).

-file("src/rocksky/stats.gleam", 17).
?DOC(
    " `app.rocksky.stats.getWrapped` — end-of-year style summary for an actor.\n"
    " Use `rocksky.year` to scope to a year; omit it to use the current one.\n"
).
-spec get_wrapped(binary()) -> rocksky:request(gleam@dynamic:dynamic_()).
get_wrapped(Did) ->
    _pipe = rocksky:'query'(
        <<"app.rocksky.stats.getWrapped"/utf8>>,
        {decoder, fun gleam@dynamic@decode:decode_dynamic/1}
    ),
    rocksky:param(_pipe, <<"did"/utf8>>, Did).