mirror of
https://github.com/Dkunk7/doto.git
synced 2025-12-10 00:32:00 -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");
|
const Item = require("./Item");
|
||||||
|
|
||||||
// Create associations
|
// 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 };
|
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