|
| 1 | +/*jshint esversion: 8 */ // This line should already be at the top from previous fixes. |
| 2 | + |
1 | 3 | const express = require('express');
|
2 | 4 | const mongoose = require('mongoose');
|
3 | 5 | const fs = require('fs');
|
4 |
| -const cors = require('cors') |
5 |
| -const app = express() |
| 6 | +const cors = require('cors'); // Corrected spacing |
| 7 | +const app = express(); // Added semicolon |
6 | 8 | const port = 3030;
|
7 | 9 |
|
8 |
| -app.use(cors()) |
9 |
| -app.use(require('body-parser').urlencoded({ extended: false })); |
10 |
| - |
11 |
| -const reviews_data = JSON.parse(fs.readFileSync("reviews.json", 'utf8')); |
12 |
| -const dealerships_data = JSON.parse(fs.readFileSync("dealerships.json", 'utf8')); |
| 10 | +app.use(cors()); // Added semicolon |
| 11 | +app.use(require('body-parser').urlencoded({ extended: false })); // Added semicolon |
13 | 12 |
|
14 |
| -mongoose.connect("mongodb://mongo_db:27017/",{'dbName':'dealershipsDB'}); |
| 13 | +const reviews_data = JSON.parse(fs.readFileSync("reviews.json", 'utf8')); // Added semicolon |
| 14 | +const dealerships_data = JSON.parse(fs.readFileSync("dealerships.json", 'utf8')); // Added semicolon |
15 | 15 |
|
| 16 | +mongoose.connect("mongodb://mongo_db:27017/", {'dbName': 'dealershipsDB'}); // Added semicolon and fixed spacing |
16 | 17 |
|
17 |
| -const Reviews = require('./review'); |
| 18 | +const Reviews = require('./review'); // Added semicolon |
18 | 19 |
|
19 |
| -const Dealerships = require('./dealership'); |
| 20 | +const Dealerships = require('./dealership'); // Added semicolon |
20 | 21 |
|
21 | 22 | try {
|
22 |
| - Reviews.deleteMany({}).then(()=>{ |
23 |
| - Reviews.insertMany(reviews_data['reviews']); |
24 |
| - }); |
25 |
| - Dealerships.deleteMany({}).then(()=>{ |
26 |
| - Dealerships.insertMany(dealerships_data['dealerships']); |
27 |
| - }); |
28 |
| - |
| 23 | + Reviews.deleteMany({}).then(() => { |
| 24 | + Reviews.insertMany(reviews_data.reviews); // Fixed to dot notation: reviews_data['reviews'] -> reviews_data.reviews |
| 25 | + }); |
| 26 | + Dealerships.deleteMany({}).then(() => { |
| 27 | + Dealerships.insertMany(dealerships_data.dealerships); // Fixed to dot notation: dealerships_data['dealerships'] -> dealerships_data.dealerships |
| 28 | + }); |
| 29 | + |
29 | 30 | } catch (error) {
|
30 |
| - res.status(500).json({ error: 'Error fetching documents' }); |
| 31 | + res.status(500).json({ error: 'Error fetching documents' }); |
31 | 32 | }
|
32 | 33 |
|
33 | 34 |
|
34 | 35 | // Express route to home
|
35 | 36 | app.get('/', async (req, res) => {
|
36 |
| - res.send("Welcome to the Mongoose API") |
| 37 | + res.send("Welcome to the Mongoose API"); // Added semicolon |
37 | 38 | });
|
38 | 39 |
|
39 | 40 | // Express route to fetch all reviews
|
40 | 41 | app.get('/fetchReviews', async (req, res) => {
|
41 |
| - try { |
42 |
| - const documents = await Reviews.find(); |
43 |
| - res.json(documents); |
44 |
| - } catch (error) { |
45 |
| - res.status(500).json({ error: 'Error fetching documents' }); |
46 |
| - } |
| 42 | + try { |
| 43 | + const documents = await Reviews.find(); |
| 44 | + res.json(documents); |
| 45 | + } catch (error) { |
| 46 | + res.status(500).json({ error: 'Error fetching documents' }); |
| 47 | + } |
47 | 48 | });
|
48 | 49 |
|
49 | 50 | // Express route to fetch reviews by a particular dealer
|
50 | 51 | app.get('/fetchReviews/dealer/:id', async (req, res) => {
|
51 |
| - try { |
52 |
| - const documents = await Reviews.find({dealership: req.params.id}); |
53 |
| - res.json(documents); |
54 |
| - } catch (error) { |
55 |
| - res.status(500).json({ error: 'Error fetching documents' }); |
56 |
| - } |
| 52 | + try { |
| 53 | + const documents = await Reviews.find({ dealership: req.params.id }); |
| 54 | + res.json(documents); |
| 55 | + } catch (error) { |
| 56 | + res.status(500).json({ error: 'Error fetching documents' }); |
| 57 | + } |
57 | 58 | });
|
58 | 59 |
|
59 | 60 | // Express route to fetch all dealerships
|
60 | 61 | app.get('/fetchDealers', async (req, res) => {
|
61 | 62 | try {
|
62 | 63 | const documents = await Dealerships.find();
|
63 | 64 | res.json(documents);
|
64 |
| - } catch (error) { |
| 65 | + } catch (error) { |
65 | 66 | res.status(500).json({ error: 'Error fetching documents' });
|
66 |
| - } |
| 67 | + } |
67 | 68 | });
|
68 | 69 |
|
69 | 70 | // Express route to fetch Dealers by a particular state
|
70 | 71 | app.get('/fetchDealers/:state', async (req, res) => {
|
71 |
| - |
| 72 | + |
72 | 73 | });
|
73 | 74 |
|
74 | 75 | // Express route to fetch dealer by a particular id
|
75 | 76 | app.get('/fetchDealer/:id', async (req, res) => {
|
76 |
| -//Write your code here |
| 77 | + //Write your code here |
77 | 78 | });
|
78 | 79 |
|
79 | 80 | //Express route to insert review
|
80 | 81 | app.post('/insert_review', express.raw({ type: '*/*' }), async (req, res) => {
|
81 |
| - data = JSON.parse(req.body); |
82 |
| - const documents = await Reviews.find().sort( { id: -1 } ) |
83 |
| - let new_id = documents[0]['id']+1 |
84 |
| - |
85 |
| - const review = new Reviews({ |
86 |
| - "id": new_id, |
87 |
| - "name": data.name, |
88 |
| - "dealership": data.dealership, |
89 |
| - "review": data.review, |
90 |
| - "purchase": data.purchase, |
91 |
| - "purchase_date": data.purchase_date, |
92 |
| - "car_make": data.car_make, |
93 |
| - "car_model": data.car_model, // <-- Changed |
94 |
| - "car_year": data.car_year // <-- Changed |
95 |
| -}); |
| 82 | + data = JSON.parse(req.body); // Added semicolon |
| 83 | + const documents = await Reviews.find().sort({ id: -1 }); // Added semicolon |
| 84 | + let new_id = documents[0].id + 1; // Fixed to dot notation: documents[0]['id'] -> documents[0].id |
| 85 | + |
| 86 | + const review = new Reviews({ |
| 87 | + "id": new_id, |
| 88 | + "name": data.name, |
| 89 | + "dealership": data.dealership, |
| 90 | + "review": data.review, |
| 91 | + "purchase": data.purchase, |
| 92 | + "purchase_date": data.purchase_date, |
| 93 | + "car_make": data.car_make, |
| 94 | + "car_model": data.car_model, |
| 95 | + "car_year": data.car_year |
| 96 | + }); |
96 | 97 |
|
97 |
| - try { |
98 |
| - const savedReview = await review.save(); |
99 |
| - res.json(savedReview); |
100 |
| - } catch (error) { |
101 |
| - console.log(error); |
102 |
| - res.status(500).json({ error: 'Error inserting review' }); |
103 |
| - } |
| 98 | + try { |
| 99 | + const savedReview = await review.save(); |
| 100 | + res.json(savedReview); |
| 101 | + } catch (error) { |
| 102 | + console.log(error); // Added semicolon |
| 103 | + res.status(500).json({ error: 'Error inserting review' }); |
| 104 | + } |
104 | 105 | });
|
105 | 106 |
|
106 | 107 | // Start the Express server
|
107 | 108 | app.listen(port, () => {
|
108 |
| - console.log(`Server is running on http://localhost:${port}`); |
| 109 | + console.log(`Server is running on http://localhost:${port}`); |
109 | 110 | });
|
0 commit comments