Current section
Files
Jump to
Current section
Files
src/kitazith@internal@validation@common.erl
-module(kitazith@internal@validation@common).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/kitazith/internal/validation/common.gleam").
-export([validate_with_query/4, error/2, validate_string_length/4, validate_string_max_length/3, validate_list_max_length/4, join_path/2, indexed_path/2]).
-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/kitazith/internal/validation/common.gleam", 7).
?DOC(false).
-spec validate_with_query(
ELD,
ELE,
fun((ELD) -> {ok, ELD} |
{error, list(kitazith@validation:validation_error())}),
fun((ELE, ELD) -> list(kitazith@validation:validation_error()))
) -> {ok, ELD} | {error, list(kitazith@validation:validation_error())}.
validate_with_query(Payload, Query, Validate, Validate_query) ->
Errors@1 = lists:append([case Validate(Payload) of
{ok, _} ->
[];
{error, Errors} ->
Errors
end, Validate_query(Query, Payload)]),
case Errors@1 of
[] ->
{ok, Payload};
_ ->
{error, Errors@1}
end.
-file("src/kitazith/internal/validation/common.gleam", 86).
?DOC(false).
-spec error(binary(), kitazith@validation:validation_reason()) -> kitazith@validation:validation_error().
error(Path, Reason) ->
{validation_error, Path, Reason}.
-file("src/kitazith/internal/validation/common.gleam", 28).
?DOC(false).
-spec validate_string_length(binary(), binary(), integer(), integer()) -> list(kitazith@validation:validation_error()).
validate_string_length(Path, Value, Min, Max) ->
Length = string:length(Value),
case (Length >= Min) andalso (Length =< Max) of
true ->
[];
false ->
[error(Path, {string_length_out_of_range, Min, Max, Length})]
end.
-file("src/kitazith/internal/validation/common.gleam", 44).
?DOC(false).
-spec validate_string_max_length(binary(), binary(), integer()) -> list(kitazith@validation:validation_error()).
validate_string_max_length(Path, Value, Max) ->
Length = string:length(Value),
case Length =< Max of
true ->
[];
false ->
[error(Path, {string_length_exceeded, Max, Length})]
end.
-file("src/kitazith/internal/validation/common.gleam", 59).
?DOC(false).
-spec validate_list_max_length(binary(), list(any()), integer(), binary()) -> list(kitazith@validation:validation_error()).
validate_list_max_length(Path, Items, Max, Noun) ->
Count = erlang:length(Items),
case Count =< Max of
true ->
[];
false ->
[error(Path, {list_length_exceeded, Max, Count, Noun})]
end.
-file("src/kitazith/internal/validation/common.gleam", 78).
?DOC(false).
-spec join_path(binary(), binary()) -> binary().
join_path(Base, Suffix) ->
<<<<Base/binary, "."/utf8>>/binary, Suffix/binary>>.
-file("src/kitazith/internal/validation/common.gleam", 82).
?DOC(false).
-spec indexed_path(binary(), integer()) -> binary().
indexed_path(Base, Index) ->
erlang:list_to_binary(
[Base, <<"["/utf8>>, erlang:integer_to_binary(Index), <<"]"/utf8>>]
).