-module(d1_gleamflare).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/d1_gleamflare.gleam").
-export([new/2, database/3, database_info_decoder/0, list_databases/1, create_database/2, get_database/2]).
-file("src/d1_gleamflare.gleam", 8).
-spec new(binary(), binary()) -> d1_gleamflare@types:client().
new(Account_id, Api_token) ->
{client, Account_id, Api_token}.
-file("src/d1_gleamflare.gleam", 12).
-spec database(d1_gleamflare@types:client(), binary(), binary()) -> d1_gleamflare@types:database().
database(Client, Uuid, Name) ->
{database, Client, Uuid, Name}.
-file("src/d1_gleamflare.gleam", 16).
-spec database_info_decoder() -> fun((gleam@dynamic:dynamic_()) -> {ok,
d1_gleamflare@types:database_info()} |
{error, list(gleam@dynamic:decode_error())}).
database_info_decoder() ->
gleam@dynamic:decode4(
fun(Field@0, Field@1, Field@2, Field@3) -> {database_info, Field@0, Field@1, Field@2, Field@3} end,
gleam@dynamic:field(<<"uuid"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"name"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"created_at"/utf8>>, fun gleam@dynamic:string/1),
gleam@dynamic:field(<<"version"/utf8>>, fun gleam@dynamic:string/1)
).
-file("src/d1_gleamflare.gleam", 26).
-spec list_databases(d1_gleamflare@types:client()) -> {ok,
list(d1_gleamflare@types:database_info())} |
{error, d1_gleamflare@types:error()}.
list_databases(Client) ->
Req = begin
_pipe = d1_gleamflare@internal:base_request(Client),
_pipe@1 = gleam@http@request:set_method(_pipe, get),
gleam@http@request:set_path(
_pipe@1,
<<<<"/client/v4/accounts/"/utf8,
(erlang:element(2, Client))/binary>>/binary,
"/d1/database"/utf8>>
)
end,
d1_gleamflare@internal:send_request(
Req,
gleam@dynamic:list(database_info_decoder())
).
-file("src/d1_gleamflare.gleam", 35).
-spec create_database(d1_gleamflare@types:client(), binary()) -> {ok,
d1_gleamflare@types:database_info()} |
{error, d1_gleamflare@types:error()}.
create_database(Client, Name) ->
Body = begin
_pipe = gleam@json:object([{<<"name"/utf8>>, gleam@json:string(Name)}]),
gleam@json:to_string(_pipe)
end,
Req = begin
_pipe@1 = d1_gleamflare@internal:base_request(Client),
_pipe@2 = gleam@http@request:set_method(_pipe@1, post),
_pipe@3 = gleam@http@request:set_path(
_pipe@2,
<<<<"/client/v4/accounts/"/utf8,
(erlang:element(2, Client))/binary>>/binary,
"/d1/database"/utf8>>
),
gleam@http@request:set_body(_pipe@3, Body)
end,
d1_gleamflare@internal:send_request(Req, database_info_decoder()).
-file("src/d1_gleamflare.gleam", 49).
-spec get_database(d1_gleamflare@types:client(), binary()) -> {ok,
d1_gleamflare@types:database_info()} |
{error, d1_gleamflare@types:error()}.
get_database(Client, Uuid) ->
Req = begin
_pipe = d1_gleamflare@internal:base_request(Client),
_pipe@1 = gleam@http@request:set_method(_pipe, get),
gleam@http@request:set_path(
_pipe@1,
<<<<<<"/client/v4/accounts/"/utf8,
(erlang:element(2, Client))/binary>>/binary,
"/d1/database/"/utf8>>/binary,
Uuid/binary>>
)
end,
d1_gleamflare@internal:send_request(Req, database_info_decoder()).