From 10a7680d90cc495d64686769a02272a6917cc4b0 Mon Sep 17 00:00:00 2001 From: Jonasz Bigda Date: Thu, 8 Oct 2020 11:12:56 +0200 Subject: [PATCH] Migrated to CommonJS --- config/mailTemplateReset.js | 4 +- models/dish.js | 4 +- models/payments.js | 4 +- models/restaurant.js | 4 +- models/users.js | 4 +- routes/routeDish.js | 16 ++++---- routes/routeImg.js | 14 +++---- routes/routePayments.js | 6 +-- routes/routeRestaurant.js | 16 ++++---- routes/routeSearch.js | 10 ++--- routes/routeUser.js | 20 ++++++---- services/azureServices.js | 26 ++++++++----- services/dataPrepServices.js | 35 +++++++++++------- services/databaseServices.js | 71 ++++++++++++++++++++++-------------- services/mailServices.js | 17 ++++++--- services/services.js | 67 +++++++++++++++++++++------------- 16 files changed, 189 insertions(+), 129 deletions(-) diff --git a/config/mailTemplateReset.js b/config/mailTemplateReset.js index c864164..8ba9e6b 100644 --- a/config/mailTemplateReset.js +++ b/config/mailTemplateReset.js @@ -1,4 +1,4 @@ -export default function makeResetPassMessage(link) { +function makeResetPassMessage(link) { return { html: ` @@ -146,3 +146,5 @@ export default function makeResetPassMessage(link) { text: `Drogi użytkowniku, dostałeś tę wiadomość, ponieważ użyłeś opcji "Nie pamiętam hasła" w aplikacji Menui. Twoje tymczasowe hasło to: ${link}. Zaloguj się za jego pomocą i ustaw nowe bezpieczne hasło. Jeżeli nie wysyłałeś prośby o zmianę hasła, prosimy zignoruj tę wiadomość. Pozdrawiamy - Zespół Menui`, }; } + +module.exports = makeResetPassMessage; diff --git a/models/dish.js b/models/dish.js index f551930..e66c43e 100644 --- a/models/dish.js +++ b/models/dish.js @@ -1,4 +1,4 @@ -import mongoose from "mongoose"; +const mongoose = require("mongoose"); const dishSchema = mongoose.Schema({ _id: mongoose.Types.ObjectId, @@ -43,4 +43,4 @@ const dishSchema = mongoose.Schema({ vegetarian: Boolean, }); -export default mongoose.model("Dish", dishSchema); +module.exports = mongoose.model("Dish", dishSchema); diff --git a/models/payments.js b/models/payments.js index 88fcc58..57e3c39 100644 --- a/models/payments.js +++ b/models/payments.js @@ -1,4 +1,4 @@ -import mongoose from "mongoose"; +const mongoose = require("mongoose"); const paymentSchema = mongoose.Schema({ _id: mongoose.Types.ObjectId, @@ -7,4 +7,4 @@ const paymentSchema = mongoose.Schema({ months: Number, }); -export default mongoose.model("Payment", paymentSchema); +module.exorts = mongoose.model("Payment", paymentSchema); diff --git a/models/restaurant.js b/models/restaurant.js index 6e580b3..d866e6d 100644 --- a/models/restaurant.js +++ b/models/restaurant.js @@ -1,4 +1,4 @@ -import mongoose from "mongoose"; +const mongoose = require("mongoose"); const restaurantSchema = mongoose.Schema({ _id: mongoose.Types.ObjectId, @@ -75,4 +75,4 @@ const restaurantSchema = mongoose.Schema({ dishes: [mongoose.Types.ObjectId], }); -export default mongoose.model("Restaurant", restaurantSchema); +module.exports = mongoose.model("Restaurant", restaurantSchema); diff --git a/models/users.js b/models/users.js index 07f72b2..7e501f9 100644 --- a/models/users.js +++ b/models/users.js @@ -1,4 +1,4 @@ -import mongoose from "mongoose"; +const mongoose = require("mongoose"); const userSchema = mongoose.Schema({ _id: mongoose.Types.ObjectId, @@ -41,4 +41,4 @@ const userSchema = mongoose.Schema({ trialUsed: Boolean, }); -export default mongoose.model("User", userSchema); +module.exports = mongoose.model("User", userSchema); diff --git a/routes/routeDish.js b/routes/routeDish.js index afb0372..7468935 100644 --- a/routes/routeDish.js +++ b/routes/routeDish.js @@ -1,19 +1,19 @@ -import express from "express"; -import { createDish } from "../services/dataPrepServices.js"; -import { +const express = require("express"); +const { createDish } = require("../services/dataPrepServices.js"); +const { removeDish, fetchDish, addDishToRestaurant, setDishVisibility, -} from "../services/databaseServices.js"; -import { +} = require("../services/databaseServices.js"); +const { validateRestaurant, validateUserToken, validateDishId, handleError, verifyDishAccess, -} from "../services/services.js"; -import Dish from "../models/dish.js"; +} = require("../services/services.js"); +const Dish = require("../models/dish.js"); var router = express.Router(); @@ -89,4 +89,4 @@ router.put("/", async (req, res) => { } }); -export default router; +module.exports = router; diff --git a/routes/routeImg.js b/routes/routeImg.js index 8cf8c28..2c08d9f 100644 --- a/routes/routeImg.js +++ b/routes/routeImg.js @@ -1,8 +1,8 @@ -import express from "express"; -import * as services from "../services/services.js"; -import { uploadBlob } from "../services/azureServices.js"; +const express = require("express"); +const { validateUserToken, handleError } = require("../services/services.js"); +const { uploadBlob } = require("../services/azureServices.js"); // Azure -import multer from "multer"; +const multer = require("multer"); var router = express.Router(); var storage = multer.memoryStorage(); @@ -22,11 +22,11 @@ const uploadStrategy = multer({ router.post("/", uploadStrategy, async (req, res) => { try { const token = req.headers["x-auth-token"]; - services.validateUserToken(token); + validateUserToken(token); await uploadBlob(req, res); } catch (error) { - services.handleError(error, res); + handleError(error, res); } }); -export default router; +module.exports = router; diff --git a/routes/routePayments.js b/routes/routePayments.js index 90a5281..3ab1555 100644 --- a/routes/routePayments.js +++ b/routes/routePayments.js @@ -1,5 +1,5 @@ -import express from "express"; -import { handleError } from "../services/services.js"; +const express = require("express"); +const { handleError } = require("../services/services.js"); var router = express.Router(); @@ -11,4 +11,4 @@ router.post("/", async (req, res) => { } }); -export default router; +module.exports = router; diff --git a/routes/routeRestaurant.js b/routes/routeRestaurant.js index 9bc04b7..e525ef5 100644 --- a/routes/routeRestaurant.js +++ b/routes/routeRestaurant.js @@ -1,6 +1,6 @@ -import express from "express"; -import { createRestaurant } from "../services/dataPrepServices.js"; -import { +const express = require("express"); +const { createRestaurant } = require("../services/dataPrepServices.js"); +const { addRestaurantToUser, fetchRestaurant, fetchAllDishesForRestaurant, @@ -11,8 +11,8 @@ import { fetchUser, initializePayment, renewSubscription, -} from "../services/databaseServices.js"; -import { +} = require("../services/databaseServices.js"); +const { decodeAndSanitize, validateRestaurant, handleError, @@ -20,8 +20,8 @@ import { verifyRestaurantAccess, newError, checkPassword, -} from "../services/services.js"; -import Restaurant from "../models/restaurant.js"; +} = require("../services/services.js"); +const Restaurant = require("../models/restaurant.js"); var router = express.Router(); @@ -180,4 +180,4 @@ router.post("/subscription", async (req, res) => { } }); -export default router; +module.exports = router; diff --git a/routes/routeSearch.js b/routes/routeSearch.js index bb9a388..f5d14a3 100644 --- a/routes/routeSearch.js +++ b/routes/routeSearch.js @@ -1,7 +1,7 @@ -import express from "express"; -import Restaurant from "../models/restaurant.js"; -import sanitizer from "string-sanitizer"; -import { handleError } from "../services/services.js"; +const express = require("express"); +const Restaurant = require("../models/restaurant.js"); +const sanitizer = require("string-sanitizer"); +const { handleError } = require("../services/services.js"); var router = express.Router(); @@ -89,4 +89,4 @@ router.get("/autocomplete/", (req, res) => { } }); -export default router; +module.exports = router; diff --git a/routes/routeUser.js b/routes/routeUser.js index 43d481d..8aa1be4 100644 --- a/routes/routeUser.js +++ b/routes/routeUser.js @@ -1,7 +1,13 @@ -import express from "express"; -import { changeUserPass, fetchUser } from "../services/databaseServices.js"; -import { createUser, prepareSafeUser } from "../services/dataPrepServices.js"; -import { +const express = require("express"); +const { + changeUserPass, + fetchUser, +} = require("../services/databaseServices.js"); +const { + createUser, + prepareSafeUser, +} = require("../services/dataPrepServices.js"); +const { newError, handleError, checkPassword, @@ -9,8 +15,8 @@ import { checkEmailTaken, validateUserToken, hashPass, -} from "../services/services.js"; -import { resetPassword } from "../services/mailServices.js"; +} = require("../services/services.js"); +const { resetPassword } = require("../services/mailServices.js"); var router = express.Router(); @@ -101,4 +107,4 @@ router.post("/resetpass", async (req, res) => { } }); -export default router; +module.exports = router; diff --git a/services/azureServices.js b/services/azureServices.js index 5fe2a3b..be3611b 100644 --- a/services/azureServices.js +++ b/services/azureServices.js @@ -1,7 +1,6 @@ -import azureBlob from "@azure/storage-blob"; -import e from "express"; -import getStream from "into-stream"; -import { newError } from "./services.js"; +const azureBlob = require("@azure/storage-blob"); +const getStream = require("into-stream"); +const { newError } = require("./services.js"); // SETUP const containerURL = `https://${process.env.AZURE_STORAGE_ACCOUNT_NAME}.blob.core.windows.net/img/`; @@ -19,7 +18,7 @@ const blobServiceClient = new azureBlob.BlobServiceClient( ); // CODE -export async function renameBlob(blobURL) { +async function renameBlob(blobURL) { try { const blobName = blobURL.replace(containerURL, ""); const containerClient = blobServiceClient.getContainerClient(container); @@ -33,7 +32,7 @@ export async function renameBlob(blobURL) { } } -export async function uploadBlob(request, resp) { +async function uploadBlob(request, resp) { const blobName = makeTempBlobName(request.file.originalname); const stream = getStream(request.file.buffer); const containerClient = blobServiceClient.getContainerClient(container); @@ -60,24 +59,24 @@ export async function uploadBlob(request, resp) { } } -export function removePrefix(string) { +function removePrefix(string) { const newString = string.replace("TEMP_", ""); return newString; } -export function makeTempBlobName(originalName) { +function makeTempBlobName(originalName) { const identifier = Math.random().toString().replace(/0\./, ""); return `TEMP_${identifier}-${originalName}`; } -export function setDeleteTempBlobTimer(blobName, containerClient, minutes) { +function setDeleteTempBlobTimer(blobName, containerClient, minutes) { let blob = containerClient.getBlobClient(blobName); setTimeout(() => { blob.delete(); }, 1000 * 60 * minutes); } -export async function deleteImage(url) { +async function deleteImage(url) { if (!url || url === "" || url === "empty") { return; } else { @@ -93,3 +92,10 @@ export async function deleteImage(url) { } } } + +exports.renameBlob = renameBlob; +exports.uploadBlob = uploadBlob; +exports.removePrefix = removePrefix; +exports.makeTempBlobName = makeTempBlobName; +exports.setDeleteTempBlobTimer = setDeleteTempBlobTimer; +exports.deleteImage = deleteImage; diff --git a/services/dataPrepServices.js b/services/dataPrepServices.js index 7a6a1e6..0942c8e 100644 --- a/services/dataPrepServices.js +++ b/services/dataPrepServices.js @@ -1,13 +1,13 @@ -import { hashPass, newError, saveImage } from "./services.js"; -import sanitizer from "string-sanitizer"; -import mongoose from "mongoose"; -import Dish from "../models/dish.js"; -import User from "../models/users.js"; -import Restaurant from "../models/restaurant.js"; -import { fetchMultipleRestaurants } from "./databaseServices.js"; -import { deleteImage } from "./azureServices.js"; +const { hashPass, newError, saveImage } = require("./services.js"); +const sanitizer = require("string-sanitizer"); +const mongoose = require("mongoose"); +const Dish = require("../models/dish.js"); +const User = require("../models/users.js"); +const Restaurant = require("../models/restaurant.js"); +const { fetchMultipleRestaurants } = require("./databaseServices.js"); +const { deleteImage } = require("./azureServices.js"); -export async function createUser(request) { +async function createUser(request) { const password = await hashPass(request.body.password); const user = new User({ _id: new mongoose.Types.ObjectId(), @@ -47,7 +47,7 @@ async function handleImageUpdate(request, previous) { } } -export async function createRestaurant(request, oldRestaurant) { +async function createRestaurant(request, oldRestaurant) { try { if (!oldRestaurant) { const img = await handleImageUpdate(request); @@ -105,7 +105,7 @@ export async function createRestaurant(request, oldRestaurant) { } } -export async function prepareSafeUser(user) { +async function prepareSafeUser(user) { const restaurants = await fetchMultipleRestaurants(user.restaurants); const safeUser = { firstname: user.firstname, @@ -120,7 +120,7 @@ export async function prepareSafeUser(user) { return safeUser; } -export async function createDish(dish, restaurantId, oldDish) { +async function createDish(dish, restaurantId, oldDish) { try { if (!oldDish) { const img = await handleImageUpdate(dish); @@ -166,7 +166,7 @@ export async function createDish(dish, restaurantId, oldDish) { } } -export function appendDishToLunchSet(lunchMenu, setName, dishId) { +function appendDishToLunchSet(lunchMenu, setName, dishId) { const result = lunchMenu.map((lunchSet) => { if (lunchSet.lunchSetName === setName) { let updatedSet = lunchSet; @@ -179,7 +179,7 @@ export function appendDishToLunchSet(lunchMenu, setName, dishId) { return result; } -export function removeDishFromLunchSet(lunchMenu, setName, dishId) { +function removeDishFromLunchSet(lunchMenu, setName, dishId) { const result = lunchMenu.map((lunchSet) => { if (lunchSet.lunchSetName === setName) { let updatedSet = lunchSet; @@ -194,3 +194,10 @@ export function removeDishFromLunchSet(lunchMenu, setName, dishId) { }); return result; } + +exports.createUser = createUser; +exports.createRestaurant = createRestaurant; +exports.prepareSafeUser = prepareSafeUser; +exports.createDish = createDish; +exports.appendDishToLunchSet = appendDishToLunchSet; +exports.removeDishFromLunchSet = removeDishFromLunchSet; diff --git a/services/databaseServices.js b/services/databaseServices.js index 50f396d..62a75a1 100644 --- a/services/databaseServices.js +++ b/services/databaseServices.js @@ -1,24 +1,24 @@ -import Restaurant from "../models/restaurant.js"; -import Dish from "../models/dish.js"; -import User from "../models/users.js"; -import Payments from "../models/payments.js"; -import { deleteImage } from "./azureServices.js"; -import { +const Restaurant = require("../models/restaurant.js"); +const Dish = require("../models/dish.js"); +const User = require("../models/users.js"); +const Payments = require("../models/payments.js"); +const { deleteImage } = require("./azureServices.js"); +const { appendDishToLunchSet, removeDishFromLunchSet, -} from "./dataPrepServices.js"; -import { newError } from "./services.js"; -import mongoose from "mongoose"; -import axios from "axios"; -import crypto from "crypto"; +} = require("./dataPrepServices.js"); +const { newError } = require("./services.js"); +const mongoose = require("mongoose"); +const axios = require("axios"); +const crypto = require("crypto"); -export async function changeUserPass(userId, newPass) { +async function changeUserPass(userId, newPass) { User.findByIdAndUpdate(userId, { $set: { password: newPass } }).catch((e) => { throw newError("Zmiana hasła nie powiodła się.", 500); }); } -export async function removeDish(dishId) { +async function removeDish(dishId) { const deletedDoc = await Dish.findByIdAndDelete(dishId).catch((e) => { throw newError("Usunięcie dania nie powiodło się.", 500); }); @@ -30,7 +30,7 @@ export async function removeDish(dishId) { }); } -export async function removeRestaurant(restaurantId, userId) { +async function removeRestaurant(restaurantId, userId) { const deletedDoc = await Restaurant.findByIdAndDelete(restaurantId).catch( (e) => { throw newError("Usunięcie nie powiodło się.", 500); @@ -53,7 +53,7 @@ export async function removeRestaurant(restaurantId, userId) { }); } -export async function addDishToRestaurant(restaurantId, dishId) { +async function addDishToRestaurant(restaurantId, dishId) { await Restaurant.updateOne( { _id: restaurantId }, { $push: { dishes: dishId } } @@ -62,7 +62,7 @@ export async function addDishToRestaurant(restaurantId, dishId) { }); } -export async function addRestaurantToUser(user, restaurant) { +async function addRestaurantToUser(user, restaurant) { await User.findByIdAndUpdate(user.id, { $push: { restaurants: restaurant._id }, }).catch((e) => { @@ -100,7 +100,7 @@ function startDate(restaurant) { } } -export async function renewSubscription(restaurantId, monthsToAdd) { +async function renewSubscription(restaurantId, monthsToAdd) { const restaurant = await Restaurant.findById(restaurantId).catch((err) => { throw newError("Nie udało się pobrać restauracji.", 404); }); @@ -150,7 +150,7 @@ async function checkIfAlreadyInSet(restaurant, setName, dishId) { } } -export async function changeCategory(restaurantId, categoryName, action) { +async function changeCategory(restaurantId, categoryName, action) { if (action === "add") { const restaurant = await Restaurant.findById(restaurantId).catch((err) => { throw newError("Nie udało się pobrać restauracji.", 404); @@ -172,7 +172,7 @@ export async function changeCategory(restaurantId, categoryName, action) { } } -export async function setDishVisibility(dishId, visible) { +async function setDishVisibility(dishId, visible) { await Dish.findByIdAndUpdate(dishId, { $set: { hidden: !visible } }).catch( (e) => { throw newError("Nie udało się zmienić dania.", 500); @@ -180,7 +180,7 @@ export async function setDishVisibility(dishId, visible) { ); } -export async function changeLunchMenuSet(restaurantId, action, lunchSet) { +async function changeLunchMenuSet(restaurantId, action, lunchSet) { if (action === "add") { const restaurant = await Restaurant.findById(restaurantId).catch((err) => { throw newError("Nie udało się pobrać restauracji.", 404); @@ -202,7 +202,7 @@ export async function changeLunchMenuSet(restaurantId, action, lunchSet) { } } -export async function changeLunchMenu(restaurantId, setName, dishId, action) { +async function changeLunchMenu(restaurantId, setName, dishId, action) { if (action === "add") { const restaurant = await Restaurant.findById(restaurantId).catch((err) => { throw newError("Nie udało się pobrać restauracji.", 404); @@ -237,14 +237,14 @@ export async function changeLunchMenu(restaurantId, setName, dishId, action) { } } -export async function fetchRestaurant(id) { +async function fetchRestaurant(id) { const data = await Restaurant.findById(id).catch((e) => { throw newError("Nie udało się pobrać restauracji.", 500); }); return data; } -export async function fetchMultipleRestaurants(idArray) { +async function fetchMultipleRestaurants(idArray) { let data = []; for (const id of idArray) { let response = await fetchRestaurant(id); @@ -253,7 +253,7 @@ export async function fetchMultipleRestaurants(idArray) { return data; } -export async function fetchAllDishesForRestaurant(restaurant) { +async function fetchAllDishesForRestaurant(restaurant) { let dishes = []; for (const dish of restaurant.dishes) { let res = await fetchDish(dish._id); @@ -262,14 +262,14 @@ export async function fetchAllDishesForRestaurant(restaurant) { return dishes; } -export async function fetchDish(id) { +async function fetchDish(id) { let data = await Dish.findById(id).catch((e) => { throw newError(`Nie udało się pobrać ${id}`, 404); }); return data; } -export async function fetchUser(email) { +async function fetchUser(email) { if (!email) throw newError("Brak danych", 204); const user = await User.findOne({ email: email }); if (!user) throw newError("Użytkownik nie istnieje", 404); @@ -325,7 +325,7 @@ async function registerTransaction(paymentInfo, userData) { return response; } -export async function initializePayment(restaurantId, userData, type) { +async function initializePayment(restaurantId, userData, type) { const newPayment = new Payments({ _id: new mongoose.Types.ObjectId(), restaurantId: restaurantId, @@ -336,3 +336,20 @@ export async function initializePayment(restaurantId, userData, type) { newPayment.save(); return payment; } + +exports.changeUserPass = changeUserPass; +exports.removeDish = removeDish; +exports.removeRestaurant = removeRestaurant; +exports.addDishToRestaurant = addDishToRestaurant; +exports.addRestaurantToUser = addRestaurantToUser; +exports.renewSubscription = renewSubscription; +exports.changeCategory = changeCategory; +exports.setDishVisibility = setDishVisibility; +exports.changeLunchMenuSet = changeLunchMenuSet; +exports.changeLunchMenu = changeLunchMenu; +exports.fetchRestaurant = fetchRestaurant; +exports.fetchMultipleRestaurants = fetchMultipleRestaurants; +exports.fetchAllDishesForRestaurant = fetchAllDishesForRestaurant; +exports.fetchDish = fetchDish; +exports.fetchUser = fetchUser; +exports.initializePayment = initializePayment; diff --git a/services/mailServices.js b/services/mailServices.js index b289d27..41e3f43 100644 --- a/services/mailServices.js +++ b/services/mailServices.js @@ -1,8 +1,11 @@ -import nodemailer from "nodemailer"; -import path from "path"; -import { MAIL_PASS } from "../config/index.js"; -import makeResetPassMessage from "../config/mailTemplateReset.js"; -import { newError, generatePasswordResetLink } from "../services/services.js"; +const nodemailer = require("nodemailer"); +const path = require("path"); +const { MAIL_PASS } = require("../config/index.js"); +const makeResetPassMessage = require("../config/mailTemplateReset.js"); +const { + newError, + generatePasswordResetLink, +} = require("../services/services.js"); const images = path.resolve("images"); @@ -33,7 +36,7 @@ async function sendMail(reciever, subject, textMessage, htmlMessage) { }); } -export async function resetPassword(email) { +async function resetPassword(email) { const resetLink = generatePasswordResetLink(email); const message = makeResetPassMessage(resetLink); await sendMail( @@ -45,3 +48,5 @@ export async function resetPassword(email) { throw newError("Nieznany błąd podczas resetu hasła", 500); }); } + +exports.resetPassword = resetPassword; diff --git a/services/services.js b/services/services.js index a0325d5..5961803 100644 --- a/services/services.js +++ b/services/services.js @@ -1,15 +1,14 @@ -import Restaurant from "../models/restaurant.js"; -import Dish from "../models/dish.js"; -import User from "../models/users.js"; -import mongoose from "mongoose"; -import sanitizer from "string-sanitizer"; -import { renameBlob } from "./azureServices.js"; -import jwt from "jsonwebtoken"; -import bcrypt from "bcrypt"; -import * as config from "../config/index.js"; -const { jwtSecret } = config; +const Restaurant = require("../models/restaurant.js"); +const Dish = require("../models/dish.js"); +const User = require("../models/users.js"); +const mongoose = require("mongoose"); +const sanitizer = require("string-sanitizer"); +const { renameBlob } = require("./azureServices.js"); +const jwt = require("jsonwebtoken"); +const bcrypt = require("bcrypt"); +const { jwtSecret } = require("../config/index.js"); -export function newError(message, status) { +function newError(message, status) { const error = { message: message, status: status, @@ -17,7 +16,7 @@ export function newError(message, status) { return error; } -export function handleError(error, responseObject) { +function handleError(error, responseObject) { if (!error.status) { console.log(error); responseObject.sendStatus(500); @@ -26,7 +25,7 @@ export function handleError(error, responseObject) { } } -export async function validateRestaurant(id) { +async function validateRestaurant(id) { if (!mongoose.Types.ObjectId.isValid(id)) throw newError("Nieprawidłowy ID", 204); let valid = await Restaurant.exists({ _id: id }); @@ -34,17 +33,17 @@ export async function validateRestaurant(id) { return true; } -export function decodeAndSanitize(query) { +function decodeAndSanitize(query) { if (!query) throw newError("Brak danych.", 204); return sanitizer.sanitize.keepUnicode(decodeURI(query)); } -export async function checkPassword(password, hash) { +async function checkPassword(password, hash) { const result = await bcrypt.compare(password, hash); if (!result) throw newError("Hasło nieprawidłowe", 401); } -export function generateAuthToken(user) { +function generateAuthToken(user) { const token = jwt.sign( { email: user.email, @@ -71,13 +70,15 @@ function generatePasswordResetToken(email) { return token; } -export function generatePasswordResetLink(email) { +// SET FRONTEND URL HERE + +function generatePasswordResetLink(email) { const token = generatePasswordResetToken(email); const link = `localhost:3000/resetpassword?token=${token}`; return link; } -export async function checkEmailTaken(email) { +async function checkEmailTaken(email) { if (!email) throw newError("Brak adresu email", 204); await User.exists({ email: email }).then((res) => { if (res) { @@ -86,7 +87,7 @@ export async function checkEmailTaken(email) { }); } -export function validateUserToken(token) { +function validateUserToken(token) { if (!token) throw newError("Brak dostępu", 401); try { const verified = jwt.verify(token, jwtSecret, { ignoreExpiration: false }); @@ -97,7 +98,7 @@ export function validateUserToken(token) { } } -export async function validateDishId(id) { +async function validateDishId(id) { if (!mongoose.Types.ObjectId.isValid(id)) { throw newError("Niewłaściwy ID", 400); } @@ -105,7 +106,7 @@ export async function validateDishId(id) { if (!dishDoesExist) throw newError("Te danie nie istnieje w bazie.", 404); } -export async function verifyDishAccess(dishId, decodedToken) { +async function verifyDishAccess(dishId, decodedToken) { const fetch = await User.findById(decodedToken.id, "restaurants").catch( (error) => { throw newError("Nie znaleziono użytkownika.", 500); @@ -119,7 +120,7 @@ export async function verifyDishAccess(dishId, decodedToken) { if (!valid) throw newError("Nie masz dostępu do tego dania.", 401); } -export async function verifyRestaurantAccess(restaurantId, decodedToken) { +async function verifyRestaurantAccess(restaurantId, decodedToken) { const fetch = await User.findById(decodedToken.id, "restaurants").catch( (error) => { throw newError("Nie znaleziono użytkownika.", 500); @@ -130,7 +131,7 @@ export async function verifyRestaurantAccess(restaurantId, decodedToken) { if (!valid) throw newError("Nie masz dostępu do tej restauracji.", 401); } -export function yearFromNowDate() { +function yearFromNowDate() { Date.prototype.addDays = function (days) { var date = new Date(this.valueOf()); date.setDate(date.getDate() + days); @@ -140,7 +141,7 @@ export function yearFromNowDate() { return date.addDays(365); } -export async function hashPass(pass) { +async function hashPass(pass) { if (pass.length < 6) { throw newError("Hasło za krótkie.", 500); } @@ -153,7 +154,23 @@ export async function hashPass(pass) { } } -export async function saveImage(url) { +async function saveImage(url) { const newURL = await renameBlob(url); return newURL; } + +exports.newError = newError; +exports.handleError = handleError; +exports.validateRestaurant = validateRestaurant; +exports.decodeAndSanitize = decodeAndSanitize; +exports.checkPassword = checkPassword; +exports.generateAuthToken = generateAuthToken; +exports.generatePasswordResetLink = generatePasswordResetLink; +exports.checkEmailTaken = checkEmailTaken; +exports.validateUserToken = validateUserToken; +exports.validateDishId = validateDishId; +exports.verifyDishAccess = verifyDishAccess; +exports.verifyRestaurantAccess = verifyRestaurantAccess; +exports.yearFromNowDate = yearFromNowDate; +exports.hashPass = hashPass; +exports.saveImage = saveImage;