62 lines
1.2 KiB
JavaScript
Executable File
62 lines
1.2 KiB
JavaScript
Executable File
const router = require('express').Router()
|
|
const { Project, Task, Article, Tag } = require('../db/models')
|
|
module.exports = router
|
|
|
|
/* CREATE */
|
|
router.post('/', async (req, res, next) => {
|
|
try {
|
|
const task = await Task.create(req.body)
|
|
|
|
if (req.body.projectId) {
|
|
const project = await Project.findOne({
|
|
where: { id: req.body.projectId },
|
|
})
|
|
await task.setProject(project.id)
|
|
}
|
|
res.json(task)
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
/* READ */
|
|
router.get('/', async (req, res, next) => {
|
|
try {
|
|
const tasks = await Task.findAll()
|
|
res.send(tasks)
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
router.get('/:id', async (req, res, next) => {
|
|
try {
|
|
const task = await Task.findByPk(req.params.id)
|
|
res.json(task)
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
/* UPDATE */
|
|
router.put('/:id', async (req, res, next) => {
|
|
try {
|
|
const task = await Task.findByPk(req.params.id)
|
|
await task.update(req.body)
|
|
res.json(task)
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|
|
|
|
/* DELETE */
|
|
router.post('/:id/delete', async (req, res, next) => {
|
|
try {
|
|
const task = await Task.findByPk(req.params.id)
|
|
await task.destroy({ force: true })
|
|
res.json(task)
|
|
} catch (err) {
|
|
next(err)
|
|
}
|
|
})
|