feat: teacher kan student request aanpassen en oprvagen
This commit is contained in:
parent
815858d02f
commit
c8cff2e820
6 changed files with 136 additions and 139 deletions
|
@ -9,13 +9,11 @@ import {
|
|||
getStudentClasses,
|
||||
getStudentGroups,
|
||||
getStudentQuestions,
|
||||
getStudentSubmissions, updateClassJoinRequestStatus,
|
||||
getStudentSubmissions,
|
||||
} from '../services/students.js';
|
||||
import { StudentDTO } from '../interfaces/student.js';
|
||||
import {BadRequestException} from "../exceptions";
|
||||
import {requireFields} from "./error-helper";
|
||||
|
||||
|
||||
export async function getAllStudentsHandler(req: Request, res: Response): Promise<void> {
|
||||
const full = req.query.full === 'true';
|
||||
|
||||
|
@ -41,16 +39,16 @@ export async function createStudentHandler(req: Request, res: Response) {
|
|||
|
||||
const userData = req.body as StudentDTO;
|
||||
|
||||
const student = await createStudent(userData);
|
||||
res.status(201).json({ student });
|
||||
await createStudent(userData);
|
||||
res.status(201);
|
||||
}
|
||||
|
||||
export async function deleteStudentHandler(req: Request, res: Response) {
|
||||
const username = req.params.username;
|
||||
requireFields({ username });
|
||||
|
||||
const student = await deleteStudent(username);
|
||||
res.status(200).json({ student });
|
||||
await deleteStudent(username);
|
||||
res.status(200);
|
||||
}
|
||||
|
||||
export async function getStudentClassesHandler(req: Request, res: Response): Promise<void> {
|
||||
|
@ -133,16 +131,6 @@ export async function getStudentRequestHandler(req: Request, res: Response): Pro
|
|||
res.status(201).json({ requests })
|
||||
}
|
||||
|
||||
export async function updateClassJoinRequestHandler(req: Request, res: Response) {
|
||||
const username = req.query.username as string;
|
||||
const classId = req.params.classId;
|
||||
const accepted = req.query.accepted !== 'false'; // default = true
|
||||
requireFields({ username, classId });
|
||||
|
||||
const result = await updateClassJoinRequestStatus(username, classId, accepted);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
|
||||
export async function deleteClassJoinRequestHandler(req: Request, res: Response) {
|
||||
const username = req.params.username as string;
|
||||
const classId = req.params.classId;
|
||||
|
|
|
@ -3,10 +3,10 @@ import {
|
|||
createTeacher,
|
||||
deleteTeacher,
|
||||
getAllTeachers,
|
||||
getClassesByTeacher,
|
||||
getClassesByTeacher, getJoinRequestsByClass,
|
||||
getStudentsByTeacher,
|
||||
getTeacher,
|
||||
getTeacherQuestions
|
||||
getTeacherQuestions, updateClassJoinRequestStatus
|
||||
} from '../services/teachers.js';
|
||||
import { ClassDTO } from '../interfaces/class.js';
|
||||
import { StudentDTO } from '../interfaces/student.js';
|
||||
|
@ -19,11 +19,6 @@ export async function getAllTeachersHandler(req: Request, res: Response): Promis
|
|||
|
||||
const teachers: TeacherDTO[] | string[] = await getAllTeachers(full);
|
||||
|
||||
if (!teachers) {
|
||||
res.status(404).json({ error: `Teachers not found.` });
|
||||
return;
|
||||
}
|
||||
|
||||
res.json({ teachers });
|
||||
}
|
||||
|
||||
|
@ -31,59 +26,45 @@ export async function getTeacherHandler(req: Request, res: Response): Promise<vo
|
|||
const username = req.params.username;
|
||||
requireFields({ username });
|
||||
|
||||
const user = await getTeacher(username);
|
||||
const teacher = await getTeacher(username);
|
||||
|
||||
|
||||
|
||||
res.status(201).json(user);
|
||||
res.json({ teacher });
|
||||
}
|
||||
|
||||
export async function createTeacherHandler(req: Request, res: Response) {
|
||||
const username = req.body.username;
|
||||
const firstName = req.body.firstName;
|
||||
const lastName = req.body.lastName;
|
||||
requireFields({ username, firstName, lastName });
|
||||
|
||||
const userData = req.body as TeacherDTO;
|
||||
|
||||
if (!userData.username || !userData.firstName || !userData.lastName) {
|
||||
return;
|
||||
}
|
||||
|
||||
const newUser = await createTeacher(userData);
|
||||
res.status(201).json(newUser);
|
||||
await createTeacher(userData);
|
||||
res.status(201);
|
||||
}
|
||||
|
||||
export async function deleteTeacherHandler(req: Request, res: Response) {
|
||||
const username = req.params.username;
|
||||
requireFields({ username });
|
||||
|
||||
if (!username) {
|
||||
return;
|
||||
}
|
||||
|
||||
const deletedUser = await deleteTeacher(username);
|
||||
if (!deletedUser) {
|
||||
return;
|
||||
}
|
||||
|
||||
res.status(200).json(deletedUser);
|
||||
await deleteTeacher(username);
|
||||
res.status(200);
|
||||
}
|
||||
|
||||
export async function getTeacherClassHandler(req: Request, res: Response): Promise<void> {
|
||||
const username = req.params.username as string;
|
||||
const full = req.query.full === 'true';
|
||||
|
||||
if (!username) {
|
||||
return;
|
||||
}
|
||||
requireFields({ username });
|
||||
|
||||
const classes: ClassDTO[] | string[] = await getClassesByTeacher(username, full);
|
||||
|
||||
res.status(201).json(classes);
|
||||
res.json(classes);
|
||||
}
|
||||
|
||||
export async function getTeacherStudentHandler(req: Request, res: Response): Promise<void> {
|
||||
const username = req.params.username as string;
|
||||
const full = req.query.full === 'true';
|
||||
|
||||
if (!username) {
|
||||
return;
|
||||
}
|
||||
requireFields({ username });
|
||||
|
||||
const students: StudentDTO[] | string[] = await getStudentsByTeacher(username, full);
|
||||
|
||||
|
@ -93,12 +74,28 @@ export async function getTeacherStudentHandler(req: Request, res: Response): Pro
|
|||
export async function getTeacherQuestionHandler(req: Request, res: Response): Promise<void> {
|
||||
const username = req.params.username as string;
|
||||
const full = req.query.full === 'true';
|
||||
|
||||
if (!username) {
|
||||
return;
|
||||
}
|
||||
requireFields({ username });
|
||||
|
||||
const questions: QuestionDTO[] | QuestionId[] = await getTeacherQuestions(username, full);
|
||||
|
||||
res.json({ questions });
|
||||
}
|
||||
|
||||
export async function getStudentJoinRequestHandler(req: Request, res: Response) {
|
||||
const username = req.query.username as string;
|
||||
const classId = req.params.classId;
|
||||
requireFields({ username, classId });
|
||||
|
||||
const joinRequests = await getJoinRequestsByClass(classId);
|
||||
res.json({ joinRequests });
|
||||
}
|
||||
|
||||
export async function updateStudentJoinRequestHandler(req: Request, res: Response) {
|
||||
const username = req.query.username as string;
|
||||
const classId = req.params.classId;
|
||||
const accepted = req.query.accepted !== 'false'; // default = true
|
||||
requireFields({ username, classId });
|
||||
|
||||
await updateClassJoinRequestStatus(username, classId, accepted);
|
||||
res.status(200);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue