Packages
zoi
0.8.1
0.18.7
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.1
0.16.0
0.15.0
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.11.1
0.11.0
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.9.0-rc.1
0.9.0-rc.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Zoi is a schema validation library for Elixir, designed to provide a simple and flexible way to define and validate data.
Current section
Files
Jump to
Current section
Files
lib/zoi/iso/time.ex
defmodule Zoi.ISO.Time do
@moduledoc false
use Zoi.Type.Def
def new(opts \\ []) do
opts = Keyword.merge([error: "invalid type: must be an ISO time"], opts)
apply_type(opts)
end
defimpl Zoi.Type do
def parse(schema, input, _opts) when is_binary(input) do
case Time.from_iso8601(input) do
{:error, _reason} ->
error(schema)
{:ok, _date} ->
{:ok, input}
end
end
def parse(schema, _input, _opts) do
error(schema)
end
defp error(schema) do
{:error, schema.meta.error}
end
def type_spec(_schema, _opts) do
quote(do: binary())
end
end
end