Added user model and api routes
This commit is contained in:
parent
bab9fd5efa
commit
7b876caf36
54
api/users.js
Normal file
54
api/users.js
Normal 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)
|
||||||
|
}
|
||||||
|
})
|
@ -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
20
db/models/user.js
Normal 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
|
28
db/seed.js
28
db/seed.js
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user