@@ -6,24 +6,21 @@ defmodule CodeCorps.Validators.TimeValidator do
66 alias Ecto.Changeset
77
88 @ doc """
9- Validates a time after a given time.
9+ Validates the new time is not before the previous time.
1010 """
11- def validate_time_after ( % { data: data } = changeset , field ) do
11+ def validate_time_not_before ( % { data: data } = changeset , field ) do
1212 previous_time = Map . get ( data , field )
1313 current_time = Changeset . get_change ( changeset , field )
1414 case current_time do
1515 nil -> changeset
16- _ -> do_validate_time_after ( changeset , field , previous_time , current_time )
16+ _ -> do_validate_time_not_before ( changeset , field , previous_time , current_time )
1717 end
1818 end
1919
20- defp do_validate_time_after ( changeset , field , previous_time , current_time ) do
21- is_after = current_time |> Timex . after? ( previous_time )
22- is_equal = current_time |> Timex . equal? ( previous_time )
23- after_or_equal = is_after || is_equal
24- case after_or_equal do
25- true -> changeset
26- false -> Changeset . add_error ( changeset , field , "cannot be before the last recorded time" )
20+ defp do_validate_time_not_before ( changeset , field , previous_time , current_time ) do
21+ case Timex . before? ( current_time , previous_time ) do
22+ true -> Changeset . add_error ( changeset , field , "cannot be before the last recorded time" )
23+ false -> changeset
2724 end
2825 end
2926end
0 commit comments