|
| 1 | +/* jshint esversion: 8 */ |
| 2 | + |
1 | 3 | const express = require('express'); |
2 | 4 | const mongoose = require('mongoose'); |
3 | 5 | const fs = require('fs'); |
4 | 6 | const cors = require('cors'); |
| 7 | +const bodyParser = require('body-parser'); |
| 8 | + |
5 | 9 | const app = express(); |
6 | 10 | const port = 3030; |
7 | 11 |
|
8 | 12 | app.use(cors()); |
9 | | -app.use(require('body-parser').urlencoded({ extended: false })); |
| 13 | +app.use(bodyParser.urlencoded({ extended: false })); |
10 | 14 |
|
11 | | -const reviews_data = JSON.parse(fs.readFileSync("reviews.json", 'utf8')); |
12 | | -const dealerships_data = JSON.parse(fs.readFileSync("dealerships.json", 'utf8')); |
| 15 | +const reviewsData = JSON.parse(fs.readFileSync("reviews.json", 'utf8')); |
| 16 | +const dealershipsData = JSON.parse(fs.readFileSync("dealerships.json", 'utf8')); |
13 | 17 |
|
14 | 18 | mongoose.connect("mongodb://mongo_db:27017/", { dbName: 'dealershipsDB' }); |
15 | 19 |
|
16 | 20 | const Reviews = require('./review'); |
17 | 21 | const Dealerships = require('./dealership'); |
18 | 22 |
|
19 | | -try { |
20 | | - Reviews.deleteMany({}).then(() => { |
21 | | - Reviews.insertMany(reviews_data['reviews']); |
22 | | - }); |
23 | | - Dealerships.deleteMany({}).then(() => { |
24 | | - Dealerships.insertMany(dealerships_data['dealerships']); |
25 | | - }); |
26 | | -} catch (error) { |
27 | | - console.error('Error initializing the database:', error); |
28 | | -} |
| 23 | +(async () => { |
| 24 | + try { |
| 25 | + await Reviews.deleteMany({}); |
| 26 | + await Reviews.insertMany(reviewsData.reviews); |
| 27 | + await Dealerships.deleteMany({}); |
| 28 | + await Dealerships.insertMany(dealershipsData.dealerships); |
| 29 | + } catch (error) { |
| 30 | + console.error('Error initializing the database:', error); |
| 31 | + } |
| 32 | +})(); |
29 | 33 |
|
30 | 34 | // Express route to home |
31 | 35 | app.get('/', async (req, res) => { |
@@ -88,23 +92,23 @@ app.get('/fetchDealer/:id', async (req, res) => { |
88 | 92 |
|
89 | 93 | // Express route to insert review |
90 | 94 | app.post('/insert_review', express.raw({ type: '*/*' }), async (req, res) => { |
91 | | - const data = JSON.parse(req.body); |
92 | | - const documents = await Reviews.find().sort({ id: -1 }); |
93 | | - let new_id = documents[0]['id'] + 1; |
94 | | - |
95 | | - const review = new Reviews({ |
96 | | - "id": new_id, |
97 | | - "name": data['name'], |
98 | | - "dealership": data['dealership'], |
99 | | - "review": data['review'], |
100 | | - "purchase": data['purchase'], |
101 | | - "purchase_date": data['purchase_date'], |
102 | | - "car_make": data['car_make'], |
103 | | - "car_model": data['car_model'], |
104 | | - "car_year": data['car_year'], |
105 | | - }); |
106 | | - |
107 | 95 | try { |
| 96 | + const data = JSON.parse(req.body); |
| 97 | + const documents = await Reviews.find().sort({ id: -1 }); |
| 98 | + const newId = documents.length > 0 ? documents[0].id + 1 : 1; |
| 99 | + |
| 100 | + const review = new Reviews({ |
| 101 | + id: newId, |
| 102 | + name: data.name, |
| 103 | + dealership: data.dealership, |
| 104 | + review: data.review, |
| 105 | + purchase: data.purchase, |
| 106 | + purchase_date: data.purchase_date, |
| 107 | + car_make: data.car_make, |
| 108 | + car_model: data.car_model, |
| 109 | + car_year: data.car_year, |
| 110 | + }); |
| 111 | + |
108 | 112 | const savedReview = await review.save(); |
109 | 113 | res.json(savedReview); |
110 | 114 | } catch (error) { |
|
0 commit comments