CastParams


Build StatusHex pmCoverage Status

Casting params in Phoenix controllers.

defmodule AccountController do
use AppWeb, :controller
use CastParams
# define params types
# :category_id - required integer param (raise CastParams.NotFound if not exists)
# :weight - float param, set nil if doesn't exists
cast_params category_id: :integer!, weight: :float
# defining for show action
# *:name* - is required string param
# *:terms* - is boolean param
cast_params name: :string!, terms: :boolean when action == :show
# received prepared params
def index(conn, %{"category_id" => category_id, "weight" => weight} = params) do
end
# received prepared params
def show(conn, %{"category_id" => category_id, "terms" => terms, "weight" => weight} = params) do
end
end

Documentation can be found at https://hexdocs.pm/cast_params.

Installation

If available in Hex, the package can be installed by adding cast_params to your list of dependencies in mix.exs:

def deps do
[
{:cast_params, ">= 0.0.1"}
]
end

License

This software is licensed under the MIT license.