Packages
ami
0.3.4
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/unit_lesson.ex
defmodule Ami.UnitLesson do
use Ecto.Schema
import Ecto.{
Query,
Changeset
}
alias Ami.{
Repo,
Unit,
Lesson
}
schema "unit_lessons" do
field(:position, :integer)
belongs_to(:unit, Unit)
belongs_to(:lesson, Lesson)
end
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:unit_id, :lesson_id, :position])
|> set_position
end
defp set_position(%Ecto.Changeset{params: %{"unit_id" => ""}} = changeset) do
changeset
end
defp set_position(%Ecto.Changeset{params: %{}} = changeset) do
changeset
end
defp set_position(changeset) do
unit_id = changeset.params["unit_id"]
last_unit_lesson =
from(ul in __MODULE__,where: ul.unit_id == ^unit_id)
|> last(:position)
|> Repo.one()
if last_unit_lesson do
put_change(changeset, :position, last_unit_lesson.position + 1)
else
put_change(changeset, :position, 0)
end
end
def update_position(unit_lesson_id, position) do
Repo.get(__MODULE__, unit_lesson_id)
|> change(%{position: position})
|> Repo.update()
end
end