lib/apical/_exceptions/content_length_error.ex
defmodule Apical.Exceptions.MissingContentLengthError do
@moduledoc """
Error raised when the `content-length` header is missing from the request.
This error should result in a http 411 status code.
see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411
"""
defexception plug_status: 411
def message(_), do: "missing content-length header"
end
defmodule Apical.Exceptions.MultipleContentLengthError do
@moduledoc """
Error raised multiple `content-length` headers are provided by the request.
This error should result in a http 411 status code.
see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411
"""
defexception plug_status: 411
def message(_), do: "multiple content-length headers found"
end
defmodule Apical.Exceptions.InvalidContentLengthError do
@moduledoc """
Error raised when the `content-length` header does not parse to a valid
integer.
This error should result in a http 411 status code.
see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411
"""
defexception [:invalid_string, plug_status: 411]
def message(error), do: "invalid content-length header provided: #{error.invalid_string}"
end