Files
Constantin Simonis b8fd37f3e0 Initial Commit
2025-06-10 10:00:02 +02:00

84 lines
2.5 KiB
TypeScript

import { Request, Response, Router } from 'express';
import { DeleteResult, getManager, UpdateResult } from 'typeorm';
import { Task } from '../entities/Task';
const router = Router();
router.get('/tasks', async (_req: Request, res: Response) => {
try {
const taskRepository = getManager().getRepository(Task);
await taskRepository.find({
order: { id: 'DESC' },
}).then((tasks: Task[]) => {
res.status(200).send(tasks);
}).catch((error) => {
res.status(400).send(error);
});
} catch (error) {
res.status(400).send(error);
}
});
router.post('/tasks', async (req: Request, res: Response) => {
try {
const taskRepository = getManager().getRepository(Task);
const task: Task = new Task();
task.title = req.body.title;
task.done = req.body.done;
task.dueDate = req.body.dueDate;
await taskRepository.save(task).then((result: Task) => {
return res.status(200).send({
message: `Task successfully created`,
response: result,
});
}).catch((error) => {
res.status(400).send(error);
});
} catch (error) {
res.status(400).send(error);
}
});
router.put('/tasks/:id', (req: Request, res: Response) => {
try {
const taskRepository = getManager().getRepository(Task);
const task: Task = new Task();
task.title = req.body.title;
task.done = req.body.done;
task.dueDate = req.body.dueDate;
taskRepository.update(
req.params.id,
task,
).then((updatedTask: UpdateResult) => {
res.status(200).send({
message: `Task successfully updated`,
response: updatedTask,
});
}).catch((error) => {
res.status(400).send(error);
});
} catch (error) {
res.status(400).send(error);
}
});
router.delete('/tasks/:id', async (req: Request, res: Response) => {
try {
const taskRepository = getManager().getRepository(Task);
const taskEntity = await taskRepository.findOne(req.params.id);
if (taskEntity) {
taskRepository.delete(req.params.id).then((result: DeleteResult) => {
res.status(200).send({
message: `Task successfully deleted`,
response: result,
});
});
}
} catch (error) {
res.status(400).send(error);
}
});
export default router;