View Source Zoonk.Content (Zoonk v0.2.0-alpha)
Content context.
Link to this section Summary
Functions
Approves a course user.
Returns an %Ecto.Changeset{}
for tracking course changes.
Creates a course.
Adds a user to a course.
Deletes a course.
Deletes a course user.
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.
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.
Returns all public courses for a given school.
Updates a course.
Updates a course user.
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()}
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 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 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 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 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_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{}}