Merge remote-tracking branch 'origin/dev' into feat/endpoints-beschermen-met-authenticatie-#105
# Conflicts: # backend/src/controllers/assignments.ts # backend/src/controllers/questions.ts # backend/src/data/questions/question-repository.ts # backend/src/interfaces/question.ts # backend/src/routes/assignments.ts # backend/src/routes/classes.ts # backend/src/routes/groups.ts # backend/src/routes/teachers.ts # backend/src/services/questions.ts # common/src/interfaces/question.ts
This commit is contained in:
commit
ac399153b6
71 changed files with 2075 additions and 2603 deletions
|
@ -1,9 +1,11 @@
|
|||
import express from 'express';
|
||||
import {
|
||||
createAssignmentHandler,
|
||||
deleteAssignmentHandler,
|
||||
getAllAssignmentsHandler,
|
||||
getAssignmentHandler,
|
||||
getAssignmentsSubmissionsHandler,
|
||||
putAssignmentHandler,
|
||||
} from '../controllers/assignments.js';
|
||||
import groupRouter from './groups.js';
|
||||
import {adminOnly, teachersOnly} from "../middleware/auth/checks/auth-checks";
|
||||
|
@ -12,14 +14,20 @@ import {onlyAllowIfHasAccessToAssignment} from "../middleware/auth/checks/assign
|
|||
|
||||
const router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get('/', getAllAssignmentsHandler);
|
||||
// Root endpoint used to search objects
|
||||
router.get('/', adminOnly, getAllAssignmentsHandler);
|
||||
|
||||
router.post('/', teachersOnly, onlyAllowOwnClassInBody, createAssignmentHandler);
|
||||
|
||||
router.get('/:id', getAssignmentHandler);
|
||||
// Information about an assignment with id 'id'
|
||||
router.get('/:id', onlyAllowIfHasAccessToAssignment, getAssignmentHandler);
|
||||
|
||||
router.put('/:id', putAssignmentHandler);
|
||||
|
||||
router.delete('/:id', deleteAssignmentHandler);
|
||||
|
||||
router.get('/:id/submissions', onlyAllowIfHasAccessToAssignment, getAssignmentsSubmissionsHandler);
|
||||
|
||||
router.get('/:id/questions', onlyAllowIfHasAccessToAssignment, (_req, res) => {
|
||||
|
|
|
@ -1,10 +1,17 @@
|
|||
import express from 'express';
|
||||
import {
|
||||
addClassStudentHandler,
|
||||
addClassTeacherHandler,
|
||||
createClassHandler,
|
||||
deleteClassHandler,
|
||||
deleteClassStudentHandler,
|
||||
deleteClassTeacherHandler,
|
||||
getAllClassesHandler,
|
||||
getClassHandler,
|
||||
getClassStudentsHandler,
|
||||
getClassTeachersHandler,
|
||||
getTeacherInvitationsHandler,
|
||||
putClassHandler,
|
||||
} from '../controllers/classes.js';
|
||||
import assignmentRouter from './assignments.js';
|
||||
import {adminOnly, teachersOnly} from "../middleware/auth/checks/auth-checks";
|
||||
|
@ -20,10 +27,24 @@ router.post('/', teachersOnly, createClassHandler);
|
|||
// Information about an class with id 'id'
|
||||
router.get('/:id', onlyAllowIfInClass, getClassHandler);
|
||||
|
||||
router.put('/:id', putClassHandler);
|
||||
|
||||
router.delete('/:id', deleteClassHandler);
|
||||
|
||||
router.get('/:id/teacher-invitations', teachersOnly, onlyAllowIfInClass, getTeacherInvitationsHandler);
|
||||
|
||||
router.get('/:id/students', onlyAllowIfInClass, getClassStudentsHandler);
|
||||
|
||||
router.post('/:id/students', addClassStudentHandler);
|
||||
|
||||
router.delete('/:id/students/:username', deleteClassStudentHandler);
|
||||
|
||||
router.get('/:id/teachers', getClassTeachersHandler);
|
||||
|
||||
router.post('/:id/teachers', addClassTeacherHandler);
|
||||
|
||||
router.delete('/:id/teachers/:username', deleteClassTeacherHandler);
|
||||
|
||||
router.use('/:classid/assignments', assignmentRouter);
|
||||
|
||||
export default router;
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
import express from 'express';
|
||||
import { createGroupHandler, getAllGroupsHandler, getGroupHandler, getGroupSubmissionsHandler } from '../controllers/groups.js';
|
||||
import {
|
||||
createGroupHandler,
|
||||
deleteGroupHandler,
|
||||
getAllGroupsHandler,
|
||||
getGroupHandler,
|
||||
getGroupSubmissionsHandler,
|
||||
putGroupHandler,
|
||||
} from '../controllers/groups.js';
|
||||
import {onlyAllowIfHasAccessToGroup} from "../middleware/auth/checks/group-auth-checker";
|
||||
import {teachersOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {onlyAllowIfHasAccessToAssignment} from "../middleware/auth/checks/assignment-auth-checks";
|
||||
|
@ -14,6 +21,10 @@ router.post('/', teachersOnly, onlyAllowIfHasAccessToAssignment, createGroupHand
|
|||
// Information about a group (members, ... [TODO DOC])
|
||||
router.get('/:groupid', onlyAllowIfHasAccessToGroup, getGroupHandler);
|
||||
|
||||
router.put('/:groupid', putGroupHandler);
|
||||
|
||||
router.delete('/:groupid', deleteGroupHandler);
|
||||
|
||||
router.get('/:groupid/submissions', onlyAllowIfHasAccessToGroup, getGroupSubmissionsHandler);
|
||||
|
||||
// The list of questions a group has made
|
||||
|
|
22
backend/src/routes/teacher-invitations.ts
Normal file
22
backend/src/routes/teacher-invitations.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import express from 'express';
|
||||
import {
|
||||
createInvitationHandler,
|
||||
deleteInvitationHandler,
|
||||
getAllInvitationsHandler,
|
||||
getInvitationHandler,
|
||||
updateInvitationHandler,
|
||||
} from '../controllers/teacher-invitations';
|
||||
|
||||
const router = express.Router({ mergeParams: true });
|
||||
|
||||
router.get('/:username', getAllInvitationsHandler);
|
||||
|
||||
router.get('/:sender/:receiver/:classId', getInvitationHandler);
|
||||
|
||||
router.post('/', createInvitationHandler);
|
||||
|
||||
router.put('/', updateInvitationHandler);
|
||||
|
||||
router.delete('/:sender/:receiver/:classId', deleteInvitationHandler);
|
||||
|
||||
export default router;
|
|
@ -10,6 +10,8 @@ import {
|
|||
getTeacherStudentHandler,
|
||||
updateStudentJoinRequestHandler,
|
||||
} from '../controllers/teachers.js';
|
||||
import invitationRouter from './teacher-invitations.js';
|
||||
|
||||
import {adminOnly} from "../middleware/auth/checks/auth-checks";
|
||||
import {onlyAllowUserHimself} from "../middleware/auth/checks/user-auth-checks";
|
||||
import {onlyAllowTeacherOfClass} from "../middleware/auth/checks/class-auth-checks";
|
||||
|
@ -35,10 +37,6 @@ router.get('/:username/joinRequests/:classId', onlyAllowTeacherOfClass, getStude
|
|||
router.put('/:username/joinRequests/:classId/:studentUsername', onlyAllowTeacherOfClass, updateStudentJoinRequestHandler);
|
||||
|
||||
// Invitations to other classes a teacher received
|
||||
router.get('/:id/invitations', (_req, res) => {
|
||||
res.json({
|
||||
invitations: ['0'],
|
||||
});
|
||||
});
|
||||
router.get('/invitations', invitationRouter);
|
||||
|
||||
export default router;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue