Packages
ami
0.2.8
0.3.9
0.3.8
retired
0.3.7
retired
0.3.6
retired
0.3.5
retired
0.3.4
retired
0.3.3
retired
0.3.2
retired
0.3.1
retired
0.3.0
retired
0.2.9
retired
0.2.8
retired
0.2.7
retired
0.2.6
retired
0.2.5
retired
0.2.3
retired
0.2.2
retired
0.2.1
retired
0.2.0
retired
0.1.9
retired
0.1.8
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
Package containing all AMI Models shared between micro-services.
Retired package: Security issue - retiring
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
@timestamps_opts [type: :naive_datetime_usec]
field(:name, :string)
timestamps()
many_to_many(:lessons, Lesson, join_through: "lessons_tags")
many_to_many(:courses, Lesson, join_through: "courses_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