Packages

Gleam library for interacting with Automatic Certificate Management Environment (ACME) servers like Let's Encrypt

Current section

Files

Jump to
acumen src acumen@account.erl
Raw

src/acumen@account.erl

-module(acumen@account).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/acumen/account.gleam").
-export([decoder/0]).
-export_type([account/0, status/0, external_account_binding/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 types for ACME.\n"
"\n"
" An account represents your identity with the ACME server and is required\n"
" for all certificate operations.\n"
).
-type account() :: {account,
status(),
list(binary()),
gleam@option:option(acumen@url:url()),
gleam@option:option(boolean())}.
-type status() :: valid | deactivated | revoked.
-type external_account_binding() :: {external_account_binding,
binary(),
bitstring()}.
-file("src/acumen/account.gleam", 74).
-spec status_decoder() -> gleam@dynamic@decode:decoder(status()).
status_decoder() ->
gleam@dynamic@decode:then(
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(String) -> case String of
<<"valid"/utf8>> ->
gleam@dynamic@decode:success(valid);
<<"deactivated"/utf8>> ->
gleam@dynamic@decode:success(deactivated);
<<"revoked"/utf8>> ->
gleam@dynamic@decode:success(revoked);
_ ->
gleam@dynamic@decode:failure(valid, <<"Status"/utf8>>)
end end
).
-file("src/acumen/account.gleam", 49).
?DOC(false).
-spec decoder() -> gleam@dynamic@decode:decoder(account()).
decoder() ->
gleam@dynamic@decode:field(
<<"status"/utf8>>,
status_decoder(),
fun(Status) ->
gleam@dynamic@decode:optional_field(
<<"contact"/utf8>>,
[],
gleam@dynamic@decode:list(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Contacts) ->
gleam@dynamic@decode:optional_field(
<<"orders"/utf8>>,
none,
gleam@dynamic@decode:optional(acumen@url:decoder()),
fun(Orders_url) ->
gleam@dynamic@decode:optional_field(
<<"termsOfServiceAgreed"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_bool/1}
),
fun(Tos_agreed) ->
gleam@dynamic@decode:success(
{account,
Status,
Contacts,
Orders_url,
Tos_agreed}
)
end
)
end
)
end
)
end
).