Packages
open_api_spex
3.3.0
3.22.3
3.22.2
3.22.1
3.22.0
3.21.5
3.21.4
3.21.3
3.21.2
3.21.1
3.21.0
3.20.1
3.20.0
3.19.1
3.19.0
3.18.3
3.18.2
3.18.1
3.18.0
3.17.3
3.17.2
3.17.1
3.17.0
3.16.4
3.16.3
3.16.2
3.16.1
3.16.0
3.15.0
3.14.0
3.13.0
3.12.0
3.11.0
3.10.0
3.9.0
3.8.0
3.7.0
3.6.0
3.5.2
3.5.1
3.5.0
3.4.0
3.3.0
3.2.1
3.2.0
3.1.0
3.0.0
2.3.1
2.3.0
2.2.0
2.1.1
2.1.0
2.0.0
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
1.0.0
Leverage Open Api Specification 3 (swagger) to document, test, validate and explore your Plug and Phoenix APIs.
Current section
Files
Jump to
Current section
Files
lib/open_api_spex/cast/all_of.ex
defmodule OpenApiSpex.Cast.AllOf do
@moduledoc false
alias OpenApiSpex.Cast
def cast(ctx),
do: cast_all_of(ctx, nil)
defp cast_all_of(%{schema: %{type: _, allOf: [schema | remaining]}} = ctx, result) do
with {:ok, value} <- Cast.cast(%{ctx | schema: schema}) do
new_schema = %{ctx.schema | allOf: remaining}
cast_all_of(%{ctx | schema: new_schema}, result || {:ok, value})
else
_ -> Cast.error(ctx, {:all_of, to_string(schema.title || schema.type)})
end
end
defp cast_all_of(_, {:ok, result}) do
{:ok, result}
end
end