Packages
maru
0.11.3
0.14.0-pre.1
0.13.2
0.13.1
0.13.0
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.1
0.4.0
0.3.1
0.3.0
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
REST-like API micro-framework for elixir inspired by grape.
Current section
Files
Jump to
Current section
Files
lib/maru/exceptions.ex
defmodule Maru.Exceptions do
defmodule InvalidFormat do
@moduledoc """
Raised when get param from request.
options of reason:
* `:required` raised when a required param not given
* `:illegal` raised when parse param error
"""
defexception [:reason, :param, :value]
def message(e) do
"Parsing Param Error: #{e.param}"
end
end
defmodule Validation do
@moduledoc """
Raised when validate param failed.
"""
defexception [:param, :validator, :value, :option]
def message(e) do
"Validate Param Error: #{inspect e.param}"
end
end
defmodule UndefinedValidator do
@moduledoc """
Raised when validater not found.
"""
defexception [:validator]
def message(e) do
"Undefined Validator: #{e.validator}"
end
end
defmodule UndefinedType do
@moduledoc """
Raised when type not found.
"""
defexception [:type]
def message(e) do
"Undefined Type: #{e.type}"
end
end
defmodule NotFound do
@moduledoc """
Raised when request path don't match any router.
Catch this exception and return 404 like this:
rescue_from Maru.Exceptions.NotFound do
conn
|> put_status(404)
|> text("Not Found")
end
"""
defexception [:method, :path_info]
def message(_e) do
"NotFound"
end
end
defmodule MethodNotAllowed do
@moduledoc """
Raised when request path matched but method not matched.
Catch this exception and return 405 like this:
rescue_from Maru.Exceptions.MethodNotAllowed do
conn
|> put_status(405)
|> text("Method Not Allowed")
end
"""
defexception [:method, :request_path]
def message(_e) do
"MethodNotAllowed"
end
end
end