tasks-backend/api/projects.js

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)
}
})