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