defmodule DateParams.Plug do @moduledocc""" A helpful plug that take incoming paramaters and transforms the values into native `Date` and `NaiveDateTime` structs. Set it up in a controller like so: plug DateParams.Plug, [["vacation", "starts_at"], ["vacation", "ends_at"]] """ def init(opts), do: opts def call(conn = %{params: params}, opts) do %{conn | params: DateParams.to_structs(params, opts)} end end