0% found this document useful (0 votes)
12 views4 pages

Backend

Uploaded by

the mass
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views4 pages

Backend

Uploaded by

the mass
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

// server.

js

const express = require('express');

const mongoose = require('mongoose');

const cors = require('cors');

const app = express();

app.use(express.json());

app.use(cors());

// MongoDB connection

mongoose.connect('mongodb://localhost:27017/food-ordering', {

useNewUrlParser: true,

useUnifiedTopology: true,

}).then(() => console.log("Connected to MongoDB"))

.catch((err) => console.error("Error connecting to MongoDB:", err));

// Menu Schema

const menuSchema = new mongoose.Schema({

name: String,

price: Number,

});

const Menu = mongoose.model('Menu', menuSchema);

// Order Schema

const orderSchema = new mongoose.Schema({

items: [{ name: String, price: Number }],

total: Number,

});

const Order = mongoose.model('Order', orderSchema);

//controller

const Customer = require('../models/Customer');

const { getCoordinates } = require("../helpers/utils/getCoordinates");

const User = require("../models/User");

async function createCustomer(req, res) {


const coordinates = await getCoordinates();

console.log(req.user.id);

console.log(req.user._id);

const customer = new Customer({

user_id: req.user.id,

location: {

latitude: coordinates.latitude,

longitude: coordinates.longitude

});

await customer.save();

return res.status(201).json({ success: true, message : "New Customer Created" , customer:


customer },);

async function updateCustomerDetails(req, res) {

const updatedCustomer = await Customer.findOneAndUpdate(

{ user_id: req.user.id },

{ $set: req.body },

{ new: true }

);

if (!updatedCustomer) {

return res.status(404).json({success : false, error : "Customer not found"});

res.status(202).json({ success: true, message: "Customer Update Successfully", updatedCustomer


: updatedCustomer });

async function deleteCustomer(req, res) {

const deletedCustomer = await Customer.findOneAndDelete({ user_id: req.user.id });

if (!deletedCustomer) {

return res.status(404).json({success : false, error: "Customer not found" });


}

return res.status(200).json({ success: true, customer: deletedCustomer });

module.exports = { createCustomer, updateCustomerDetails, deleteCustomer }

// Routes

const express = require("express");

const router = express.Router();

const asyncErrorHandler = require("../middlewares/asyncErrorHandler");

const isLoggedIn = require("../middlewares/isLoggedIn");

const customerController = require("../controllers/customerController");

// # new customer

router.post('/create', isLoggedIn ,asyncErrorHandler(customerController.createCustomer));

// # update customer

router.put('/update', isLoggedIn, verifyRole("Customer"),


asyncErrorHandler(customerController.updateCustomerDetails));

// # delete customer

router.delete('/delete', isLoggedIn, verifyRole("Customer"),


asyncErrorHandler(customerController.deleteCustomer));

module.exports = router;

app.get('/menu', async (req, res) => {

const menu = await Menu.find();

res.json(menu);

});

app.post('/menu', async (req, res) => {

const newItem = new Menu(req.body);

await newItem.save();

res.json(newItem);

});
app.post('/order', async (req, res) => {

const newOrder = new Order(req.body);

await newOrder.save();

res.json(newOrder);

});

app.get('/orders', async (req, res) => {

const orders = await Order.find();

res.json(orders);

});

// Start the server

const PORT = 5000;

app.listen(PORT, () => console.log(Server running on http://localhost:${PORT}));

You might also like