Current section

Files

Jump to
cigogne src cigogne@internal@utils.erl
Raw

src/cigogne@internal@utils.erl

-module(cigogne@internal@utils).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/cigogne/internal/utils.gleam").
-export([describe_decode_error/1, describe_query_error/1, describe_transaction_error/1, epoch/0, make_sha256/1]).
-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(false).
-file("src/cigogne/internal/utils.gleam", 40).
?DOC(false).
-spec describe_decode_error(gleam@dynamic@decode:decode_error()) -> binary().
describe_decode_error(Error) ->
<<<<<<<<<<<<"Expecting : "/utf8, (erlang:element(2, Error))/binary>>/binary,
", Got : "/utf8>>/binary,
(erlang:element(3, Error))/binary>>/binary,
" [at "/utf8>>/binary,
(begin
_pipe = erlang:element(4, Error),
gleam@string:join(_pipe, <<"/"/utf8>>)
end)/binary>>/binary,
"]"/utf8>>.
-file("src/cigogne/internal/utils.gleam", 11).
?DOC(false).
-spec describe_query_error(pog:query_error()) -> binary().
describe_query_error(Error) ->
case Error of
connection_unavailable ->
<<"CONNECTION UNAVAILABLE"/utf8>>;
{constraint_violated, Message, _, _} ->
Message;
{postgresql_error, _, _, Message@1} ->
<<"Postgresql error : "/utf8, Message@1/binary>>;
{unexpected_argument_count, Expected, Got} ->
<<<<<<<<"Expected "/utf8,
(erlang:integer_to_binary(Expected))/binary>>/binary,
" arguments, got "/utf8>>/binary,
(erlang:integer_to_binary(Got))/binary>>/binary,
" !"/utf8>>;
{unexpected_argument_type, Expected@1, Got@1} ->
<<<<<<<<"Expected argument of type "/utf8, Expected@1/binary>>/binary,
", got "/utf8>>/binary,
Got@1/binary>>/binary,
" !"/utf8>>;
{unexpected_result_type, Errs} ->
<<"Unexpected result type ! \n"/utf8,
(begin
_pipe = gleam@list:map(Errs, fun describe_decode_error/1),
gleam@string:join(_pipe, <<"\n"/utf8>>)
end)/binary>>;
query_timeout ->
<<"Query Timeout"/utf8>>
end.
-file("src/cigogne/internal/utils.gleam", 32).
?DOC(false).
-spec describe_transaction_error(pog:transaction_error(binary())) -> binary().
describe_transaction_error(Error) ->
case Error of
{transaction_query_error, Suberror} ->
describe_query_error(Suberror);
{transaction_rolled_back, Message} ->
<<"Transaction rolled back : "/utf8, Message/binary>>
end.
-file("src/cigogne/internal/utils.gleam", 50).
?DOC(false).
-spec epoch() -> gleam@time@timestamp:timestamp().
epoch() ->
Epoch_date = {date, 1970, january, 1},
Epoch_time = {time_of_day, 0, 0, 0, 0},
gleam@time@timestamp:from_calendar(Epoch_date, Epoch_time, {duration, 0, 0}).
-file("src/cigogne/internal/utils.gleam", 56).
?DOC(false).
-spec make_sha256(binary()) -> binary().
make_sha256(Content) ->
_pipe = gleam@crypto:hash(sha256, gleam_stdlib:identity(Content)),
gleam_stdlib:base16_encode(_pipe).