# Generated by `mix github.gen` from docs/github-api/api.github.com.json.
# Do not edit by hand; re-run the task instead.
defmodule Noizu.Github.Api.Classroom do
@moduledoc """
GitHub `classroom` API.
"""
import Noizu.Github
@doc """
Get a classroom
@see https://docs.github.com/rest/classroom/classroom#get-a-classroom
"""
def get_a_classroom(classroom_id, options \\ nil) do
url = github_base() <> "/classrooms/#{classroom_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.Classroom, options)
end
@doc """
Get an assignment
@see https://docs.github.com/rest/classroom/classroom#get-an-assignment
"""
def get_an_assignment(assignment_id, options \\ nil) do
url = github_base() <> "/assignments/#{assignment_id}"
body = %{}
api_call(:get, url, body, Noizu.Github.ClassroomAssignment, options)
end
@doc """
Get assignment grades
@see https://docs.github.com/rest/classroom/classroom#get-assignment-grades
"""
def get_assignment_grades(assignment_id, options \\ nil) do
url = github_base() <> "/assignments/#{assignment_id}/grades"
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.ClassroomAssignmentGrade, options)
end
@doc """
List accepted assignments for an assignment
@see https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment
"""
def list_accepted_assignments_for_an_assignment(assignment_id, options \\ nil) do
url =
(
query =
[
get_field(:page, options, nil),
get_field(:per_page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/assignments/#{assignment_id}/accepted_assignments" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.ClassroomAcceptedAssignment, options)
end
@doc """
List assignments for a classroom
@see https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom
"""
def list_assignments_for_a_classroom(classroom_id, options \\ nil) do
url =
(
query =
[
get_field(:page, options, nil),
get_field(:per_page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/classrooms/#{classroom_id}/assignments" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleClassroomAssignment, options)
end
@doc """
List classrooms
@see https://docs.github.com/rest/classroom/classroom#list-classrooms
"""
def list_classrooms(options \\ nil) do
url =
(
query =
[
get_field(:page, options, nil),
get_field(:per_page, options, nil)
]
|> Enum.filter(& &1)
qs = if query == [], do: "", else: "?" <> Enum.join(query, "&")
github_base() <> "/classrooms" <> qs
)
body = %{}
api_call(:get, url, body, Noizu.Github.Collection.SimpleClassroom, options)
end
end