From e58bcb18c4431f3b298193ad900fbdb409cddfd8 Mon Sep 17 00:00:00 2001 From: Alexandre Paice Date: Thu, 14 Mar 2024 15:09:10 +0100 Subject: [PATCH] docstrings views --- api/views/gebruiker.py | 21 +++++++++++-------- api/views/groep.py | 28 +++++++++++++++++-------- api/views/indiening.py | 46 +++++++++++++++++++++++++++++++++--------- api/views/project.py | 26 +++++++++++++++--------- api/views/score.py | 26 +++++++++++++++--------- api/views/vak.py | 21 ++++++++++++------- api/views/views.py | 28 +++++++++++++++++++++++++ 7 files changed, 146 insertions(+), 50 deletions(-) diff --git a/api/views/gebruiker.py b/api/views/gebruiker.py index bb1cb6e2..d65ab422 100644 --- a/api/views/gebruiker.py +++ b/api/views/gebruiker.py @@ -13,12 +13,15 @@ @api_view(['GET']) def gebruiker_list(request): """ - Gives a list of all gebruikers. - If the query 'is_lesgever' is in the GET request with arguement true or false, - it filters on only the gebruikers for which is_lesgever matches it. + Een view om alle gebruikers op te halen. - Args: - request: A HTTP request. + Als de gebruiker een lesgever is, worden alle gebruikers opgehaald. Als de gebruiker geen lesgever is, worden alleen de gegevens van de ingelogde gebruiker opgehaald. + + Optionele query parameters: + is_lesgever (bool): Filtert gebruikers op basis van of ze lesgevers zijn of niet. + + Returns: + Response: Een lijst van gebruikers. """ if request.method == 'GET': if is_lesgever(request.user): @@ -38,11 +41,13 @@ def gebruiker_list(request): @api_view(['GET', 'PUT']) def gebruiker_detail(request, id): """ - Gives the gebruiker with a certain id. + Een view om de gegevens van een specifieke gebruiker op te halen (GET) of bij te werken (PUT). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van de gebruiker. + + Returns: + Response: Gegevens van de gebruiker of een foutmelding als de gebruiker niet bestaat of als er een ongeautoriseerde toegang is. """ try: gebruiker = Gebruiker.objects.get(pk=id) diff --git a/api/views/groep.py b/api/views/groep.py index a6075c1e..3ff809d8 100644 --- a/api/views/groep.py +++ b/api/views/groep.py @@ -10,12 +10,21 @@ @api_view(['GET', 'POST']) def groep_list(request, format=None): """ - Gives a list of all groepen. + Een view om een lijst van groepen op te halen of een nieuwe groep toe te voegen. - Args: - request: A HTTP request. - """ + GET: + Als de gebruiker een lesgever is, worden alle groepen opgehaald. Als de gebruiker geen lesgever is, worden alleen de groepen opgehaald waarin de ingelogde gebruiker zich bevindt. + + Optionele query parameters: + project (int): Filtert groepen op basis van project-ID. + student (int): Filtert groepen op basis van student-ID. + POST: + Als de gebruiker een lesgever is, wordt een nieuwe groep toegevoegd. + + Returns: + Response: Een lijst van groepen of een nieuw aangemaakte groep. + """ if request.method == 'GET': if is_lesgever(request.user): groepen = Groep.objects.all() @@ -40,7 +49,6 @@ def groep_list(request, format=None): serializer = GroepSerializer(groepen, many=True) return Response(serializer.data) - elif request.method == 'POST': if is_lesgever(request.user): serializer = GroepSerializer(data=request.data) @@ -49,14 +57,18 @@ def groep_list(request, format=None): return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(status=status.HTTP_403_FORBIDDEN) + + @api_view(['GET', 'PUT', 'DELETE']) def groep_detail(request, id, format=None): """ - Gives the groep with a certain id. + Een view om de gegevens van een specifieke groep op te halen (GET), bij te werken (PUT) of te verwijderen (DELETE). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van de groep. + + Returns: + Response: Gegevens van de groep of een foutmelding als de groep niet bestaat of als er een ongeautoriseerde toegang is. """ try: groep = Groep.objects.get(pk=id) diff --git a/api/views/indiening.py b/api/views/indiening.py index d28dc35b..b5f0316a 100644 --- a/api/views/indiening.py +++ b/api/views/indiening.py @@ -11,14 +11,20 @@ @api_view(['GET', 'POST']) def indiening_list(request, format=None): """ - Gives a list of all indieningen. - If the query 'groep' is in the GET request, - it filters on only the indieningen for with matching groep id. + Een view om een lijst van indieningen op te halen of een nieuwe indiening toe te voegen. - Args: - request: A HTTP request. - """ + GET: + Als de gebruiker een lesgever is, worden alle indieningen opgehaald. Als de gebruiker geen lesgever is, worden alleen de indieningen opgehaald waarin de ingelogde gebruiker zich bevindt. + + Optionele query parameters: + groep (int): Filtert indieningen op basis van groep-ID. + + POST: + Voegt een nieuwe indiening toe. + Returns: + Response: Een lijst van indieningen of een nieuw aangemaakte indiening. + """ if request.method == 'GET': if is_lesgever(request.user): indieningen = Indiening.objects.all() @@ -56,11 +62,13 @@ def indiening_list(request, format=None): @api_view(['GET', 'DELETE']) def indiening_detail(request, id, format=None): """ - Gives the indiening with a certain id. + Een view om de gegevens van een specifieke indiening op te halen (GET) of te verwijderen (DELETE). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van de indiening. + + Returns: + Response: Gegevens van de indiening of een foutmelding als de indiening niet bestaat of als er een ongeautoriseerde toegang is. """ try: indiening = Indiening.objects.get(pk=id) @@ -82,7 +90,18 @@ def indiening_detail(request, id, format=None): @api_view(['GET']) def indiening_bestand_list(request, format=None): + """ + Een view om een lijst van indieningbestanden op te halen (GET). + GET: + Als de gebruiker een lesgever is, worden alle indieningbestanden opgehaald. Als de gebruiker geen lesgever is, worden alleen de indieningbestanden opgehaald van de ingelogde gebruiker. + + Optionele query parameters: + indiening (int): Filtert indieningbestanden op basis van indiening-ID. + + Returns: + Response: Een lijst van indieningbestandgegevens. + """ if request.method == 'GET': if is_lesgever(request.user): indieningen_bestanden = IndieningBestand.objects.all() @@ -105,6 +124,15 @@ def indiening_bestand_list(request, format=None): @api_view(['GET']) def indiening_bestand_detail(request, id, format=None): + """ + Een view om de gegevens van een specifiek indieningbestand op te halen (GET). + + Args: + id (int): De primaire sleutel van het indieningbestand. + + Returns: + Response: Gegevens van het indieningbestand of een foutmelding als het indieningbestand niet bestaat of als er een ongeautoriseerde toegang is. + """ try: indiening_bestand = IndieningBestand.objects.get(pk=id) except IndieningBestand.DoesNotExist: diff --git a/api/views/project.py b/api/views/project.py index 798e4590..343cdf87 100644 --- a/api/views/project.py +++ b/api/views/project.py @@ -11,14 +11,20 @@ @api_view(['GET', 'POST']) def project_list(request, format=None): """ - Gives a list of all projecten. - If the query 'vak' is in the GET request, - it filters on only the indieningen for with matching vak id. + Een view om een lijst van projecten op te halen of een nieuw project toe te voegen. - Args: - request: A HTTP request. - """ + GET: + Als de gebruiker een lesgever is, worden alle projecten opgehaald. Als de gebruiker geen lesgever is, worden alleen de projecten opgehaald voor de vakken waarin de ingelogde gebruiker zich bevindt. + + Optionele query parameters: + vak (int): Filtert projecten op basis van vak-ID. + POST: + Voegt een nieuw project toe. + + Returns: + Response: Een lijst van projecten of een nieuw aangemaakt project. + """ if request.method == 'GET': if is_lesgever(request.user): projects = Project.objects.all() @@ -48,11 +54,13 @@ def project_list(request, format=None): @api_view(['GET', 'PUT', 'DELETE']) def project_detail(request, id, format=None): """ - Gives the project with a certain id. + Een view om de gegevens van een specifiek project op te halen (GET), bij te werken (PUT) of te verwijderen (DELETE). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van het project. + + Returns: + Response: Gegevens van het project of een foutmelding als het project niet bestaat of als er een ongeautoriseerde toegang is. """ try: project = Project.objects.get(pk=id) diff --git a/api/views/score.py b/api/views/score.py index 9582a4c9..d336fdf4 100644 --- a/api/views/score.py +++ b/api/views/score.py @@ -12,14 +12,20 @@ @api_view(['GET', 'POST']) def score_list(request, format=None): """ - Gives a list of all scores. - If the query 'indiening' is in the GET request, - it filters on only the indieningen for with matching indiening id. + Een view om een lijst van scores op te halen of een nieuwe score toe te voegen. - Args: - request: A HTTP request. - """ + GET: + Als de gebruiker een lesgever is, worden alle scores opgehaald. Als de gebruiker geen lesgever is, worden alleen de scores opgehaald van indieningen van groepen waarin de ingelogde gebruiker zich bevindt. + + Optionele query parameters: + indiening (int): Filtert scores op basis van indiening-ID. + POST: + Voegt een nieuwe score toe. + + Returns: + Response: Een lijst van scores of een nieuwe aangemaakte score. + """ if request.method == 'GET': if is_lesgever(request.user): scores = Score.objects.all() @@ -50,11 +56,13 @@ def score_list(request, format=None): @api_view(['GET', 'PUT', 'DELETE']) def score_detail(request, id, format=None): """ - Gives the score with a certain id. + Een view om de gegevens van een specifieke score op te halen (GET), bij te werken (PUT) of te verwijderen (DELETE). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van de score. + + Returns: + Response: Gegevens van de score of een foutmelding als de score niet bestaat of als er een ongeautoriseerde toegang is. """ try: score = Score.objects.get(pk=id) diff --git a/api/views/vak.py b/api/views/vak.py index 4368e99d..e2dc7d21 100644 --- a/api/views/vak.py +++ b/api/views/vak.py @@ -12,12 +12,17 @@ @api_view(['GET', 'POST']) def vak_list(request, format=None): """ - Gives a list of all vakken. + Een view om een lijst van vakken op te halen of een nieuw vak toe te voegen. - Args: - request: A HTTP request. - """ + GET: + Als de gebruiker een lesgever is, worden alle vakken opgehaald. Als de gebruiker geen lesgever is, worden alleen de vakken opgehaald waarin de ingelogde gebruiker zich bevindt. + + POST: + Voegt een nieuw vak toe. + Returns: + Response: Een lijst van vakken of een nieuw aangemaakt vak. + """ if request.method == 'GET': if is_lesgever(request.user): vakken = Vak.objects.all() @@ -40,11 +45,13 @@ def vak_list(request, format=None): @api_view(['GET', 'PUT', 'DELETE']) def vak_detail(request, id, format=None): """ - Gives the vak with a certain id. + Een view om de gegevens van een specifiek vak op te halen (GET), bij te werken (PUT) of te verwijderen (DELETE). Args: - request: A HTTP request. - id: ID of the gebruiker. + id (int): De primaire sleutel van het vak. + + Returns: + Response: Gegevens van het vak of een foutmelding als het vak niet bestaat of als er een ongeautoriseerde toegang is. """ try: vak = Vak.objects.get(pk=id) diff --git a/api/views/views.py b/api/views/views.py index ce5801b7..24565f06 100644 --- a/api/views/views.py +++ b/api/views/views.py @@ -7,6 +7,16 @@ def login_redirect(request): + """ + Een view die wordt gebruikt voor het verwerken van een login redirect. + Deze view controleert of de gebruiker is ingelogd, en maakt vervolgens een nieuwe gebruiker aan in het systeem voor de ingelogde gebruiker, indien deze nog niet bestaat. + + Args: + request (HttpRequest): Het HTTP-verzoek dat naar de view is gestuurd. + + Returns: + HttpResponseRedirect: Een HTTP-verzoek naar de startpagina na het verwerken van de login-redirect. + """ print(get_graph_token()) @@ -23,7 +33,25 @@ def login_redirect(request): @api_view(['GET']) def home(request): + """ + Een view die de startpagina van de API retourneert. + + Args: + request (HttpRequest): Het HTTP-verzoek dat naar de view is gestuurd. + + Returns: + Response: Een HTTP-respons met de URL's van de API. + """ return Response(data=API_URLS) def microsoft_association(request): + """ + Een view die wordt gebruikt om de associatie met Microsoft-applicaties te bevestigen. + + Args: + request (HttpRequest): Het HTTP-verzoek dat naar de view is gestuurd. + + Returns: + JsonResponse: Een JSON-respons met de geassocieerde applicaties. + """ return JsonResponse({"associatedApplications": [{ "applicationId": "239ce609-e362-4cf6-919f-97e6935ef5f5" }]})