-
Notifications
You must be signed in to change notification settings - Fork 0
API Documentatie
Timon Coucke edited this page May 21, 2024
·
46 revisions
-
GET: Krijg een lijst van alle gebruikers in JSON-formaat.
- Parameters:
-
is_lesgever=<bool>
: Filtert gebruikers op lesgevers of studenten -
email=<string>
: Filtert gebruikers op email
-
- Parameters:
-
GET: Krijg de gebruiker met gegeven
user_id
in JSON-formaat. -
PUT, PATCH: Pas de gebruiker met gegeven
user_id
aan. ZieJSON-voorstelling
voorbody
vereisten.
- GET: Krijg je eigen gebruiker in JSON-formaat.
{
("user": <int>),
"is_lesgever": <bool>,
("first_name": <string>),
("last_name": <string>),
("email": <email>),
"gepinde_vakken": <list[int]>
}
- Bij het veranderen van het
is_lesgever
veld, moet de gebruiker eerst uit zijn huidige vakken verwijderd zijn. - De gebruiker moet deel uitmaken van alle gepinde vakken
-
GET: Krijg een lijst van alle vakken in JSON-formaat.
- Parameters:
-
in=<bool>
: Filtert op vakken waarvan de gebruiker deel uitmaakt. -
gearchiveerd=<bool>
: Filtert op gearchiveerde vakken.
-
- Parameters:
-
POST: Maak een nieuw vak aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg het vak met gegeven
vak_id
in JSON-formaat. -
PUT, PATCH: Pas het vak met gegeven
vak_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder het vak met gegeven
vak_id
-
GET: Accepteer de invite van een gegeven vak met
vak_id
{
("vak_id": <int>),
"naam": <string>,
"jaartal": <int> (VB: voor 2024-2025 zou 2025 worden opgeslaan),
["gearchiveerd": <bool>, default=false],
"studenten": <list[int]>,
"lesgevers": <list[int]>,
"invited": <list[int]>
}
- Een gebruiker in
studenten
moet voldoen aanis_lesgever=false
. - Een gebruiker in
lesgevers
moet voldoen aanis_lesgever=true
.
-
GET: Krijg een lijst van alle projecten in JSON-formaat.
- Parameters:
-
vak=<int>
: Filtert projecten op hun corresponderend vak.
-
- Parameters:
-
POST: Maak een nieuw project aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg het project met gegeven
project_id
in JSON-formaat. -
PUT, PATCH: Pas het project met gegeven
project_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder het project met gegeven
project_id
-
GET: Download het opgave bestand van het project met gegeven
project_id
.
{
("project_id": <int>),
"titel": <string>,
"beschrijving": <string>,
["opgave_bestand": <file>],
"vak": <int>,
["max_score": <int>, default=20],
["aantal_groepen": <int>, default=10],
["max_groep_grootte": <int>, default=1],
["student_groep": <bool>, default=false],
["deadline": <YYYY-MM-DDTHH:MM>, default=null],
["extra_deadline": <YYYY-MM-DDTHH:MM>, default=null],
["zichtbaar": <bool>, default=true],
["gearchiveerd": <bool>, default=false]
}
-
deadline
moet na de huidige datum liggen. -
extra_deadline
moet na de eerste deadline liggen. -
vak
mag niet aangepast worden bij een PUT request.
-
GET: Krijg een lijst van alle restricties in JSON-formaat.
- Parameters:
-
project=<int>
: Filtert restricties op hun corresponderend project. -
moet_slagen=<bool>
: Filtert restricties op als ze al dan niet moeten slagen.
-
- Parameters:
-
POST: Maak een nieuwe restrictie aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg de restricite met gegeven
restrictie_id
in JSON-formaat. -
PUT, PATCH: Pas de restrictie met gegeven
restrictie_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder de restrictie met gegeven
restrictie_id
-
GET: Download het script van de restrictie met gegeven
restrictie_id
.
{
("restrictie_id": <int>),
"project": <int>,
"script": <file>,
"moet_slagen": <bool>,
}
-
script
moet een Python of Shell file zijn. -
project
mag niet aangepast worden bij een PUT request.
-
GET: Krijg een lijst van alle groepen in JSON-formaat.
- Parameters:
-
project=<int>
: Filtert groepen op hun corresponderend project. -
student=<int>
: Filter groepen op hun bijhorende studenten.
-
- Parameters:
-
POST: Maak een nieuwe groep aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg de groep met gegeven
groep_id
in JSON-formaat. -
PUT, PATCH: Pas de groep met gegeven
groep_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder de groep met gegeven
groep_id
{
("groep_id": <int>),
"studenten": <list[int]>,
"project": <int>
}
- Alle gebruikers in de lijst
studenten
moeten voldoen aanis_lesgever=false
- Voor een gegeven project mag een student in maximum één groep zitten.
- De student moet het het vak volgen van het corresponderend project.
-
project
mag niet aangepast worden bij een PUT request. - Het aantal studenten moet lager of gelijk zijn aan de
max_groep_grootte
van hetproject
-
GET: Krijg een lijst van alle indieningen in JSON-formaat.
- Parameters:
-
groep=<int>
: Filtert indieningen op hun corresponderende groep. -
project=<int>
: Filtert indieningen op hun corresponderend project. -
vak=<int>
: Filtert indieningen op hun corresponderend vak.
-
- Parameters:
-
POST: Maak een nieuwe indiening aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg de indiening met gegeven
indiening_id
in JSON-formaat. -
DELETE: Verwijder de indiening met gegeven
indiening_id
-
GET: Download het indiening_bestand van de indiening met gegeven
indiening_id
.
-
GET: Download de gegenereerde artefacten van de docker environment in een zipfile
artefacten.zip
.
{
("indiening_id": <int>),
"groep": <int>,
"bestand": <file>,
("tijdstip": <YYYY-MM-DDTHH:MM>),
("status": <int>, choices=[-1 (=FAIL), 0 (=PENDING), 1 (=PASSED)]),
("result": <string>),
"indiening_bestanden": [
{
("indiening_bestand_id": <int>),
"indiening": <int>,
"bestand": <file>
},
...
]
}
-
groep
mag niet aangepast worden bij een PUT request
-
GET: Krijg een lijst van alle scores in JSON-formaat.
- Parameters:
-
indiening=<int>
: Filtert scores op hun corresponderende indiening.
-
- Parameters:
-
POST: Maak een nieuwe score aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg de score met gegeven
score_id
in JSON-formaat. -
PUT, PATCH: Pas de score met gegeven
score_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder de score met gegeven
score_id
{
("score_id": <int>),
"score": <int>,
"indiening": <int>
}
-
score
moet onder demax_score
van het project liggen. - Elke indiening kan maximum één score krijgen.
-
indiening
mag niet aangepast worden bij een PUT request.
-
GET: Krijg een lijst van alle templates in JSON-formaat.
- Parameters:
-
lesgever_id=<int>
: Filtert templates op hun corresponderende lesgever.
-
- Parameters:
-
POST: Maak een nieuwe template aan. Zie
JSON-voorstelling
voorbody
vereisten.
-
GET: Krijg de template met gegeven
template_id
in JSON-formaat. -
PUT, PATCH: Pas de template met gegeven
template_id
aan. ZieJSON-voorstelling
voorbody
vereisten. -
DELETE: Verwijder de template met gegeven
template_id
-
GET: Krijg het template bestand terug
- Parameters:
-
content=<bool>
: Als deze parameter optrue
staat, zal alleen de inhoud van het bestand teruggegeven worden in JSON-formaat:{"content": <bestand_inhoud>}
-
- Parameters:
{
("template_id": <int>),
"user": <int>,
"bestand": <file>
}