defmodule Oasis do
@moduledoc false
defmodule InvalidSpecError do
defexception message: "use some invalid specification to generate modules"
@moduledoc """
Error raised when use some invalid OpenAPI specification to generate corresponding modules.
"""
end
defmodule FileNotFoundError do
defexception message: "failed to open file to generate modules"
@moduledoc """
Error raised when use an invalid file path to generate corresponding modules.
"""
end
defmodule BadRequestError do
@moduledoc """
Error raised when some reason could not process the request due to client error.
"""
defexception message: "invalid request", use_in: nil, param_name: nil, error: nil, plug_status: 400
defmodule Invalid do
@moduledoc """
This error is used to indicate could not parse a parameter into the type due to client error.
"""
defstruct [:value]
end
defmodule Required do
@moduledoc """
This error is used to indicate there missing a required parameter due to client error.
"""
defstruct([])
end
defmodule JsonSchemaValidationFailed do
@moduledoc """
This error is used to indicate could not pass the validation of the defined json schema.
This module is an equivalent replacement to `ExJsonSchema.Validator.Error`, we could see more detailed information
in the `:error` field be with `"ExJsonSchema.Validator.Error.*"` modules.
"""
defstruct [:error, :path]
end
defmodule InvalidToken do
@moduledoc """
This error is used to indicate the provided token is expired, revoked, malformed, or invalid.
"""
defstruct([])
end
end
defmodule CacheRawBodyReader do
@moduledoc false
def read_body(conn, opts) do
{:ok, body, conn} = Plug.Conn.read_body(conn, opts)
conn = update_in(conn.assigns[:raw_body], &[body | &1 || []])
{:ok, body, conn}
end
end
end