Current section
Files
Jump to
Current section
Files
src/valguard@validate.erl
-module(valguard@validate).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/valguard/validate.gleam").
-export([int_required/2, int_min/3, int_max/3, float_required/2, float_min/3, float_max/3, string_required/2, string_min/3, string_max/3, string_length/3, string_starts_with/3, string_ends_with/3, string_contains/3, date_is_valid/2, email_is_valid/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.
-file("src/valguard/validate.gleam", 12).
?DOC(" Requires a int to be less than or greater than 0 to be considered required\n").
-spec int_required(integer(), binary()) -> {ok, nil} | {error, binary()}.
int_required(Value, Message) ->
case Value /= 0 of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 20).
?DOC(" Validates an int is at least a minimum value. Returns an error if value is less than the minimum\n").
-spec int_min(integer(), integer(), binary()) -> {ok, nil} | {error, binary()}.
int_min(Value, Minimum, Message) ->
case Value < Minimum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 32).
?DOC(" Validates an int is at most a maximum value. Returns an error if value is greater than the maximum\n").
-spec int_max(integer(), integer(), binary()) -> {ok, nil} | {error, binary()}.
int_max(Value, Maximum, Message) ->
case Value > Maximum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 44).
?DOC(" Requires a float to be less than or greater than 0.0 to be considered required\n").
-spec float_required(float(), binary()) -> {ok, nil} | {error, binary()}.
float_required(Value, Message) ->
case (Value > +0.0) orelse (Value < +0.0) of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 55).
?DOC(" Validates a float is at least a minimum value. Returns an error if value is less than the minimum\n").
-spec float_min(float(), float(), binary()) -> {ok, nil} | {error, binary()}.
float_min(Value, Minimum, Message) ->
case Value < Minimum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 67).
?DOC(" Validates a float is at most a maximum value. Returns an error if value is greater than the maximum\n").
-spec float_max(float(), float(), binary()) -> {ok, nil} | {error, binary()}.
float_max(Value, Maximum, Message) ->
case Value > Maximum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 79).
?DOC(" Requires a string to not be empty to be considered required\n").
-spec string_required(binary(), binary()) -> {ok, nil} | {error, binary()}.
string_required(Value, Message) ->
case gleam@string:is_empty(Value) of
false ->
{ok, nil};
true ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 90).
?DOC(" Validates a string is a minimum length\n").
-spec string_min(binary(), integer(), binary()) -> {ok, nil} | {error, binary()}.
string_min(Value, Minimum, Message) ->
case string:length(Value) < Minimum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 102).
?DOC(" Validates a string is at most a maximum length\n").
-spec string_max(binary(), integer(), binary()) -> {ok, nil} | {error, binary()}.
string_max(Value, Maximum, Message) ->
case string:length(Value) > Maximum of
true ->
{error, Message};
false ->
{ok, nil}
end.
-file("src/valguard/validate.gleam", 114).
?DOC(" Validates a string is a defined length\n").
-spec string_length(binary(), integer(), binary()) -> {ok, nil} |
{error, binary()}.
string_length(Value, Len, Message) ->
case string:length(Value) =:= Len of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 126).
?DOC(" Validates a string starts with a value\n").
-spec string_starts_with(binary(), binary(), binary()) -> {ok, nil} |
{error, binary()}.
string_starts_with(Value, With, Message) ->
case gleam_stdlib:string_starts_with(Value, With) of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 138).
?DOC(" Validates a string ends with a value\n").
-spec string_ends_with(binary(), binary(), binary()) -> {ok, nil} |
{error, binary()}.
string_ends_with(Value, With, Message) ->
case gleam_stdlib:string_ends_with(Value, With) of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 150).
?DOC(" Validates a string contains a value\n").
-spec string_contains(binary(), binary(), binary()) -> {ok, nil} |
{error, binary()}.
string_contains(Value, Contains, Message) ->
case gleam_stdlib:contains_string(Value, Contains) of
true ->
{ok, nil};
false ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 178).
?DOC(" Validates that a date is valid by checking it can be parsed correctly\n").
-spec date_is_valid(binary(), binary()) -> {ok, nil} | {error, binary()}.
date_is_valid(Datetime, Message) ->
case gleam@time@timestamp:parse_rfc3339(Datetime) of
{ok, _} ->
{ok, nil};
{error, _} ->
{error, Message}
end.
-file("src/valguard/validate.gleam", 162).
?DOC(" Validates if entered email is a valid email address\n").
-spec email_is_valid(binary(), binary()) -> {ok, nil} | {error, binary()}.
email_is_valid(Email, Message) ->
gleam@result:'try'(
begin
_pipe = gleam@regexp:from_string(
<<"^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"/utf8>>
),
gleam@result:replace_error(_pipe, Message)
end,
fun(Re) -> case gleam@regexp:check(Re, Email) of
false ->
{error, Message};
true ->
{ok, nil}
end end
).