Skip to content

Commit 0b68001

Browse files
authored
Merge pull request #184 from UNLV-CS472-672/assignment_backend_frontend_link
Ethan's 5th PR / Jose's 9th PR: (#182) Assignment & Quiz Backend Frontend Link
2 parents ee13801 + f6aa074 commit 0b68001

File tree

9 files changed

+988
-55
lines changed

9 files changed

+988
-55
lines changed

backend/apps/lessons/tests.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def setUp(self):
4848
)
4949

5050
# Define URLs - used for assignment testing
51+
self.list_url = reverse('assignment-list')
5152
self.detail_url = reverse('assignment-detail', kwargs={'pk': self.assignment.pk})
5253
self.create_url = reverse('assignment-create')
5354

@@ -56,6 +57,20 @@ def setUp(self):
5657
# self.detail_url = f'/lessons/assignments/{self.assignment.pk}/'
5758
# self.create_url = '/lessons/assignments/create/'
5859

60+
# Test GET: List all assignments
61+
def test_list_assignments(self):
62+
response = self.client.get(self.list_url)
63+
self.assertEqual(response.status_code, status.HTTP_200_OK)
64+
65+
# Should return a list under "data"
66+
self.assertIn('data', response.data)
67+
assignments = response.data['data']
68+
self.assertIsInstance(assignments, list)
69+
70+
# At least the one created in setUp must be present
71+
ids = [a['id'] for a in assignments]
72+
self.assertIn(self.assignment.pk, ids)
73+
5974
# Test GET: Retrieve a single assignment
6075
def test_get_assignment(self):
6176
response = self.client.get(self.detail_url)

backend/apps/lessons/urls.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.urls import path
22
from .views import (
3+
AssignmentListView,
34
AssignmentDetailView,
45
AssignmentCreateView,
56
QuizListCreateView,
@@ -20,6 +21,7 @@
2021

2122
urlpatterns = [
2223
# CRUD endpoints for Assignments
24+
path("assignments/", AssignmentListView.as_view(), name="assignment-list"),
2325
path("assignments/<int:pk>/", AssignmentDetailView.as_view(), name="assignment-detail"),
2426
path("assignments/create/", AssignmentCreateView.as_view(), name="assignment-create"),
2527

backend/apps/lessons/views.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99

1010

1111
# - Assignments:
12+
class AssignmentListView(APIView):
13+
permission_classes = [IsAuthenticated]
14+
15+
# GET a list of assignment(s) details
16+
def get(self, request):
17+
assignments = Assignment.objects.all()
18+
serializer = AssignmentSerializer(assignments, many=True)
19+
return Response({"status": "success", "data": serializer.data}, status=status.HTTP_200_OK)
20+
21+
1222
class AssignmentDetailView(APIView):
1323
# Only authenticated users can access - ensures user is logged in & authenticated
1424
permission_classes = [IsAuthenticated]

0 commit comments

Comments
 (0)