View Source Params.Schema (Params v2.3.0)

Defines a params schema for a module.

A params schema is just a map where keys are the parameter name (ending with a ! to mark the parameter as required) and the value is either a valid Ecto.Type, another map for embedded schemas or an array of those.

Example

defmodule ProductSearch do
  use Params.Schema, %{
    text!: :string,
    near: %{
      latitude!:  :float,
      longitude!: :float
    },
    tags: [:string]
  }
end

To get an Ecto.Changeset for ProductSearch params use:

changeset = ProductSearch.from(params)

To transform the changeset into a map or %ProductSearch{}struct use Params.changes/1 or Params.data/1 respectively.