-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()).