Current section

Files

Jump to
ash_json_api lib ash_json_api error invalid_body.ex
Raw

lib/ash_json_api/error/invalid_body.ex

defmodule AshJsonApi.Error.InvalidBody do
@moduledoc """
Returned when the request body provided is invalid
"""
use Splode.Error, class: :invalid, fields: [:json_xema_error]
def message(exception) do
"Invalid body: #{exception.json_xema_error}"
end
defimpl AshJsonApi.ToJsonApiError do
def to_json_api_error(error) do
error.json_xema_error
|> AshJsonApi.Error.SchemaErrors.all_errors(:json_pointer)
|> Enum.map(fn %{path: path, message: message} ->
%AshJsonApi.Error{
id: Ash.UUID.generate(),
status_code: 400,
source_pointer: path,
code: "invalid_body",
title: "InvalidBody",
detail: message,
meta: %{}
}
end)
end
end
end