diff --git a/app.js b/app.js index 3339806..05c488e 100644 --- a/app.js +++ b/app.js @@ -9,11 +9,12 @@ const port = 3000; const Restaurant = require("./models/restaurant"); const Dish = require("./models/dish"); const User = require("./models/users"); +const validators = require("./validation"); mongoose.connect( - "mongodb+srv://menui_db_user:<" + + "mongodb+srv://menui_db_user:" + process.env.DB_PASS + - ">@menui-database.9quwf.mongodb.net/?retryWrites=true&w=majority", + "@menui-database.9quwf.mongodb.net/?retryWrites=true&w=majority", { useNewUrlParser: true, useUnifiedTopology: true }, (err) => { if (err) console.log(err); @@ -21,44 +22,67 @@ mongoose.connect( } ); -app.get("/", (req, res) => res.send("Hello World!")); +// GET A PARTICULAR RESTAURANT // -// TEST ONLY // - -app.get("/restaurant", function (req, res) { - Restaurant.find() - .exec() - .then((data) => { - console.log(data); - }) - .catch((err) => console.log(err)); +app.get("/restaurant/:restaurantId", function (req, res) { + Restaurant.findById(req.params.restaurantId, (err, data) => { + if (err) res.send(err); + else res.send(data); + }); }); -// ADD NEW RESTAURANT +// GET RESTAURANTS IN A SPECIFIED CITY // + +app.get("/city/:cityName", function (req, res) { + Restaurant.find({ city: decodeURI(req.params.cityName) }, (err, data) => { + if (err) res.send(err); + else res.send(data); + }); +}); + +// ADD NEW RESTAURANT // app.post("/restaurant", (req, res) => { const restaurant = new Restaurant({ - id: new mongoose.Types.ObjectId(), + _id: new mongoose.Types.ObjectId(), name: req.body.name, city: req.body.city, imgUrl: req.body.imgUrl, workingHours: req.body.workingHours, hidden: req.body.hidden, }); - restaurant - .save() - .then((result) => { - console.log(result); - }) - .catch((err) => console.log(err)); + restaurant.save().catch((err) => console.log(err)); res.status(201).json({ - message: "Created a Restaurant in a Database", + message: "Restaurant Created", addedRestaurant: restaurant, }); }); -/*app.get("/dish/:dishId", (req, res) => { - const dishId = req.params.dishId; -})*/ +// ADD NEW DISH // -app.listen(port, () => console.log("Listening at: " + port)); +app.post("/dish", (req, res) => { + const restaurantId = req.body.restaurantId; + const userData = req.body.userData; + const dish = new Dish({ + _id: new mongoose.Types.ObjectId(), + name: req.body.name, + category: req.body.category, + price: req.body.price, + notes: req.body.notes, + imgUrl: req.body.imgUrl, + weight: req.body.weight, + allergens: { + gluten: req.body.gluten, + lactose: req.body.lactose, + soy: req.body.soy, + eggs: req.body.eggs, + seaFood: req.body.seaFood, + peanuts: req.body.peanuts, + sesame: req.body.sesame, + }, + vegan: req.body.vegan, + vegetarian: req.body.vegetarian, + }); +}); + +app.listen(port, () => console.log("Menui back-end is listening at: " + port)); diff --git a/models/dish.js b/models/dish.js index 8522577..8ec1654 100644 --- a/models/dish.js +++ b/models/dish.js @@ -1,7 +1,7 @@ const mongoose = require("mongoose"); const dishSchema = mongoose.Schema({ - id: mongoose.Types.ObjectId, + _id: mongoose.Types.ObjectId, name: String, category: String, price: Number, diff --git a/models/restaurant.js b/models/restaurant.js index 72e5a46..b3d27b4 100644 --- a/models/restaurant.js +++ b/models/restaurant.js @@ -1,7 +1,7 @@ const mongoose = require("mongoose"); const restaurantSchema = mongoose.Schema({ - id: mongoose.Types.ObjectId, + _id: mongoose.Types.ObjectId, name: String, city: String, imgUrl: String, diff --git a/models/users.js b/models/users.js index 6682905..d0fb8ef 100644 --- a/models/users.js +++ b/models/users.js @@ -1,7 +1,7 @@ const mongoose = require("mongoose"); const userSchema = mongoose.Schema({ - id: mongoose.Types.ObjectId, + _id: mongoose.Types.ObjectId, email: String, password: String, restaurantId: mongoose.Types.ObjectId, diff --git a/validation.js b/validation.js new file mode 100644 index 0000000..c5158f4 --- /dev/null +++ b/validation.js @@ -0,0 +1,5 @@ +function validateRestaurant(id) { + return true; +} + +exports.validateRestaurant = validateRestaurant;