forked from Lab-Lab-Lab/CPR-Music-Backend
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi_router.py
More file actions
60 lines (52 loc) · 2.16 KB
/
api_router.py
File metadata and controls
60 lines (52 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from django.conf import settings
from django.urls import include, path
from rest_framework.routers import DefaultRouter, SimpleRouter
from rest_framework_nested import routers
from teleband.users.api.views import UserViewSet
from teleband.courses.api.views import EnrollmentViewSet, CourseViewSet
from teleband.assignments.api.views import (
AssignmentViewSet,
ActivityViewSet,
PiecePlanViewSet,
)
from teleband.submissions.api.views import (
GradeViewSet,
SubmissionViewSet,
AttachmentViewSet,
TeacherSubmissionViewSet,
ActivityProgressViewSet,
)
from teleband.musics.api.views import PieceViewSet
from teleband.instruments.api.views import InstrumentViewSet
if settings.DEBUG:
router = DefaultRouter()
nested_cls = routers.NestedDefaultRouter
else:
router = SimpleRouter()
nested_cls = routers.NestedSimpleRouter
router.register("users", UserViewSet)
router.register("enrollments", EnrollmentViewSet)
router.register("courses", CourseViewSet)
router.register("pieces", PieceViewSet)
router.register("piece-plans", PiecePlanViewSet)
router.register("instruments", InstrumentViewSet)
courses_router = nested_cls(router, "courses", lookup="course_slug")
courses_router.register("assignments", AssignmentViewSet) # option basename omitted
courses_router.register("activities", ActivityViewSet) # option basename omitted
courses_router.register(
"submissions", TeacherSubmissionViewSet
) # option basename omitted
courses_router.register("grades", GradeViewSet) # option basename omitted
courses_router.register("piece-plans", PiecePlanViewSet)
assignments_router = nested_cls(courses_router, "assignments", lookup="assignment")
assignments_router.register("submissions", SubmissionViewSet)
assignments_router.register("activity-progress", ActivityProgressViewSet, basename="activity-progress")
attachments_router = nested_cls(assignments_router, "submissions", lookup="submission")
attachments_router.register("attachments", AttachmentViewSet)
app_name = "api"
urlpatterns = router.urls
urlpatterns += [
path("", include(courses_router.urls)),
path("", include(assignments_router.urls)),
path("", include(attachments_router.urls)),
]