This commit is contained in:
Jonasz Bigda
2023-03-25 21:51:42 +01:00
parent 0db1d5117e
commit b332e9ceb0
1044 changed files with 37502 additions and 63938 deletions

View File

@@ -18,7 +18,7 @@ router.get("/", async (req, res) => {
{
$and: [
{ $or: [{ city: { $regex: regex } }, { name: { $regex: regex } }] },
{ $or: [{ hidden: false }, { hidden: { $exists: false } }] }
{ $or: [{ hidden: false }, { hidden: { $exists: false } }] },
],
},
"_id name city adress type imgUrl workingHours description tags location"
@@ -62,6 +62,7 @@ router.get("/location", async (req, res) => {
});
// AUTOCOMPLETE
/*
router.get("/autocomplete/", (req, res) => {
if (req.query.string.length > 0) {
@@ -104,4 +105,6 @@ router.get("/autocomplete/", (req, res) => {
}
});
*/
module.exports = router;

View File

@@ -1,69 +1,18 @@
const express = require("express");
const {
changeUserPass,
fetchUser,
} = require("../services/databaseServices.js");
const { fetchUser } = require("../services/databaseServices.js");
const {
createUser,
prepareSafeUser,
} = require("../services/dataPrepServices.js");
const {
newError,
handleError,
checkPassword,
generateAuthToken,
checkEmailTaken,
validateUserToken,
hashPass,
generateRefreshToken,
validateRefreshToken,
} = require("../services/services.js");
const { resetPassword } = require("../services/mailServices.js");
const { newError, handleError } = require("../services/services.js");
const cookie = require("cookie");
const { validateLogin, validateRegister, validatePassword } = require("../services/validations.js");
const { validateRegister } = require("../services/validations.js");
var router = express.Router();
// LOGIN
router.post("/login", async (req, res) => {
try {
if (!req.body.password || !req.body.email) {
throw newError("Niepełne dane.", 403);
}
validateLogin(req.body);
const user = await fetchUser(req.body.email);
await checkPassword(req.body.password, user.password);
const safeUser = await prepareSafeUser(user);
var token = generateAuthToken(safeUser);
var refreshToken = generateRefreshToken(user);
res.header("x-auth-token", token)
.header("Set-Cookie", cookie.serialize("refreshToken", refreshToken, { httpOnly: true }))
.status(202).send(safeUser);
} catch (error) {
handleError(error, res);
}
});
//REFRESH_TOKEN
router.post("/refreshtoken", async (req, res) => {
try {
const cookies = cookie.parse(req.headers.cookie);
const user = validateRefreshToken(cookies.refreshToken);
const newAccessToken = generateAuthToken(user);
const newRefreshToken = generateRefreshToken(user);
res.header("x-auth-token", newAccessToken)
.header("Set-Cookie", cookie.serialize("refreshToken", newRefreshToken, { httpOnly: true }))
.status(202).send("Auth token refreshed.");
} catch (error) {
handleError(error, res);
}
})
// REFRESH
router.post("/refresh", async (req, res) => {
try {
const token = req.headers["x-auth-token"];
const user = validateUserToken(token);
const freshUser = await fetchUser(user.email);
const safeUser = await prepareSafeUser(freshUser);
res.send(safeUser);
@@ -76,7 +25,6 @@ router.post("/refresh", async (req, res) => {
router.post("/register", async (req, res) => {
try {
validateRegister(req.body);
await checkEmailTaken(req.body.email);
const user = await createUser(req);
await user.save().catch((e) => {
throw newError("Niewłaściwe dane.", 500);
@@ -90,54 +38,8 @@ router.post("/register", async (req, res) => {
// CHANGE USER DATA
router.post("/edit", async (req, res) => {
try {
console.log("23")
console.log("23");
} catch (error) {
handleError(error, res)
}
})
// CHANGE PASSWORD
router.post("/changepass", async (req, res) => {
try {
if (!req.body.password || !req.body.email || !req.body.newPass) {
throw newError("Niepełne dane.", 204);
}
validateLogin(req.body);
const token = req.headers["x-auth-token"];
validateUserToken(token);
const user = await fetchUser(req.body.email);
await checkPassword(req.body.password, user.password);
const newPassword = await hashPass(req.body.newPass);
await changeUserPass(user._id, newPassword);
res.status(200).send("Hasło zostało zmienione.");
} catch (error) {
handleError(error, res);
}
});
// REQUEST PASSWORD RESET
router.post("/forgotpassword", async (req, res) => {
try {
await resetPassword(req.body.email);
res.send(
"Link do utworzenia nowego hasła został wysłany na adres email powiązany z kontem. Sprawdź również folder SPAM."
);
} catch (error) {
handleError(error, res);
}
});
// RESET PASS
router.post("/resetpass", async (req, res) => {
try {
decodedToken = validateUserToken(req.body.token);
validatePassword(req.body.newPass)
const user = await fetchUser(decodedToken.email);
const newPassword = await hashPass(req.body.newPass);
await changeUserPass(user._id, newPassword);
res.send("Hasło zostało zmienione.");
} catch (error) {
console.log(error);
handleError(error, res);
}
});