84 lines
2.5 KiB
TypeScript
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;
|