tasks-backend/api/tasks.js

61 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) => {
const project = await Project.findOne({
where: { name: req.body.projectName },
})
await console.log('Project\n', project.id)
try {
const task = await Task.create(req.body)
await task.setProject(project.id)
await console.log('task.projectId:', task.projectId)
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)
}
})