SELab-2 / UGent-6

MIT License
2 stars 0 forks source link

GET /projects API aanpassingen #166

Closed usserwoutV2 closed 6 months ago

usserwoutV2 commented 6 months ago

Deze api call wordt gebruikt om de projecten met hun deadlines te tonen in de / route.

GET /api/projects

Deze route moet hetzelfde teruggeven als /api/courses/:id/projects maar dan alle projecten. API dog: https://app.apidog.com/link/project/467959/apis/api-6362262 (deze is al aangepast)

Momenteel geeft het dit terug:

Scherm­afbeelding 2024-04-09 om 20 08 28

Project status veld

Een ander 'probleem' is dat het veld voor de project status ontbreekt. Hierdoor kan ik dit niet weergeven in de volgende tabel. Is er een eenvoudige manier om dit toe te voegen? Zo niet, dan kan ik er altijd voor kiezen om het niet weer te geven in de frontend.

Scherm­afbeelding 2024-04-10 om 15 12 11
Aqua-sc commented 6 months ago

Status meegeven moet wel lukken, ik zal het dan gewoon null maken indien een (course_)admin dit opvraagt

usserwoutV2 commented 6 months ago

Als een course admin dit opvraagt zou ik de "niet begonnen"-status teruggeven als default. Je kan uiteraard null nemen als status voor "niet begonnen".

Aqua-sc commented 6 months ago

@usserwoutV2 zoals besproken in de meeting, is het ok dat ik de response als volgt doe:

{
    "enrolled": [lijst van projecten waar de user enrolled is]
    "admin": [lijst vd proejcten waar de user admin/creator is]
}

waarschijnlijk zullen in veel gevallen in van de 2 lijsten leeg zijn maar dit lijkt me wel de beste manier

usserwoutV2 commented 6 months ago

Jup is goed.

Aqua-sc commented 6 months ago

Dit is gefixt (nog in PR #190). Een response ziet er nu zo uit:

{
    "enrolledProjects": [
          "project:" { ... },
          "status:" ...,
      ],
    "adminProjects": [{...}]

Bijvoorbeeld:

{
    "enrolledProjects": [
        {
            "project": {
                "course": {
                    "name": "Science 101",
                    "url": "/api/courses/2",
                    "courseId": 2
                },
                "deadline": "2024-08-21T00:00:00Z",
                "description": "Conduct experiment",
                "projectId": 2,
                "name": "Science Lab 1",
                "submissionUrl": "/api/projects/2/submissions/2",
                "testUrl": "/api/tests/2",
                "maxScore": 20,
                "visible": false,
                "progress": {
                    "completed": 0,
                    "total": 1
                }
            },
            "status": "incorrect"
        }
    ],
    "adminProjects": [
        {
            "course": {
                "name": "Math 101",
                "url": "/api/courses/1",
                "courseId": 1
            },
            "deadline": "2024-12-24T10:00:00Z",
            "description": "Solve equations",
            "projectId": 1,
            "name": "Math project 1",
            "submissionUrl": "/api/projects/1/submissions",
            "testUrl": "/api/tests/6",
            "maxScore": 20,
            "visible": false,
            "progress": {
                "completed": 0,
                "total": 1
            }
        }
    ]
}