90ceb4f6fe
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
45 lines
1 KiB
Elixir
45 lines
1 KiB
Elixir
defmodule Eventos.Coherence.Rememberable do
|
|
@moduledoc false
|
|
use Ecto.Schema
|
|
|
|
import Ecto.Changeset
|
|
import Ecto.Query
|
|
|
|
alias Coherence.Config
|
|
|
|
|
|
|
|
schema "rememberables" do
|
|
field :series_hash, :string
|
|
field :token_hash, :string
|
|
field :token_created_at, Timex.Ecto.DateTime
|
|
belongs_to :user, Module.concat(Config.module, Config.user_schema)
|
|
|
|
timestamps()
|
|
end
|
|
|
|
use Coherence.Rememberable
|
|
|
|
@doc """
|
|
Creates a changeset based on the `model` and `params`.
|
|
|
|
If no params are provided, an invalid changeset is returned
|
|
with no validation performed.
|
|
"""
|
|
@spec changeset(Ecto.Schema.t, Map.t) :: Ecto.Changeset.t
|
|
def changeset(model, params \\ %{}) do
|
|
model
|
|
|> cast(params, ~w(series_hash token_hash token_created_at user_id))
|
|
|> validate_required(~w(series_hash token_hash token_created_at user_id)a)
|
|
end
|
|
|
|
@doc """
|
|
Creates a changeset for a new schema
|
|
"""
|
|
@spec new_changeset(Map.t) :: Ecto.Changeset.t
|
|
def new_changeset(params \\ %{}) do
|
|
changeset %Rememberable{}, params
|
|
end
|
|
|
|
end
|