Skip to content

Commit b848112

Browse files
committed
Refactor app.js and inventory.js for improved code structure and readability; add .jshintrc for linting configuration
1 parent 2f23667 commit b848112

File tree

3 files changed

+20
-157
lines changed

3 files changed

+20
-157
lines changed

.jshintrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"esversion": 6,
3+
"node": true,
4+
"undef": true,
5+
"unused": true
6+
}

server/database/app.js

Lines changed: 7 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,3 @@
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-
// });
1431
const express = require('express');
1442
const fs = require('fs');
1453
const cors = require('cors');
@@ -163,13 +21,13 @@ app.get('/', (req, res) => {
16321

16422
// Fetch all dealerships
16523
app.get('/fetchDealers', (req, res) => {
166-
res.json(dealerships_data["dealerships"]);
24+
res.json(dealerships_data.dealerships);
16725
});
16826

16927
// Fetch dealers by state
17028
app.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
18038
app.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
18745
app.get('/fetchReviews', (req, res) => {
188-
res.json(reviews_data["reviews"]);
46+
res.json(reviews_data.reviews);
18947
});
19048

19149
// Fetch reviews for a dealer
19250
app.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)
19957
app.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
});

server/database/inventory.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,29 @@
1-
const { Int32 } = require('mongodb');
21
const mongoose = require('mongoose');
32

43
const Schema = mongoose.Schema;
54

65
const cars = new Schema({
7-
dealer_id: {
6+
dealer_id: {
87
type: Number,
98
required: true
10-
},
11-
make: {
9+
},
10+
make: {
1211
type: String,
1312
required: true
1413
},
15-
model: {
14+
model: {
1615
type: String,
1716
required: true
1817
},
19-
bodyType: {
18+
bodyType: {
2019
type: String,
2120
required: true
2221
},
23-
year: {
22+
year: {
2423
type: Number,
2524
required: true
2625
},
27-
mileage: {
26+
mileage: {
2827
type: Number,
2928
required: true
3029
}

0 commit comments

Comments
 (0)