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