Current section
Files
Jump to
Current section
Files
lib/parameter/types/time.ex
defmodule Parameter.Types.Time do
@moduledoc """
Time parameter type
"""
use Parameter.Parametrizable
@impl true
def load(%Time{} = value) do
{:ok, value}
end
def load({_hour, _min, _sec} = value) do
case Time.from_erl(value) do
{:error, _reason} -> error_tuple()
{:ok, date} -> {:ok, date}
end
end
def load(value) when is_binary(value) do
case Time.from_iso8601(value) do
{:error, _reason} -> error_tuple()
{:ok, date} -> {:ok, date}
end
end
def load(_value) do
error_tuple()
end
@impl true
def validate(%Time{}) do
:ok
end
def validate(_value) do
error_tuple()
end
defp error_tuple, do: {:error, "invalid time type"}
end