Current section
Files
Jump to
Current section
Files
src/parrot@sql.erl
-module(parrot@sql).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([datetime_decoder/0]).
-export_type([param/0]).
-type param() :: {param_int, integer()} |
{param_string, binary()} |
{param_float, float()} |
{param_bool, boolean()} |
{param_timestamp, gleam@time@timestamp:timestamp()} |
{param_dynamic, gleam@dynamic:dynamic_()}.
-file("src/parrot/sql.gleam", 13).
-spec datetime_decoder() -> gleam@dynamic@decode:decoder(gleam@time@timestamp:timestamp()).
datetime_decoder() ->
_pipe = {decoder, fun gleam@dynamic@decode:decode_string/1},
gleam@dynamic@decode:then(
_pipe,
fun(Datetime_str) ->
case gleam@time@timestamp:parse_rfc3339(Datetime_str) of
{ok, Ts} ->
gleam@dynamic@decode:success(Ts);
{error, _} ->
gleam@dynamic@decode:failure(
gleam@time@timestamp:from_unix_seconds(0),
<<"Invalid datetime format"/utf8>>
)
end
end
).