feat: submission route post delete
This commit is contained in:
parent
911e17771f
commit
d9eb8def72
6 changed files with 100 additions and 17 deletions
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue