ChangesetMerger v0.4.2 ChangesetMerger.ExpiresAt View Source
Several helper functions to generate date/time values to represent an expiring value.
Link to this section Summary
Functions
Add a token to your changeset if none is already set
Set a new token to your changeset
Generate an unguessable (non incremented) public token_expires_at
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" => ChangesetMerger.ExpiresAt.from_iso8601("2015-09-21T04:50:34-05:00")}, %{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)
#DateTime<2015-09-21 09:50:34Z>
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)
#DateTime<2017-09-22 09:50:34Z>
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" => ChangesetMerger.ExpiresAt.from_iso8601("2015-09-21T04:50:34-05:00")}, %{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)
#DateTime<2017-09-22 09:50:34Z>
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)
#DateTime<2017-09-22 09:50:34Z>
Link to this function
force(changeset, field, start_date_time, num, units) View Source
Link to this function
from_iso8601(input) View Source
Link to this function
generate(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)
#DateTime<2017-09-23 09:50:34Z>
iex> ChangesetMerger.ExpiresAt.generate("2017-09-21T04:50:34-05:00", 3, :minutes)
#DateTime<2017-09-21 09:53:34Z>
iex> ChangesetMerger.ExpiresAt.generate("2019-02-04 21:40:15.397138Z", 3, :minutes)
#DateTime<2019-02-04 21:43:15Z>
Link to this function