defmodule Solicit.Plugs.Parsers do @moduledoc """ Creates a wrapper around Plug.Parsers to catch Parsers Errors. See Plug.Parsers documentation """ alias Plug.Parsers def init(opts), do: Parsers.init(opts) def call(conn, options) do Parsers.call(conn, options) rescue _e in Parsers.ParseError -> Solicit.Response.bad_request(conn, "Request is malformed.") _e in Parsers.RequestTooLargeError -> Solicit.Response.request_entity_too_large(conn) _e in Parsers.UnsupportedMediaTypeError -> Solicit.Response.unsupported_media_type(conn) _e in Parsers.BadEncodingError -> Solicit.Response.bad_request(conn, "Request has bad encoding.") end end