1- // const express = require('express');
2- // const mongoose = require('mongoose');
3- // const fs = require('fs');
4- // const cors = require('cors');
5- // const bodyParser = require('body-parser');
6-
7- // const app = express();
8- // const port = 3030;
9-
10- // app.use(cors());
11- // app.use(bodyParser.urlencoded({ extended: false }));
12- // app.use(bodyParser.json());
13-
14- // // ✅ JSON files are in ./data
15- // const reviews_data = JSON.parse(fs.readFileSync("data/reviews.json", "utf8"));
16- // const dealerships_data = JSON.parse(fs.readFileSync("data/dealerships.json", "utf8"));
17-
18- // mongoose.connect("mongodb://mongo_db:27017/", { dbName: "dealershipsDB" });
19-
20- // const Reviews = require('./review');
21- // const Dealerships = require('./dealership');
22-
23- // // Seed DB (best-effort, no res here)
24- // (async () => {
25- // try {
26- // await Reviews.deleteMany({});
27- // await Reviews.insertMany(reviews_data["reviews"]);
28-
29- // await Dealerships.deleteMany({});
30- // await Dealerships.insertMany(dealerships_data["dealerships"]);
31-
32- // console.log("✅ Database seeded");
33- // } catch (error) {
34- // console.error("❌ Error seeding database", error);
35- // }
36- // })();
37-
38- // // Express route to home
39- // app.get('/', async (req, res) => {
40- // res.send("Welcome to the Mongoose API");
41- // });
42-
43- // // Express route to fetch all reviews
44- // app.get('/fetchReviews', async (req, res) => {
45- // try {
46- // const documents = await Reviews.find();
47- // res.json(documents);
48- // } catch (error) {
49- // console.error(error);
50- // res.status(500).json({ error: 'Error fetching documents' });
51- // }
52- // });
53-
54- // // Express route to fetch reviews by a particular dealer
55- // app.get('/fetchReviews/dealer/:id', async (req, res) => {
56- // try {
57- // const documents = await Reviews.find({ dealership: req.params.id });
58- // res.json(documents);
59- // } catch (error) {
60- // console.error(error);
61- // res.status(500).json({ error: 'Error fetching documents' });
62- // }
63- // });
64-
65- // // ✅ Express route to fetch all dealerships
66- // app.get('/fetchDealers', async (req, res) => {
67- // try {
68- // const documents = await Dealerships.find();
69- // res.json(documents);
70- // } catch (error) {
71- // console.error(error);
72- // res.status(500).json({ error: 'Error fetching dealers' });
73- // }
74- // });
75-
76- // // ✅ Express route to fetch Dealers by a particular state
77- // app.get('/fetchDealers/:state', async (req, res) => {
78- // try {
79- // const stateParam = req.params.state;
80-
81- // const documents = await Dealerships.find({
82- // $or: [
83- // { st: stateParam.toUpperCase() },
84- // { state: new RegExp(`^${stateParam}$`, 'i') },
85- // ],
86- // });
87-
88- // res.json(documents);
89- // } catch (error) {
90- // console.error(error);
91- // res.status(500).json({ error: 'Error fetching dealers by state' });
92- // }
93- // });
94-
95- // // ✅ Express route to fetch dealer by a particular id
96- // app.get('/fetchDealer/:id', async (req, res) => {
97- // try {
98- // const id = parseInt(req.params.id);
99- // const document = await Dealerships.findOne({ id: id });
100-
101- // if (!document) {
102- // return res.status(404).json({ error: 'Dealer not found' });
103- // }
104-
105- // res.json(document);
106- // } catch (error) {
107- // console.error(error);
108- // res.status(500).json({ error: 'Error fetching dealer by id' });
109- // }
110- // });
111-
112- // //Express route to insert review
113- // app.post('/insert_review', express.raw({ type: '*/*' }), async (req, res) => {
114- // const data = JSON.parse(req.body);
115- // const documents = await Reviews.find().sort({ id: -1 });
116- // let new_id = documents[0]['id'] + 1;
117-
118- // const review = new Reviews({
119- // id: new_id,
120- // name: data['name'],
121- // dealership: data['dealership'],
122- // review: data['review'],
123- // purchase: data['purchase'],
124- // purchase_date: data['purchase_date'],
125- // car_make: data['car_make'],
126- // car_model: data['car_model'],
127- // car_year: data['car_year'],
128- // });
129-
130- // try {
131- // const savedReview = await review.save();
132- // res.json(savedReview);
133- // } catch (error) {
134- // console.log(error);
135- // res.status(500).json({ error: 'Error inserting review' });
136- // }
137- // });
138-
139- // // Start the Express server
140- // app.listen(port, () => {
141- // console.log(`🚀 Server is running on http://localhost:${port}`);
142- // });
1431const express = require ( 'express' ) ;
1442const fs = require ( 'fs' ) ;
1453const cors = require ( 'cors' ) ;
@@ -163,13 +21,13 @@ app.get('/', (req, res) => {
16321
16422// Fetch all dealerships
16523app . get ( '/fetchDealers' , ( req , res ) => {
166- res . json ( dealerships_data [ " dealerships" ] ) ;
24+ res . json ( dealerships_data . dealerships ) ;
16725} ) ;
16826
16927// Fetch dealers by state
17028app . get ( '/fetchDealers/:state' , ( req , res ) => {
17129 const state = req . params . state . toUpperCase ( ) ;
172- const dealers = dealerships_data [ " dealerships" ] . filter ( d =>
30+ const dealers = dealerships_data . dealerships . filter ( d =>
17331 d . st . toUpperCase ( ) === state ||
17432 d . state . toUpperCase ( ) === state
17533 ) ;
@@ -179,27 +37,27 @@ app.get('/fetchDealers/:state', (req, res) => {
17937// Fetch dealer by ID
18038app . get ( '/fetchDealer/:id' , ( req , res ) => {
18139 const id = parseInt ( req . params . id ) ;
182- const dealer = dealerships_data [ " dealerships" ] . find ( d => d . id === id ) ;
40+ const dealer = dealerships_data . dealerships . find ( d => d . id === id ) ;
18341 res . json ( dealer || { } ) ;
18442} ) ;
18543
18644// Fetch all reviews
18745app . get ( '/fetchReviews' , ( req , res ) => {
188- res . json ( reviews_data [ " reviews" ] ) ;
46+ res . json ( reviews_data . reviews ) ;
18947} ) ;
19048
19149// Fetch reviews for a dealer
19250app . get ( '/fetchReviews/dealer/:id' , ( req , res ) => {
19351 const id = parseInt ( req . params . id ) ;
194- const reviews = reviews_data [ " reviews" ] . filter ( r => r . dealership === id ) ;
52+ const reviews = reviews_data . reviews . filter ( r => r . dealership === id ) ;
19553 res . json ( reviews ) ;
19654} ) ;
19755
19856// Insert review (append to JSON)
19957app . post ( '/insert_review' , ( req , res ) => {
20058 const body = req . body ;
20159
202- let new_id = reviews_data [ " reviews" ] . length + 1 ;
60+ let new_id = reviews_data . reviews . length + 1 ;
20361
20462 const newReview = {
20563 id : new_id ,
@@ -213,7 +71,7 @@ app.post('/insert_review', (req, res) => {
21371 car_year : body . car_year
21472 } ;
21573
216- reviews_data [ " reviews" ] . push ( newReview ) ;
74+ reviews_data . reviews . push ( newReview ) ;
21775
21876 res . json ( newReview ) ;
21977} ) ;
0 commit comments