Merge pull request #49 van SELab-2/feat/api-outline-uitbreiding met feat/api-outline

feature: uitbreiding van skeletcode van de API
This commit is contained in:
Adriaan J. 2025-02-28 10:22:41 +01:00 committed by GitHub
commit 7a8f3e297c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 206 additions and 5 deletions

View file

@ -1,6 +1,16 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
assignments: [
'0',
'1',
]
});
});
// information about an assignment with id 'id'
router.get('/:id', (req, res) => {
res.json({
@ -9,8 +19,36 @@ router.get('/:id', (req, res) => {
description: 'Een korte beschrijving',
groups: [ '0' ],
learningPath: '0',
class: '0'
class: '0',
links: {
self: `${req.baseUrl}/${req.params.id}`,
submissions: `${req.baseUrl}/${req.params.id}`,
},
});
})
router.get('/:id/submissions', (req, res) => {
res.json({
submissions: [
'0'
],
});
});
router.get('/:id/groups', (req, res) => {
res.json({
groups: [
'0'
],
});
});
router.get('/:id/questions', (req, res) => {
res.json({
questions: [
'0'
],
});
});
export default router

View file

@ -1,6 +1,16 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
classes: [
'0',
'1',
]
});
});
// information about an class with id 'id'
router.get('/:id', (req, res) => {
res.json({
@ -8,9 +18,37 @@ router.get('/:id', (req, res) => {
displayName: 'Klas 4B',
teachers: [ '0' ],
students: [ '0' ],
assignments: [ '0' ],
joinRequests: [ '0' ],
invitations: [ '0' ],
links: {
self: `${req.baseUrl}/${req.params.id}`,
classes: `${req.baseUrl}/${req.params.id}/invitations`,
questions: `${req.baseUrl}/${req.params.id}/assignments`,
students: `${req.baseUrl}/${req.params.id}/students`,
}
});
})
router.get('/:id/invitations', (req, res) => {
res.json({
invitations: [
'0'
],
});
})
router.get('/:id/assignments', (req, res) => {
res.json({
assignments: [
'0'
],
});
})
router.get('/:id/students', (req, res) => {
res.json({
students: [
'0'
],
});
})

View file

@ -1,6 +1,16 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
groups: [
'0',
'1',
]
});
});
// information about a group (members, ... [TODO DOC])
router.get('/:id', (req, res) => {
res.json({

View file

@ -1,6 +1,16 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
questions: [
'0',
'1',
]
});
});
// information about an question with id 'id'
router.get('/:id', (req, res) => {
res.json({
@ -9,9 +19,20 @@ router.get('/:id', (req, res) => {
group: '0',
time: new Date(2025, 1, 1),
content: 'Zijn alle gehele getallen groter dan 2 gelijk aan de som van 2 priemgetallen????',
answers: [ '0' ],
learningObject: [ '0' ],
learningObject: '0',
links: {
self: `${req.baseUrl}/${req.params.id}`,
answers: `${req.baseUrl}/${req.params.id}/answers`,
}
});
})
router.get('/:id/answers', (req, res) => {
res.json({
answers: [
'0'
],
})
})
export default router

View file

@ -1,6 +1,32 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
students: [
'0',
'1',
]
});
});
// information about a student's profile
router.get('/:id', (req, res) => {
res.json({
id: req.params.id,
firstName: 'Jimmy',
lastName: 'Faster',
username: 'JimmyFaster2',
endpoints: {
classes: `/student/${req.params.id}/classes`,
questions: `/student/${req.params.id}/submissions`,
invitations: `/student/${req.params.id}/assignments`,
groups: `/student/${req.params.id}/groups`,
},
});
});
// the list of classes a student is in
router.get('/:id/classes', (req, res) => {
res.json({

View file

@ -1,6 +1,16 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
submissions: [
'0',
'1',
]
});
});
// information about an submission with id 'id'
router.get('/:id', (req, res) => {
res.json({

View file

@ -0,0 +1,58 @@
import express from 'express'
const router = express.Router();
// root endpoint used to search objects
router.get('/', (req, res) => {
res.json({
teachers: [
'0',
'1',
]
});
});
// information about a teacher
router.get('/:id', (req, res) => {
res.json({
id: req.params.id,
firstName: 'John',
lastName: 'Doe',
username: 'JohnDoe1',
links: {
self: `${req.baseUrl}/${req.params.id}`,
classes: `${req.baseUrl}/${req.params.id}/classes`,
questions: `${req.baseUrl}/${req.params.id}/questions`,
invitations: `${req.baseUrl}/${req.params.id}/invitations`,
},
});
})
// the questions students asked a teacher
router.get('/:id/questions', (req, res) => {
res.json({
questions: [
'0'
],
});
});
// invitations to other classes a teacher received
router.get('/:id/invitations', (req, res) => {
res.json({
invitations: [
'0'
],
});
});
// a list with ids of classes a teacher is in
router.get('/:id/classes', (req, res) => {
res.json({
classes: [
'0'
],
});
});
export default router