Skip to content

Commit ff0f38d

Browse files
committed
Module 5 commit 6 Linting issues
1 parent a372270 commit ff0f38d

File tree

11 files changed

+565
-266
lines changed

11 files changed

+565
-266
lines changed

server/database/app.js

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,35 @@
11
const express = require('express');
22
const mongoose = require('mongoose');
33
const fs = require('fs');
4-
const cors = require('cors')
5-
const app = express()
4+
const cors = require('cors');
5+
const app = express();
66
const port = 3030;
77

8-
app.use(cors())
8+
app.use(cors());
99
app.use(require('body-parser').urlencoded({ extended: false }));
1010

11-
const reviews_data = JSON.parse(fs.readFileSync("reviews.json", 'utf8'));
12-
const dealerships_data = JSON.parse(fs.readFileSync("dealerships.json", 'utf8'));
13-
14-
mongoose.connect("mongodb://mongo_db:27017/",{'dbName':'dealershipsDB'});
11+
const reviews_data = JSON.parse(fs.readFileSync('reviews.json', 'utf8'));
12+
const dealerships_data = JSON.parse(fs.readFileSync('dealerships.json', 'utf8'));
1513

14+
mongoose.connect('mongodb://mongo_db:27017/', { dbName: 'dealershipsDB' });
1615

1716
const Reviews = require('./review');
18-
1917
const Dealerships = require('./dealership');
2018

2119
try {
22-
Reviews.deleteMany({}).then(()=>{
20+
Reviews.deleteMany({}).then(() => {
2321
Reviews.insertMany(reviews_data['reviews']);
2422
});
25-
Dealerships.deleteMany({}).then(()=>{
23+
Dealerships.deleteMany({}).then(() => {
2624
Dealerships.insertMany(dealerships_data['dealerships']);
2725
});
28-
2926
} catch (error) {
3027
res.status(500).json({ error: 'Error fetching documents' });
3128
}
3229

33-
3430
// Express route to home
3531
app.get('/', async (req, res) => {
36-
res.send("Welcome to the Mongoose API")
32+
res.send('Welcome to the Mongoose API');
3733
});
3834

3935
// Express route to fetch all reviews
@@ -49,7 +45,7 @@ app.get('/fetchReviews', async (req, res) => {
4945
// Express route to fetch reviews by a particular dealer
5046
app.get('/fetchReviews/dealer/:id', async (req, res) => {
5147
try {
52-
const documents = await Reviews.find({dealership: req.params.id});
48+
const documents = await Reviews.find({ dealership: req.params.id });
5349
res.json(documents);
5450
} catch (error) {
5551
res.status(500).json({ error: 'Error fetching documents' });
@@ -58,7 +54,7 @@ app.get('/fetchReviews/dealer/:id', async (req, res) => {
5854

5955
// Express route to fetch all dealerships
6056
app.get('/fetchDealers', async (req, res) => {
61-
try {
57+
try {
6258
const documents = await Dealerships.find();
6359
res.json(documents);
6460
} catch (error) {
@@ -68,47 +64,47 @@ app.get('/fetchDealers', async (req, res) => {
6864

6965
// Express route to fetch Dealers by a particular state
7066
app.get('/fetchDealers/:state', async (req, res) => {
71-
try {
72-
const documents = await Dealerships.find({ 'state': req.params.state });
73-
res.json(documents);
67+
try {
68+
const documents = await Dealerships.find({ state: req.params.state });
69+
res.json(documents);
7470
} catch (error) {
7571
res.status(500).json({ error: 'Error fetching documents' });
7672
}
7773
});
7874

7975
// Express route to fetch dealer by a particular id
8076
app.get('/fetchDealer/:id', async (req, res) => {
81-
try {
82-
const documents = await Dealerships.findOne({ 'id': req.params.id });
77+
try {
78+
const documents = await Dealerships.findOne({ id: req.params.id });
8379
res.json(documents);
8480
} catch (error) {
8581
res.status(500).json({ error: 'Error fetching documents' });
8682
}
8783
});
8884

89-
//Express route to insert review
85+
// Express route to insert review
9086
app.post('/insert_review', express.raw({ type: '*/*' }), async (req, res) => {
91-
data = JSON.parse(req.body);
92-
const documents = await Reviews.find().sort( { id: -1 } )
93-
let new_id = documents[0]['id']+1
87+
const data = JSON.parse(req.body);
88+
const documents = await Reviews.find().sort({ id: -1 });
89+
const new_id = documents[0]['id'] + 1;
9490

9591
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-
});
92+
id: new_id,
93+
name: data['name'],
94+
dealership: data['dealership'],
95+
review: data['review'],
96+
purchase: data['purchase'],
97+
purchase_date: data['purchase_date'],
98+
car_make: data['car_make'],
99+
car_model: data['car_model'],
100+
car_year: data['car_year'],
101+
});
106102

107103
try {
108104
const savedReview = await review.save();
109105
res.json(savedReview);
110106
} catch (error) {
111-
console.log(error);
107+
console.log(error);
112108
res.status(500).json({ error: 'Error inserting review' });
113109
}
114110
});

server/database/dealership.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,43 @@ const mongoose = require('mongoose');
22

33
const Schema = mongoose.Schema;
44

5-
const dealerships = new Schema({
6-
id: {
5+
const dealershipSchema = new Schema({
6+
id: {
77
type: Number,
88
required: true,
9-
},
10-
city: {
9+
},
10+
city: {
1111
type: String,
12-
required: true
12+
required: true,
1313
},
1414
state: {
1515
type: String,
16-
required: true
16+
required: true,
1717
},
1818
address: {
1919
type: String,
20-
required: true
20+
required: true,
2121
},
2222
zip: {
2323
type: String,
24-
required: true
24+
required: true,
2525
},
2626
lat: {
2727
type: String,
28-
required: true
28+
required: true,
2929
},
3030
long: {
3131
type: String,
32-
required: true
32+
required: true,
3333
},
3434
short_name: {
3535
type: String,
36+
required: false, // optional field
3637
},
3738
full_name: {
3839
type: String,
39-
required: true
40-
}
40+
required: true,
41+
},
4142
});
4243

43-
module.exports = mongoose.model('dealerships', dealerships);
44+
module.exports = mongoose.model('Dealership', dealershipSchema);

server/database/inventory.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,31 @@ const mongoose = require('mongoose');
33

44
const Schema = mongoose.Schema;
55

6-
const cars = new Schema({
7-
dealer_id: {
6+
const carSchema = new Schema({
7+
dealer_id: {
88
type: Number,
9-
required: true
10-
},
11-
make: {
9+
required: true,
10+
},
11+
make: {
1212
type: String,
13-
required: true
13+
required: true,
1414
},
15-
model: {
15+
model: {
1616
type: String,
17-
required: true
17+
required: true,
1818
},
19-
bodyType: {
19+
bodyType: {
2020
type: String,
21-
required: true
21+
required: true,
2222
},
23-
year: {
23+
year: {
2424
type: Number,
25-
required: true
25+
required: true,
2626
},
27-
mileage: {
27+
mileage: {
2828
type: Number,
29-
required: true
30-
}
29+
required: true,
30+
},
3131
});
3232

33-
module.exports = mongoose.model('cars', cars);
33+
module.exports = mongoose.model('Car', carSchema);

server/database/review.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,43 @@ const mongoose = require('mongoose');
22

33
const Schema = mongoose.Schema;
44

5-
const reviews = new Schema({
6-
id: {
5+
const reviewSchema = new Schema({
6+
id: {
77
type: Number,
88
required: true,
9-
},
10-
name: {
9+
},
10+
name: {
1111
type: String,
12-
required: true
12+
required: true,
1313
},
1414
dealership: {
1515
type: Number,
1616
required: true,
1717
},
1818
review: {
1919
type: String,
20-
required: true
20+
required: true,
2121
},
2222
purchase: {
2323
type: Boolean,
24-
required: true
24+
required: true,
2525
},
2626
purchase_date: {
2727
type: String,
28-
required: true
28+
required: true,
2929
},
3030
car_make: {
3131
type: String,
32-
required: true
32+
required: true,
3333
},
3434
car_model: {
3535
type: String,
36-
required: true
36+
required: true,
3737
},
3838
car_year: {
3939
type: Number,
40-
required: true
40+
required: true,
4141
},
4242
});
4343

44-
module.exports = mongoose.model('reviews', reviews);
44+
module.exports = mongoose.model('Review', reviewSchema);

server/djangoapp/models.py

Lines changed: 58 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,56 @@
11
# Uncomment the following imports before adding the Model code
22

33
from django.db import models
4-
from django.utils.timezone import now
54
from django.core.validators import MaxValueValidator, MinValueValidator
65

76

87
# Create your models here.
98
class CarMake(models.Model):
9+
"""
10+
Represents a car make (e.g., Toyota, Ford, etc.).
11+
12+
The CarMake model stores information about the car manufacturer,
13+
including the name, description, country of origin, and the date
14+
the brand was established.
15+
16+
Attributes:
17+
name (str): The name of the car manufacturer.
18+
description (str): A description of the car manufacturer.
19+
country_of_origin (str, optional): The country where the car manufacturer is based.
20+
established_date (date, optional): The date when the car manufacturer was established.
21+
"""
22+
1023
name = models.CharField(max_length=100)
1124
description = models.TextField()
12-
country_of_origin = models.CharField(max_length=100, blank=True, null=True) # Optional: field for the country of origin
13-
established_date = models.DateField(blank=True, null=True) # Optional: field for the year when the brand was established
25+
country_of_origin = models.CharField(max_length=100, blank=True, null=True)
26+
established_date = models.DateField(blank=True, null=True)
1427

1528
def __str__(self):
1629
return self.name # Return the name as the string representation
1730

1831

1932
class CarModel(models.Model):
20-
car_make = models.ForeignKey(CarMake, on_delete=models.CASCADE) # Many-to-One relationship
33+
"""
34+
Represents a car model associated with a specific car make (e.g., Camry, Mustang, etc.).
35+
36+
The CarModel model stores details about a specific model of a car,
37+
including its make, type, year, engine type, fuel type, color, price,
38+
mileage, horsepower, and transmission.
39+
40+
Attributes:
41+
car_make (ForeignKey): A reference to the CarMake model representing the car's manufacturer.
42+
name (str): The name of the car model (e.g., Camry, A-Class).
43+
type (str): The type of the car (e.g., Sedan, SUV, Wagon).
44+
year (int): The year the car model was manufactured.
45+
engine_type (str, optional): The type of engine in the car.
46+
fuel_type (str): The fuel type used by the car (e.g., Petrol, Diesel, Electric, Hybrid).
47+
color (str, optional): The color of the car.
48+
price (decimal, optional): The price of the car.
49+
mileage (float, optional): The mileage of the car.
50+
horsepower (int, optional): The horsepower of the car's engine.
51+
transmission (str): The type of transmission in the car (e.g., Automatic, Manual).
52+
"""
53+
car_make = models.ForeignKey(CarMake, on_delete = models.CASCADE)
2154
name = models.CharField(max_length=100)
2255
CAR_TYPES = [
2356
('SEDAN', 'Sedan'),
@@ -31,12 +64,25 @@ class CarModel(models.Model):
3164
MaxValueValidator(2023),
3265
MinValueValidator(2015)
3366
])
34-
engine_type = models.CharField(max_length=50, blank=True, null=True) # Engine type (e.g., V6, V8, Electric)
35-
fuel_type = models.CharField(max_length=20, choices=[('PETROL', 'Petrol'), ('DIESEL', 'Diesel'), ('ELECTRIC', 'Electric'), ('HYBRID', 'Hybrid')], default='PETROL') # Fuel type
36-
color = models.CharField(max_length=30, blank=True, null=True) # Car color
37-
price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True) # Price of the car model
38-
mileage = models.FloatField(blank=True, null=True) # Mileage (miles per gallon or km per liter)
39-
horsepower = models.IntegerField(blank=True, null=True) # Engine horsepower
40-
transmission = models.CharField(max_length=20, choices=[('AUTOMATIC', 'Automatic'), ('MANUAL', 'Manual')], default='AUTOMATIC') # Transmission type
67+
engine_type = models.CharField(max_length=50, blank=True, null=True)
68+
fuel_type = models.CharField(
69+
max_length=20,
70+
choices=[
71+
('PETROL', 'Petrol'),
72+
('DIESEL', 'Diesel'),
73+
('ELECTRIC', 'Electric'),
74+
('HYBRID', 'Hybrid')
75+
],
76+
default='PETROL'
77+
)
78+
color = models.CharField(max_length=30, blank=True, null=True)
79+
price = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
80+
mileage = models.FloatField(blank=True, null=True)
81+
horsepower = models.IntegerField(blank=True, null=True)
82+
transmission = models.CharField(
83+
max_length=20,
84+
choices=[('AUTOMATIC', 'Automatic'), ('MANUAL', 'Manual')],
85+
default='AUTOMATIC'
86+
)
4187
def __str__(self):
42-
return self.name # Return the name as the string representation
88+
return self.name

0 commit comments

Comments
 (0)