44
lib/eventos/coherence/rememberable.ex
Normal file
44
lib/eventos/coherence/rememberable.ex
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
Reference in New Issue
Block a user