Packages

Package containing all AMI Models shared between micro-services.

Retired package: Deprecated - faulty

Current section

Files

Jump to
ami_models lib ami tag.ex
Raw

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