tasks-backend/api/tasks.js
2019-07-08 14:43:35 -04:00

62 lines
1.2 KiB
JavaScript
Executable File

const router = require('express').Router()
const { Project, Task } = 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)
task.destroy({ force: true })
res.json(task)
} catch (err) {
next(err)
}
})