From d7395f547259a8dd4ce90c691b5ae6baeacb601a Mon Sep 17 00:00:00 2001 From: Jonasz Bigda Date: Sat, 19 Sep 2020 18:16:50 +0200 Subject: [PATCH] server 1.0.3 --- models/dish.js | 2 ++ models/restaurant.js | 3 +-- models/users.js | 1 - routes/routeImg.js | 2 +- routes/routeRestaurant.js | 5 ++++- routes/routeUser.js | 2 +- services/dataPrepServices.js | 19 ++++++++++++++++--- services/databaseServices.js | 14 ++++++++++---- 8 files changed, 35 insertions(+), 13 deletions(-) diff --git a/models/dish.js b/models/dish.js index 864125f..b43ace8 100644 --- a/models/dish.js +++ b/models/dish.js @@ -39,6 +39,8 @@ const dishSchema = mongoose.Schema({ ingredients: { type: [String], }, + glicemicIndex: String, + kCal: String, vegan: Boolean, vegetarian: Boolean, }); diff --git a/models/restaurant.js b/models/restaurant.js index 4d7bbf2..7e50186 100644 --- a/models/restaurant.js +++ b/models/restaurant.js @@ -50,11 +50,10 @@ const restaurantSchema = mongoose.Schema({ }, links: { facebook: String, - twitter: String, instagram: String, www: String, }, - phone: Number, + phone: String, hidden: Boolean, subscriptionActive: Boolean, subscriptionStarted: Date, diff --git a/models/users.js b/models/users.js index 07f72b2..7ac5546 100644 --- a/models/users.js +++ b/models/users.js @@ -38,7 +38,6 @@ const userSchema = mongoose.Schema({ }, }, restaurants: [mongoose.Types.ObjectId], - trialUsed: Boolean, }); export default mongoose.model("User", userSchema); diff --git a/routes/routeImg.js b/routes/routeImg.js index 4eebc60..8cf8c28 100644 --- a/routes/routeImg.js +++ b/routes/routeImg.js @@ -14,7 +14,7 @@ const uploadStrategy = multer({ } cb(null, true); }, - limits: { fileSize: 4000000 }, + limits: { fileSize: 2000000 }, }).single("menuiImage"); // POST diff --git a/routes/routeRestaurant.js b/routes/routeRestaurant.js index 24e9c95..94a17a5 100644 --- a/routes/routeRestaurant.js +++ b/routes/routeRestaurant.js @@ -12,6 +12,7 @@ import { handleError, validateUserToken, verifyRestaurantAccess, + newError, } from "../services/services.js"; import Restaurant from "../models/restaurant.js"; @@ -35,7 +36,9 @@ router.post("/", async (req, res) => { try { const token = req.headers["x-auth-token"]; const user = validateUserToken(token); - const restaurant = await createRestaurant(req.body); + const restaurant = await createRestaurant(req.body).catch((err) => { + throw newError("Nie udało się zapisać zdjęcia.", 500); + }); await restaurant.save(); await addRestaurantToUser(user, restaurant); res.sendStatus(201); diff --git a/routes/routeUser.js b/routes/routeUser.js index 35fa24a..73ad5aa 100644 --- a/routes/routeUser.js +++ b/routes/routeUser.js @@ -22,7 +22,7 @@ router.post("/login", async (req, res) => { } const user = await fetchUser(req.body.email); await checkPassword(req.body.password, user.password); - const safeUser = prepareSafeUser(user); + const safeUser = await prepareSafeUser(user); var token = generateAuthToken(safeUser); res.header("x-auth-token", token).status(202).send(safeUser); } catch (error) { diff --git a/services/dataPrepServices.js b/services/dataPrepServices.js index 29311f8..d3d0174 100644 --- a/services/dataPrepServices.js +++ b/services/dataPrepServices.js @@ -4,6 +4,7 @@ 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"; export async function createUser(request) { const password = await hashPass(request.body.password); @@ -62,7 +63,11 @@ export async function createRestaurant(request, oldRestaurant) { workingHours: request.workingHours, description: sanitizer.sanitize.keepUnicode(request.description), tags: request.tags, - links: request.links, + links: { + facebook: request.facebook, + instagram: request.instagram, + www: request.www, + }, phone: request.phone, hidden: request.hidden, }); @@ -95,13 +100,17 @@ export async function createRestaurant(request, oldRestaurant) { } } -export function prepareSafeUser(user) { +export async function prepareSafeUser(user) { + const restaurants = await fetchMultipleRestaurants(user.restaurants); const safeUser = { firstname: user.firstname, lastname: user.lastname, email: user.email, id: user._id, - restaurants: user.restaurants, + restaurants: restaurants, + NIP: user.billing.NIP, + adress: user.billing.adress, + companyName: user.billing.companyName, }; return safeUser; } @@ -129,6 +138,8 @@ export async function createDish(dish, restaurantId, generateId) { sesame: dish.allergens.sesame, }, ingredients: dish.ingredients, + glicemicIndex: dish.glicemicIndex, + kCal: dish.kCal, vegan: dish.vegan, vegetarian: dish.vegetarian, }); @@ -152,6 +163,8 @@ export async function createDish(dish, restaurantId, generateId) { sesame: dish.allergens.sesame, }, ingredients: dish.ingredients, + glicemicIndex: dish.glicemicIndex, + kCal: dish.kCal, vegan: dish.vegan, vegetarian: dish.vegetarian, }); diff --git a/services/databaseServices.js b/services/databaseServices.js index 6507c50..b917282 100644 --- a/services/databaseServices.js +++ b/services/databaseServices.js @@ -105,15 +105,21 @@ export async function renewSubscription(restaurantId, monthsToAdd) { } export async function fetchRestaurant(id) { - let data; - await Restaurant.findById(id, (err, result) => { - data = result; - }).catch((e) => { + const data = await Restaurant.findById(id).catch((e) => { throw newError("Nie udało się pobrać restauracji.", 500); }); return data; } +export async function fetchMultipleRestaurants(idArray) { + let data = []; + for (const id of idArray) { + let response = await fetchRestaurant(id); + data.push(response); + } + return data; +} + export async function fetchAllDishesForRestaurant(restaurant) { let dishes = []; for (const dish of restaurant.dishes) {