-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, join_path/2, indexed_path/2, error/2, validate_string_length/4, validate_string_max_length/3, validate_list_max_length/4]). -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( ELJ, ELK, fun((ELJ) -> {ok, ELJ} | {error, list(kitazith@validation:validation_error())}), fun((ELK, ELJ) -> list(kitazith@validation:validation_error())) ) -> {ok, ELJ} | {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", 78). ?DOC(false). -spec join_path(binary(), binary()) -> binary(). join_path(Base, Suffix) -> <<<>/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>>] ). -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.