Skip to content

Commit

Permalink
docstrings views
Browse files Browse the repository at this point in the history
  • Loading branch information
sPAICEcake committed Mar 14, 2024
1 parent 5ae4950 commit e58bcb1
Show file tree
Hide file tree
Showing 7 changed files with 146 additions and 50 deletions.
21 changes: 13 additions & 8 deletions api/views/gebruiker.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand All @@ -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)
Expand Down
28 changes: 20 additions & 8 deletions api/views/groep.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand 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)
Expand All @@ -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)
Expand Down
46 changes: 37 additions & 9 deletions api/views/indiening.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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)
Expand All @@ -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()
Expand 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:
Expand Down
26 changes: 17 additions & 9 deletions api/views/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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)
Expand Down
26 changes: 17 additions & 9 deletions api/views/score.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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)
Expand Down
21 changes: 14 additions & 7 deletions api/views/vak.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand 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)
Expand Down
28 changes: 28 additions & 0 deletions api/views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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())

Expand All @@ -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" }]})

0 comments on commit e58bcb1

Please sign in to comment.