Current section

Files

Jump to
zoi lib zoi transforms.ex
Raw

lib/zoi/transforms.ex

defmodule Zoi.Transforms do
@moduledoc false
def transform(input, args, ctx: ctx) do
do_transform(ctx.schema, input, args, [])
end
defp do_transform(%Zoi.Types.String{}, input, [:trim], _opts) do
String.trim(input)
end
defp do_transform(%Zoi.Types.String{}, input, [:to_downcase], _opts) do
String.downcase(input)
end
defp do_transform(%Zoi.Types.String{}, input, [:to_upcase], _opts) do
String.upcase(input)
end
defp do_transform(%Zoi.Types.Object{}, input, [struct: struct], _opts) do
struct!(struct, input)
end
defp do_transform(%Zoi.Types.Keyword{}, input, [struct: struct], _opts) do
struct!(struct, input)
end
defp do_transform(_schema, input, _args, _opts) do
# Default to the input if there is no type pattern match
{:ok, input}
end
end