Packages
ami_models
0.1.0
Package containing all AMI Models shared between micro-services.
Retired package: Deprecated - faulty
Current section
Files
Jump to
Current section
Files
lib/ami/tag.ex
defmodule Ami.Tag do
use Ecto.Schema
import Ecto.{
Query,
Changeset
}
alias Ami.{
Repo,
Course,
Lesson
}
schema "tags" do
field(:name, :string)
timestamps()
many_to_many(:lessons, Lesson, join_through: "lessons_tags")
end
def find_or_build_tag(tag_name) do
case Repo.get_by(__MODULE__, name: tag_name) do
tag = %__MODULE__{} -> tag
nil -> %__MODULE__{name: tag_name}
end
end
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:name])
|> validate_required([:name])
|> unique_constraint(:name)
end
end