Added user model and api routes

This commit is contained in:
notnull 2019-07-08 14:43:24 -04:00
parent bab9fd5efa
commit 7b876caf36
4 changed files with 107 additions and 6 deletions

54
api/users.js Normal file
View File

@ -0,0 +1,54 @@
const router = require('express').Router()
const { User } = require('../db/models')
module.exports = router
/* CREATE */
router.post('/', async (req, res, next) => {
try {
const task = await User.create(req.body)
res.json(task)
} catch (err) {
next(err)
}
})
/* READ */
router.get('/', async (req, res, next) => {
try {
const tasks = await User.findAll()
res.send(tasks)
} catch (err) {
next(err)
}
})
router.get('/:id', async (req, res, next) => {
try {
const task = await User.findByPk(req.params.id)
res.json(task)
} catch (err) {
next(err)
}
})
/* UPDATE */
router.put('/:id', async (req, res, next) => {
try {
const task = await User.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 User.findByPk(req.params.id)
task.destroy({ force: true })
res.json(task)
} catch (err) {
next(err)
}
})

View File

@ -1,7 +1,14 @@
const Project = require('./project')
const Task = require('./task') const Task = require('./task')
const Project = require('./project')
const User = require('./user')
Project.hasMany(Task) Project.hasMany(Task)
Task.belongsTo(Project) Task.belongsTo(Project)
module.exports = { Task, Project } User.belongsToMany(Project, { through: 'projectUser' })
Project.hasMany(User)
Task.belongsToMany(User, { through: 'userTask' })
User.hasMany(Task)
module.exports = { Task, Project, User }

20
db/models/user.js Normal file
View File

@ -0,0 +1,20 @@
const Sequelize = require('sequelize')
const db = require('../db')
const User = db.define('users', {
name: {
type: Sequelize.STRING,
allowNull: false,
},
email: {
type: Sequelize.STRING,
},
avatar: {
type: Sequelize.STRING,
defaultValue: 'default-user-img.png',
},
})
module.exports = User

View File

@ -1,5 +1,5 @@
const db = require('../db') const db = require('../db')
const { Task, Project } = require('./models') const { Task, Project, User } = require('./models')
const testTasks = [ const testTasks = [
{ {
@ -15,18 +15,38 @@ const testTasks = [
{ {
desc: 'eat dinner', desc: 'eat dinner',
completed: false, completed: false,
projectId: 1,
}, },
] ]
const testProjects = [{ name: 'Anarchy Planet' }] const testProjects = [{ name: 'Anarchy Planet' }, { name: 'Tilde' }]
const testUsers = [
{ name: 'nn', email: 'nn@ap.org' },
{ name: 'dn', email: 'dn@ap.org' },
]
async function runSeed() { async function runSeed() {
await db.sync({ force: true }) await db.sync({ force: true })
console.log('db synced!') console.log('db synced!')
console.log('seeding...') console.log('seeding...')
try { try {
const projects = await Project.bulkCreate(testProjects) const p1 = await Project.create(testProjects[0])
const tasks = await Task.bulkCreate(testTasks) const p2 = await Project.create(testProjects[1])
const u1 = await User.create(testUsers[0])
const u2 = await User.create(testUsers[1])
const t1 = await Task.create(testTasks[0])
const t2 = await Task.create(testTasks[1])
const t3 = await Task.create(testTasks[2])
await p1.addTask(t1)
await p1.addTask(t2)
await p2.addTask(t3)
await u1.addTasks([t1, t2])
await u2.addTask(t3)
console.log('seeded successfully') console.log('seeded successfully')
} catch (err) { } catch (err) {