mirror of
https://github.com/Dkunk7/doto.git
synced 2025-12-10 14:17:02 -06:00
Started User routes.
This commit is contained in:
parent
8130e598d5
commit
9fb36d4328
@ -0,0 +1,9 @@
|
||||
const router = require("express").Router();
|
||||
|
||||
const userRoutes = require("./user-routes");
|
||||
const itemRoutes = require("./item-routes");
|
||||
|
||||
router.use('/users', userRoutes);
|
||||
router.use('/items', itemRoutes);
|
||||
|
||||
module.exports = router;
|
||||
0
controllers/api/item-routes.js
Normal file
0
controllers/api/item-routes.js
Normal file
@ -0,0 +1,92 @@
|
||||
const router = require("express").Router();
|
||||
const { User } = require("../../models");
|
||||
const withAuth = require("../../utils/auth");
|
||||
|
||||
// GET all User
|
||||
router.get("/", (req, res) => {
|
||||
User.findAll({
|
||||
attributes: { exclude: ['password'] }
|
||||
})
|
||||
.then(dbUserData => res.json(dbUserData))
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
res.status(500).json(err);
|
||||
});
|
||||
});
|
||||
|
||||
// GET a single User by id
|
||||
router.get("/:id", (req, res) => {
|
||||
User.findOne({
|
||||
attributes: { exclude: ['password'] },
|
||||
where: {
|
||||
user_id: req.params.id
|
||||
}
|
||||
})
|
||||
.then(dbUserData => {
|
||||
if (!dbUserData) {
|
||||
res.status(404).json({ message: "No user found with this id."});
|
||||
return;
|
||||
}
|
||||
res.json(dbUserData);
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
res.status(500).json(err);
|
||||
});
|
||||
});
|
||||
|
||||
// Create a User
|
||||
router.post("/", (req, res) => {
|
||||
User.create({
|
||||
first_name: req.body.first_name,
|
||||
last_name: req.body.last_name,
|
||||
email: req.body.email,
|
||||
password: req.body.password
|
||||
})
|
||||
.then(dbUserData => {
|
||||
req.session.save(() => {
|
||||
req.session.user_id = dbUserData.user_id;
|
||||
req.session.email = dbUserData.email;
|
||||
req.session.loggedIn = true;
|
||||
|
||||
res.json(dbUserData);
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err);
|
||||
res.status(500).json(err);
|
||||
});
|
||||
});
|
||||
|
||||
// Login
|
||||
router.post("/login", (req, res) => {
|
||||
User.findOne({
|
||||
where: {
|
||||
email: req.body.email,
|
||||
},
|
||||
})
|
||||
.then((dbUserData) => {
|
||||
if (!dbUserData) {
|
||||
res.status(400).json({ message: "Incorrect email or password." });
|
||||
console.log("Incorrect email or password.");
|
||||
return;
|
||||
}
|
||||
|
||||
const validPassword = dbUserData.checkPassword(req.body.password);
|
||||
console.log(dbUserData)
|
||||
|
||||
if (!validPassword) {
|
||||
res.status(400).json({ message: "Incorrect email or password." });
|
||||
console.log("Incorrect email or password.");
|
||||
return;
|
||||
}
|
||||
req.session.save(() => {
|
||||
req.session.user_id = dbUserData.user_id;
|
||||
req.session.email = dbUserData.email;
|
||||
req.session.loggedIn = true;
|
||||
|
||||
res.json({ ok: true, user: dbUserData, message: "You're logged in! Start doing things. Now." });
|
||||
console.log("You're logged in! Start doing things. Now.");
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
const router = require("express").Router();
|
||||
|
||||
const apiRoutes = require("./api");
|
||||
const homeRoutes = require("./home-routes");
|
||||
const editRoutes = require("./edit-routes"); // Is this one necessary? Unsure.
|
||||
|
||||
router.use("/api", apiRoutes);
|
||||
router.use("/", homeRoutes);
|
||||
router.use("/edit", editRoutes); // Might not need this either.
|
||||
|
||||
router.use((req, res) => {
|
||||
res.status(404).end();
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@ -3,7 +3,11 @@ const User = require("./User");
|
||||
const Item = require("./Item");
|
||||
|
||||
// Create associations
|
||||
|
||||
|
||||
User.hasMany(Item, {
|
||||
foreignKey: 'user_id'
|
||||
});
|
||||
Item.belongsTo(User, {
|
||||
foreignKey: 'id' // "id" might be wrong? It might need to be "user_id", but that doesn't make sense to me, AND IT NEVER HAS.
|
||||
});
|
||||
|
||||
module.exports = { User, Item };
|
||||
9
utils/auth.js
Normal file
9
utils/auth.js
Normal file
@ -0,0 +1,9 @@
|
||||
const withAuth = (req, res, next) => {
|
||||
if (!req.session.user_id) { // NOTE: Make sure that .user_id is the correct variable name.
|
||||
res.redirect("/login");
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = withAuth;
|
||||
Loading…
x
Reference in New Issue
Block a user