feat: submission route post delete

This commit is contained in:
Gabriellvl 2025-03-13 16:45:59 +01:00
parent 911e17771f
commit d9eb8def72
6 changed files with 100 additions and 17 deletions

View file

@ -1,28 +1,29 @@
import { Request, Response } from "express";
import { getSubmission } from "../services/submissions.js";
import {createSubmission, deleteSubmission, getSubmission} from "../services/submissions.js";
import { Language, languageMap } from "../entities/content/language.js";
import {SubmissionDTO} from "../interfaces/submission";
interface SubmissionParams {
lohruid: string,
submissionNumber: number;
hruid: string,
id: number;
}
export async function getSubmissionHandler(
req: Request<SubmissionParams>,
res: Response,
): Promise<void> {
const lohruid = req.params.lohruid;
const submissionNumber = +req.params.submissionNumber;
const lohruid = req.params.hruid;
const submissionNumber = +req.params.id;
if (isNaN(submissionNumber)) {
res.status(404).json({ error: 'Submission number is not a number' });
res.status(400).json({ error: 'Submission number is not a number' });
return;
}
let lang = languageMap[req.query.language as string] || Language.Dutch;
let version = req.query.version as string || '1';
const submission = getSubmission(lohruid, lang, version, submissionNumber);
const submission = await getSubmission(lohruid, lang, version, submissionNumber);
if (!submission) {
res.status(404).json({ error: 'Submission not found' });
@ -31,3 +32,29 @@ export async function getSubmissionHandler(
res.json(submission);
}
export async function createSubmissionHandler(req: Request, res: Response){
const submissionDTO = req.body as SubmissionDTO;
const submission = await createSubmission(submissionDTO);
if (!submission)
res.status(404).json({ error: 'Submission not added' });
else
res.json(submission)
}
export async function deleteSubmissionHandler(req: Request, res: Response){
const hruid = req.params.hruid;
const submissionNumber = +req.params.id;
let lang = languageMap[req.query.language as string] || Language.Dutch;
let version = req.query.version as string || '1';
const submission = await deleteSubmission(hruid, lang, version, submissionNumber);
if (!submission)
res.status(404).json({ error: 'Submission not found' });
else
res.json(submission)
}