diff --git a/tp_note_2023_2024/src/requestHandlers/task.ts b/tp_note_2023_2024/src/requestHandlers/task.ts index f2faad5a9b0fa277f781102378d33f20b2fa56f5..c75715aa04989f85b0b9dc1725f5ca47d03421c2 100644 --- a/tp_note_2023_2024/src/requestHandlers/task.ts +++ b/tp_note_2023_2024/src/requestHandlers/task.ts @@ -3,4 +3,27 @@ import { Prisma } from '@prisma/client'; import type { Request, Response } from 'express'; import { HttpError } from '../error'; import { assert } from 'superstruct'; +import { TaskUpdateData } from "../validation/task"; +import { responde } from "../functions"; +export async function update_one(req: Request, res: Response) { + assert(req.body, TaskUpdateData); + const task = await prisma.task.update({ + where: { id: Number(req.params.task_id) }, + data: req.body, + }); + if (task == null) { + throw new HttpError("Task doesn't exist", 404); + } + res.status(200).json(task); +} + +export async function delete_one(req: Request, res: Response) { + const task = await prisma.task.delete({ + where: { id: Number(req.params.task_id) } + }); + if (task == null) { + throw new HttpError("Task doesn't exist", 404); + } + responde(res, 204, "Task succesfully deleted."); +} \ No newline at end of file diff --git a/tp_note_2023_2024/src/routes/routes_tasks.ts b/tp_note_2023_2024/src/routes/routes_tasks.ts index 65ecbf9500ef7583b24cfdc189b1512c8cf4b03c..d4d0b447532c64bb6cd5305fe170c356623769cc 100644 --- a/tp_note_2023_2024/src/routes/routes_tasks.ts +++ b/tp_note_2023_2024/src/routes/routes_tasks.ts @@ -1,6 +1,9 @@ import express from "express"; -import * as user from "../requestHandlers/user"; +import * as task from "../requestHandlers/task"; var ex = require("express"), router = ex.Router(); +router.patch("/:task_id", task.update_one); +router.delete("/:task_id", task.delete_one); + module.exports = router;