View Source Zoonk.Content (Zoonk v0.3.0-alpha)
Content context.
Link to this section Summary
Functions
Approves a course user.
Returns an %Ecto.Changeset{}
for tracking course changes.
Returns an %Ecto.Changeset{}
for tracking lesson changes.
Returns an %Ecto.Changeset{}
for tracking lesson step changes.
Returns an %Ecto.Changeset{}
for tracking step option changes.
Creates a course.
Adds a user to a course.
Creates a new lesson.
Creates a new lesson step.
Creates a new step option.
Deletes a course.
Deletes a course user.
Deletes a lesson.
Deletes a lesson step.
Deletes a step option.
Gets a single course based on the given slug and school ID.
Gets the number of students from a course.
Get a user from a course given their ID.
Get a lesson.
Get a step option.
List all users for a course according to their role.
Returns all courses for a given school.
List all courses given a user and a role.
List lesson steps.
List course lessons.
Returns all public courses for a given school.
Updates a course.
Updates a course user.
Updates a lesson.
Update lessons order.
Update lesson steps order.
Update a step option.
Link to this section Types
@type course_changeset() :: {:ok, Zoonk.Content.Course.t()} | {:error, Ecto.Changeset.t()}
@type course_user_changeset() :: {:ok, Zoonk.Content.CourseUser.t()} | {:error, Ecto.Changeset.t()}
@type lesson_changeset() :: {:ok, Zoonk.Content.Lesson.t()} | {:error, Ecto.Changeset.t()}
@type lesson_step_changeset() :: {:ok, Zoonk.Content.LessonStep.t()} | {:error, Ecto.Changeset.t()}
@type step_option_changeset() :: {:ok, Zoonk.Content.StepOption.t()} | {:error, Ecto.Changeset.t()}
Link to this section Functions
@spec approve_course_user(non_neg_integer(), non_neg_integer()) :: course_user_changeset()
Approves a course user.
examples
Examples
iex> approve_course_user(school_user_id, approved_by_id)
{:ok, %CourseUser{}}
iex> approve_course_user(school_user_id, approved_by_id)
{:error, %Ecto.Changeset{}}
@spec change_course(Zoonk.Content.Course.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking course changes.
examples
Examples
iex> change_course(%Course{})
%Ecto.Changeset{data: %Course{}}
@spec change_lesson(Zoonk.Content.Lesson.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking lesson changes.
examples
Examples
iex> change_lesson(%Lesson{})
%Ecto.Changeset{data: %Lesson{}}
@spec change_lesson_step(Zoonk.Content.LessonStep.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking lesson step changes.
examples
Examples
iex> change_lesson_step(%LessonStep{})
%Ecto.Changeset{data: %LessonStep{}}
@spec change_step_option(Zoonk.Content.StepOption.t(), map()) :: Ecto.Changeset.t()
Returns an %Ecto.Changeset{}
for tracking step option changes.
examples
Examples
iex> change_step_option(%StepOption{})
%Ecto.Changeset{data: %StepOption{}}
@spec create_course(map(), Zoonk.Accounts.User.t()) :: course_changeset()
Creates a course.
examples
Examples
iex> create_course(%{field: value}, %User{})
{:ok, %Course{}}
iex> create_course(%{field: bad_value}, %User{})
{:error, %Ecto.Changeset{}}
@spec create_course_user(Zoonk.Content.Course.t(), Zoonk.Accounts.User.t(), map()) :: course_user_changeset()
Adds a user to a course.
examples
Examples
iex> create_course_user(%Course{}, %User{}, %{role: :student})
{:ok, %CourseUser{}}
iex> create_course_user(%Course{}, %User{}, %{role: :invalid})
{:error, %Ecto.Changeset{}}
@spec create_lesson(map()) :: lesson_changeset()
Creates a new lesson.
examples
Examples
iex> create_lesson(%{title: "Lesson 1"})
{:ok, %Lesson{}}
iex> create_lesson(%{title: "Lesson 1"})
{:error, %Ecto.Changeset{}}
@spec create_lesson_step(map()) :: lesson_step_changeset()
Creates a new lesson step.
examples
Examples
iex> create_lesson_step(%{content: "Lesson Step 1"})
{:ok, %LessonStep{}}
iex> create_lesson_step(%{content: "Lesson Step 1"})
{:error, %Ecto.Changeset{}}
@spec create_step_option(map()) :: step_option_changeset()
Creates a new step option.
examples
Examples
iex> create_step_option(%{title: "Step Option 1"})
{:ok, %StepOption{}}
iex> create_step_option(%{title: "Step Option 1"})
{:error, %Ecto.Changeset{}}
@spec delete_course(Zoonk.Content.Course.t()) :: course_changeset()
Deletes a course.
examples
Examples
iex> delete_course(%Course{})
{:ok, %Course{}}
iex> delete_course(%Course{})
{:error, %Ecto.Changeset{}}
@spec delete_course_user(non_neg_integer()) :: course_user_changeset()
Deletes a course user.
examples
Examples
iex> delete_course_user(course_user_id)
{:ok, %CourseUser{}}
iex> delete_course_user(course_user_id)
{:error, %Ecto.Changeset{}}
@spec delete_lesson(Zoonk.Content.Lesson.t()) :: lesson_changeset()
Deletes a lesson.
examples
Examples
iex> delete_lesson(%Lesson{})
{:ok, %Lesson{}}
iex> delete_lesson(%Lesson{})
{:error, %Ecto.Changeset{}}
@spec delete_lesson_step(non_neg_integer()) :: lesson_step_changeset()
Deletes a lesson step.
examples
Examples
iex> delete_lesson_step(123)
{:ok, %LessonStep{}}
iex> delete_lesson_step(123)
{:error, %Ecto.Changeset{}}
@spec delete_step_option(non_neg_integer()) :: step_option_changeset()
Deletes a step option.
examples
Examples
iex> delete_step_option(123)
{:ok, %StepOption{}}
iex> delete_step_option(123)
{:error, %Ecto.Changeset{}}
@spec get_course_by_slug!(String.t(), non_neg_integer()) :: Zoonk.Content.Course.t()
Gets a single course based on the given slug and school ID.
examples
Examples
iex> get_course_by_slug!("slug", 123)
%Course{}
iex> get_course_by_slug!("bad-slug", 123)
** (Ecto.NoResultsError)
@spec get_course_students_count(Zoonk.Content.Course.t()) :: non_neg_integer()
Gets the number of students from a course.
examples
Examples
iex> get_course_students_count(%Course{})
1
@spec get_course_user_by_id(non_neg_integer(), non_neg_integer(), list()) :: Zoonk.Content.CourseUser.t() | nil
Get a user from a course given their ID.
examples
Examples
iex> get_course_user_by_id(1, 1)
%CourseUser{}
iex> get_course_user_by_id(0, 0)
** nil
@spec get_lesson!(non_neg_integer()) :: Zoonk.Content.Lesson.t()
Get a lesson.
examples
Examples
iex> get_lesson!(1)
%Lesson{}
@spec get_step_option!(non_neg_integer()) :: Zoonk.Content.StepOption.t()
Get a step option.
examples
Examples
iex> get_step_option!(123)
%StepOption{}
@spec list_course_users_by_role(Zoonk.Content.Course.t(), atom()) :: [ Zoonk.Content.CourseUser.t() ]
List all users for a course according to their role.
examples
Examples
iex> list_course_users_by_role(%Course{}, :teacher)
[%CourseUser{}, ...]
iex> list_course_users_by_role(%Course{}, :student)
[%CourseUser{}, ...]
@spec list_courses_by_school(Zoonk.Organizations.School.t()) :: [ Zoonk.Content.Course.t() ]
Returns all courses for a given school.
This is intended to be used for the management panel. It's ideal for managers and teachers.
If you want only published courses, use list_public_courses_by_school/2
instead.
examples
Examples
iex> list_courses_by_school(%School{})
[%Course{}, ...]
@spec list_courses_by_user( Zoonk.Organizations.School.t(), Zoonk.Accounts.User.t(), atom(), keyword() ) :: [Zoonk.Content.Course.t()]
List all courses given a user and a role.
examples
Examples
iex> list_courses_by_user(%School{}, %User{}, :teacher)
[%Course{}, ...]
iex> list_courses_by_user(%School{}, %User{}, :student, limit: 5)
[%Course{}, ...]
@spec list_lesson_steps(Zoonk.Content.Lesson.t()) :: [Zoonk.Content.LessonStep.t()]
List lesson steps.
examples
Examples
iex> list_lesson_steps(%Lesson{})
[%LessonStep{}, ...]
@spec list_lessons(Zoonk.Content.Course.t()) :: [Zoonk.Content.Lesson.t()]
List course lessons.
examples
Examples
iex> list_lessons(%Course{})
[%Lesson{}, ...]
@spec list_public_courses_by_school(Zoonk.Organizations.School.t(), list()) :: [ Zoonk.Content.CourseData.t() ]
Returns all public courses for a given school.
This is intended to be used for the public API. It's ideal for students and parents.
If you want all courses, use list_courses_by_school/1
instead.
examples
Examples
iex> list_public_courses_by_school(%School{})
[%CourseData{}, ...]
@spec update_course(Zoonk.Content.Course.t(), map()) :: course_changeset()
Updates a course.
examples
Examples
iex> update_course(%Course{}, %{field: value})
{:ok, %Course{}}
iex> update_course(%Course{}, %{field: bad_value})
{:error, %Ecto.Changeset{}}
@spec update_course_user(Zoonk.Content.CourseUser.t(), map()) :: course_user_changeset()
Updates a course user.
examples
Examples
iex> update_course_user(%CourseUser{}, %{role: :student})
{:ok, %CourseUser{}}
iex> update_course_user(%CourseUser{}, %{role: :invalid})
{:error, %Ecto.Changeset{}}
@spec update_lesson(Zoonk.Content.Lesson.t(), map()) :: lesson_changeset()
Updates a lesson.
examples
Examples
iex> update_lesson(%Lesson{}, %{name: "Lesson 1"})
{:ok, %Lesson{}}
iex> update_lesson(%Lesson{}, %{name: "Lesson 1"})
{:error, %Ecto.Changeset{}}
@spec update_lesson_order( Zoonk.Content.Course.t(), non_neg_integer(), non_neg_integer() ) :: {:ok, [Zoonk.Content.Lesson.t()]} | {:error, [Ecto.Changeset.t()]}
Update lessons order.
Reposition all lessons between an interval when a lesson is moved.
examples
Examples
iex> update_lesson_order(%Course{}, 1, 3)
{:ok, [%Lesson{}, ...]}
@spec update_lesson_step_order( Zoonk.Content.Lesson.t(), non_neg_integer(), non_neg_integer() ) :: {:ok, [Zoonk.Content.LessonStep.t()]} | {:error, [Ecto.Changeset.t()]}
Update lesson steps order.
Reposition all lesson steps between an interval when a lesson step is moved.
examples
Examples
iex> update_lesson_step_order(%Lesson{}, 1, 3)
{:ok, [%LessonStep{}, ...]}
@spec update_step_option(Zoonk.Content.StepOption.t(), map()) :: step_option_changeset()
Update a step option.
examples
Examples
iex> update_step_option(%StepOption{}, %{title: "Step Option 1"})
{:ok, %StepOption{}}
iex> update_step_option(%StepOption{}, %{title: "Step Option 1"})
{:error, %Ecto.Changeset{}}