23 lines
943 B
Python
23 lines
943 B
Python
import graphene
|
|
|
|
from vbv_lernwelt.course.graphql.types import CourseObjectType, CourseSessionObjectType
|
|
from vbv_lernwelt.course.models import Course, CourseSession
|
|
from vbv_lernwelt.course.permissions import has_course_access
|
|
|
|
|
|
class CourseQuery(graphene.ObjectType):
|
|
course = graphene.Field(CourseObjectType, id=graphene.ID())
|
|
course_session = graphene.Field(CourseSessionObjectType, id=graphene.ID())
|
|
|
|
def resolve_course(root, info, id):
|
|
course = Course.objects.get(pk=id)
|
|
if has_course_access(info.context.user, course):
|
|
return course
|
|
raise PermissionError("You do not have access to this course")
|
|
|
|
def resolve_course_session(root, info, id):
|
|
course_session = CourseSession.objects.get(pk=id)
|
|
if has_course_access(info.context.user, course_session.course):
|
|
return course_session
|
|
raise PermissionError("You do not have access to this course session")
|