31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import express from 'express';
|
|
import {
|
|
createGroupHandler,
|
|
deleteGroupHandler,
|
|
getAllGroupsHandler,
|
|
getGroupHandler,
|
|
getGroupQuestionsHandler,
|
|
getGroupSubmissionsHandler,
|
|
putGroupHandler,
|
|
} from '../controllers/groups.js';
|
|
import { onlyAllowIfHasAccessToGroup } from '../middleware/auth/checks/group-auth-checker.js';
|
|
import { teachersOnly } from '../middleware/auth/checks/auth-checks.js';
|
|
import { onlyAllowIfHasAccessToAssignment } from '../middleware/auth/checks/assignment-auth-checks.js';
|
|
|
|
const router = express.Router({ mergeParams: true });
|
|
|
|
router.get('/', onlyAllowIfHasAccessToAssignment, getAllGroupsHandler);
|
|
|
|
router.post('/', teachersOnly, onlyAllowIfHasAccessToAssignment, createGroupHandler);
|
|
|
|
router.get('/:groupid', onlyAllowIfHasAccessToAssignment, getGroupHandler);
|
|
|
|
router.put('/:groupid', teachersOnly, onlyAllowIfHasAccessToAssignment, putGroupHandler);
|
|
|
|
router.delete('/:groupid', teachersOnly, onlyAllowIfHasAccessToAssignment, deleteGroupHandler);
|
|
|
|
router.get('/:groupid/submissions', onlyAllowIfHasAccessToGroup, getGroupSubmissionsHandler);
|
|
|
|
router.get('/:groupid/questions', onlyAllowIfHasAccessToGroup, getGroupQuestionsHandler);
|
|
|
|
export default router;
|