├── package.json ├── schema.cjs └── server.cjs /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "swiggy", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node server.cjs", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "body-parser": "^1.20.2", 15 | "cors": "^2.8.5", 16 | "express": "^4.18.2", 17 | "mongoose": "^8.1.2" 18 | }, 19 | "devDependencies": { 20 | "nodemon": "^3.0.3" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /schema.cjs: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const restaurantsSchema = new mongoose.Schema({ 4 | areaName : { 5 | type : String 6 | }, 7 | avgRating : { 8 | type : Number 9 | }, 10 | costForTwo : { 11 | type : String 12 | }, 13 | cuisines : { 14 | type : Array 15 | }, 16 | name : { 17 | type : String 18 | } 19 | }) 20 | const Restaurant = mongoose.model('restaurantList', restaurantsSchema) 21 | 22 | const userSchema = new mongoose.Schema({ 23 | contact : { 24 | type : String 25 | }, 26 | email : { 27 | type : String 28 | }, 29 | password : { 30 | type : String 31 | }, 32 | userName : { 33 | type : String 34 | }, 35 | }) 36 | const Users = mongoose.model('userDetail', userSchema) 37 | 38 | module.exports = {Restaurant, Users} 39 | -------------------------------------------------------------------------------- /server.cjs: -------------------------------------------------------------------------------- 1 | const bodyParser = require('body-parser') 2 | const cors = require('cors') 3 | const express = require('express') 4 | const mongoose = require('mongoose') 5 | 6 | const {Restaurant, Users} = require('./schema.cjs') 7 | 8 | const app = express() 9 | app.use(bodyParser.json()) 10 | app.use(cors()) 11 | 12 | // Connecting with DB 13 | async function connectToDb() { 14 | try { 15 | await mongoose.connect('mongodb+srv://shri:5678@cluster0.n9dxjdr.mongodb.net/Swiggy?retryWrites=true&w=majority') 16 | console.log('DB connection established ;)') 17 | const port = process.env.PORT || 8000 18 | app.listen(port, function() { 19 | console.log(`Listening on port ${port}...`) 20 | }) 21 | } catch(error) { 22 | console.log(error) 23 | console.log('Couldn\'t establish connection :(') 24 | } 25 | } 26 | connectToDb() 27 | 28 | /** 29 | * /add-restaurant : post 30 | * /get-restaurant-details : get 31 | * /update-restaurant-detail : patch 32 | * /delete-restaurant-detail : delete 33 | * /create-new-user : post 34 | * /validate-user : post 35 | */ 36 | 37 | app.post('/add-restaurant', async function(request, response) { 38 | try { 39 | await Restaurant.create({ 40 | "areaName" : request.body.areaName, 41 | "avgRating" : request.body.avgRating, 42 | "costForTwo" : request.body.costForTwo, 43 | "cuisines" : request.body.cuisines, 44 | "name" : request.body.name 45 | }) 46 | response.status(201).json({ 47 | "status" : "success", 48 | "message" : "restaurant entry successful" 49 | }) 50 | } catch(error) { 51 | response.status(500).json({ 52 | "status" : "failure", 53 | "message" : "restaurant entry unsuccessful", 54 | "error" : error 55 | }) 56 | } 57 | }) 58 | 59 | app.get('/get-restaurant-details', async function(request, response) { 60 | try { 61 | const restaurantDetails = await Restaurant.find() 62 | response.status(200).json(restaurantDetails) 63 | } catch(error) { 64 | response.status(500).json({ 65 | "status" : "failure", 66 | "message" : "could not fetch", 67 | "error" : error 68 | }) 69 | } 70 | }) 71 | 72 | app.delete('/delete-restaurant-detail/:id', async function(request, response) { 73 | try { 74 | const restaurant = await Restaurant.findById(request.params.id) 75 | if(restaurant) { 76 | await Restaurant.findByIdAndDelete(request.params.id) 77 | response.status(200).json({ 78 | "status" : "success", 79 | "message" : "deleted successfully" 80 | }) 81 | } else { //restaurant : null 82 | response.status(404).json({ 83 | "status" : "failure", 84 | "message" : "entry not found" 85 | }) 86 | } 87 | } catch(error) { 88 | response.status(500).json({ 89 | "status" : "failure", 90 | "message" : "could not delete", 91 | "error" : error 92 | }) 93 | } 94 | }) 95 | 96 | app.post('/create-new-user', async function(request, response) { 97 | try { 98 | await Users.create({ 99 | "userName" : request.body.userName, 100 | "email" : request.body.email, 101 | "password" : request.body.password, 102 | "contact" : request.body.contact 103 | }) 104 | response.status(201).json({ 105 | "status" : "success", 106 | "message" : "user created" 107 | }) 108 | } catch(error) { 109 | response.status(500).json({ 110 | "status" : "failure", 111 | "message" : "internal server error" 112 | }) 113 | } 114 | }) 115 | 116 | app.post('/validate-user', async function(request, response) { 117 | try { 118 | const user = await Users.findOne({ 119 | "email" : request.body.email, 120 | "password" : request.body.password 121 | }) 122 | if(user) { 123 | response.status(200).json({ 124 | "message" : "valid user" 125 | }) 126 | } else { 127 | response.status(401).json({ 128 | "message" : "invalid user" 129 | }) 130 | } 131 | } catch(error) { 132 | response.status(500).json({ 133 | "message" : "internal server error" 134 | }) 135 | } 136 | }) 137 | --------------------------------------------------------------------------------