Current section
Files
Jump to
Current section
Files
src/glupbit@exchange@account.erl
-module(glupbit@exchange@account).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glupbit/exchange/account.gleam").
-export([account_balance_decoder/0, get_balances/1]).
-export_type([account_balance/0]).
-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(" Account balance inquiry — `GET /accounts`.\n").
-type account_balance() :: {account_balance,
binary(),
binary(),
binary(),
binary(),
boolean(),
binary()}.
-file("src/glupbit/exchange/account.gleam", 34).
?DOC(" Decoder for account balance.\n").
-spec account_balance_decoder() -> gleam@dynamic@decode:decoder(account_balance()).
account_balance_decoder() ->
gleam@dynamic@decode:field(
<<"currency"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Currency) ->
gleam@dynamic@decode:field(
<<"balance"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Balance) ->
gleam@dynamic@decode:field(
<<"locked"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Locked) ->
gleam@dynamic@decode:field(
<<"avg_buy_price"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Avg_buy_price) ->
gleam@dynamic@decode:field(
<<"avg_buy_price_modified"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_bool/1},
fun(Avg_buy_price_modified) ->
gleam@dynamic@decode:field(
<<"unit_currency"/utf8>>,
{decoder,
fun gleam@dynamic@decode:decode_string/1},
fun(Unit_currency) ->
gleam@dynamic@decode:success(
{account_balance,
Currency,
Balance,
Locked,
Avg_buy_price,
Avg_buy_price_modified,
Unit_currency}
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/glupbit/exchange/account.gleam", 22).
?DOC(
" Get account balances.\n"
" GET /accounts\n"
).
-spec get_balances(glupbit@client:auth_client()) -> {ok,
glupbit@types:api_response(list(account_balance()))} |
{error, glupbit@types:api_error()}.
get_balances(C) ->
glupbit@client:auth_get(
C,
<<"/accounts"/utf8>>,
[],
gleam@dynamic@decode:list(account_balance_decoder())
).