ChangesetMerger v0.3.9 ChangesetMerger.ExpiresAt View Source

Link to this section Summary

Link to this section Functions

Link to this function defaulted(changeset, field, num, units) View Source

Add a token to your changeset if none is already set

Examples

iex> ChangesetMerger.create(%{"token_expires_at" => Timex.parse!("2015-09-21T04:50:34-05:00", "{ISO:Extended}")}, %{token_expires_at: :utc_datetime})
...> |> ChangesetMerger.ExpiresAt.defaulted(:token_expires_at, "2017-09-21T04:50:34-05:00", 1, :days)
...> |> Map.get(:changes)
...> |> Map.get(:token_expires_at)
...> |> Timex.format!("{ISO:Basic}")
"20150921T045034+0000"

iex> ChangesetMerger.create(%{"token_expires_at" => nil}, %{token_expires_at: :utc_datetime})
...> |> ChangesetMerger.ExpiresAt.defaulted(:token_expires_at, "2017-09-21T04:50:34-05:00", 1, :days)
...> |> Map.get(:changes)
...> |> Map.get(:token_expires_at)
...> |> Timex.format!("{ISO:Basic}")
"20170922T045034-0500"
Link to this function defaulted(changeset, field, start_date_time, num, units) View Source
Link to this function force(changeset, field, num, units) View Source

Set a new token to your changeset

Examples

iex> ChangesetMerger.create(%{"token_expires_at" => Timex.parse!("2015-09-21T04:50:34-05:00", "{ISO:Extended}")}, %{token_expires_at: :utc_datetime})
...> |> ChangesetMerger.ExpiresAt.force(:token_expires_at, "2017-09-21T04:50:34-05:00", 1, :days)
...> |> Map.get(:changes)
...> |> Map.get(:token_expires_at)
...> |> Timex.format!("{ISO:Basic}")
"20170922T045034-0500"

iex> ChangesetMerger.create(%{"token_expires_at" => nil}, %{token_expires_at: :utc_datetime})
...> |> ChangesetMerger.ExpiresAt.force(:token_expires_at, "2017-09-21T04:50:34-05:00", 1, :days)
...> |> Map.get(:changes)
...> |> Map.get(:token_expires_at)
...> |> Timex.format!("{ISO:Basic}")
"20170922T045034-0500"
Link to this function force(changeset, field, start_date_time, num, units) View Source

Generate an unguessable (non incremented) public token_expires_at

Examples

iex> ChangesetMerger.ExpiresAt.generate("2017-09-21T04:50:34-05:00", 2, :days) |> Timex.format!("{ISO:Basic}")
"20170923T045034-0500"

iex> ChangesetMerger.ExpiresAt.generate("2017-09-21T04:50:34-05:00", 3, :minutes) |> Timex.format!("{ISO:Basic}")
"20170921T045334-0500"
Link to this function generate(start_date_time, num, units) View Source