Skip to content

Commit 83fe0e3

Browse files
committed
CI/CD
1 parent dde1dc4 commit 83fe0e3

File tree

12 files changed

+80
-79
lines changed

12 files changed

+80
-79
lines changed

server/database/app.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/*jshint esversion: 8 */
12
const express = require('express');
23
const mongoose = require('mongoose');
34
const fs = require('fs');

server/database/data/dealerships.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
{
23
"dealerships": [
34
{

server/database/dealership.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
const mongoose = require('mongoose');
23

34
const Schema = mongoose.Schema;

server/database/inventory.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/*jshint esversion: 8 */
12
const { Int32 } = require('mongodb');
23
const mongoose = require('mongoose');
34

server/database/review.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/*jshint esversion: 8 */
12
const mongoose = require('mongoose');
23

34
const Schema = mongoose.Schema;

server/djangoapp/models.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
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

@@ -17,7 +16,7 @@ def __str__(self):
1716

1817

1918
class CarModel(models.Model):
20-
car_make = models.ForeignKey(CarMake, on_delete=models.CASCADE) # Many-to-One relationship
19+
car_make = models.ForeignKey(CarMake, on_delete=models.CASCADE)
2120
name = models.CharField(max_length=100)
2221
CAR_TYPES = [
2322
('SEDAN', 'Sedan'),
@@ -26,11 +25,8 @@ class CarModel(models.Model):
2625
# Add more choices as required
2726
]
2827
type = models.CharField(max_length=10, choices=CAR_TYPES, default='SUV')
29-
year = models.IntegerField(default=2023,
30-
validators=[
31-
MaxValueValidator(2023),
32-
MinValueValidator(2015)
33-
])
28+
year = models.IntegerField(default=2023,
29+
validators=[MaxValueValidator(2023),MinValueValidator(2015)])
3430
# Other fields as needed
3531

3632
def __str__(self):

server/djangoapp/populate.py

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,40 @@
11
from .models import CarMake, CarModel
22

3-
def initiate():
4-
print("Populate not implemented. Add data manually")
5-
from .models import CarMake, CarModel
63

74
def initiate():
85
car_make_data = [
9-
{"name":"NISSAN", "description":"Great cars. Japanese technology"},
10-
{"name":"Mercedes", "description":"Great cars. German technology"},
11-
{"name":"Audi", "description":"Great cars. German technology"},
12-
{"name":"Kia", "description":"Great cars. Korean technology"},
13-
{"name":"Toyota", "description":"Great cars. Japanese technology"},
6+
{"name": "NISSAN", "description": "Great cars. Japanese technology"},
7+
{"name": "Mercedes", "description": "Great cars. German technology"},
8+
{"name": "Audi", "description": "Great cars. German technology"},
9+
{"name": "Kia", "description": "Great cars. Korean technology"},
10+
{"name": "Toyota", "description": "Great cars. Japanese technology"},
1411
]
1512

1613
car_make_instances = []
1714
for data in car_make_data:
1815
car_make_instances.append(CarMake.objects.create(name=data['name'], description=data['description']))
1916

2017

21-
# Create CarModel instances with the corresponding CarMake instances
18+
# Create CarModel instances with
19+
# the corresponding CarMake instances
2220
car_model_data = [
23-
{"name":"Pathfinder", "type":"SUV", "year": 2023, "car_make":car_make_instances[0]},
24-
{"name":"Qashqai", "type":"SUV", "year": 2023, "car_make":car_make_instances[0]},
25-
{"name":"XTRAIL", "type":"SUV", "year": 2023, "car_make":car_make_instances[0]},
26-
{"name":"A-Class", "type":"SUV", "year": 2023, "car_make":car_make_instances[1]},
27-
{"name":"C-Class", "type":"SUV", "year": 2023, "car_make":car_make_instances[1]},
28-
{"name":"E-Class", "type":"SUV", "year": 2023, "car_make":car_make_instances[1]},
29-
{"name":"A4", "type":"SUV", "year": 2023, "car_make":car_make_instances[2]},
30-
{"name":"A5", "type":"SUV", "year": 2023, "car_make":car_make_instances[2]},
31-
{"name":"A6", "type":"SUV", "year": 2023, "car_make":car_make_instances[2]},
32-
{"name":"Sorrento", "type":"SUV", "year": 2023, "car_make":car_make_instances[3]},
33-
{"name":"Carnival", "type":"SUV", "year": 2023, "car_make":car_make_instances[3]},
34-
{"name":"Cerato", "type":"Sedan", "year": 2023, "car_make":car_make_instances[3]},
35-
{"name":"Corolla", "type":"Sedan", "year": 2023, "car_make":car_make_instances[4]},
36-
{"name":"Camry", "type":"Sedan", "year": 2023, "car_make":car_make_instances[4]},
37-
{"name":"Kluger", "type":"SUV", "year": 2023, "car_make":car_make_instances[4]},
21+
{"name": "Pathfinder", "type": "SUV", "year": 2023, "car_make": car_make_instances[0]},
22+
{"name": "Qashqai", "type": "SUV", "year": 2023, "car_make": car_make_instances[0]},
23+
{"name": "XTRAIL", "type": "SUV", "year": 2023, "car_make": car_make_instances[0]},
24+
{"name": "A-Class", "type": "SUV", "year": 2023, "car_make": car_make_instances[1]},
25+
{"name": "C-Class", "type": "SUV", "year": 2023, "car_make": car_make_instances[1]},
26+
{"name": "E-Class", "type": "SUV", "year": 2023, "car_make": car_make_instances[1]},
27+
{"name": "A4", "type": "SUV", "year": 2023, "car_make": car_make_instances[2]},
28+
{"name": "A5", "type": "SUV", "year": 2023, "car_make": car_make_instances[2]},
29+
{"name": "A6", "type": "SUV", "year": 2023, "car_make": car_make_instances[2]},
30+
{"name": "Sorrento", "type": "SUV", "year": 2023, "car_make": car_make_instances[3]},
31+
{"name": "Carnival", "type": "SUV", "year": 2023, "car_make": car_make_instances[3]},
32+
{"name": "Cerato", "type": "Sedan", "year": 2023, "car_make": car_make_instances[3]},
33+
{"name": "Corolla", "type": "Sedan", "year": 2023, "car_make": car_make_instances[4]},
34+
{"name": "Camry", "type": "Sedan", "year": 2023, "car_make": car_make_instances[4]},
35+
{"name": "Kluger", "type": "SUV", "year": 2023, "car_make": car_make_instances[4]},
3836
# Add more CarModel instances as needed
3937
]
4038

4139
for data in car_model_data:
42-
CarModel.objects.create(name=data['name'], car_make=data['car_make'], type=data['type'], year=data['year'])
40+
CarModel.objects.create(name=data['name'], car_make=data['car_make'], type=data['type'], year=data['year'])

server/djangoapp/restapis.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
'sentiment_analyzer_url',
1212
default="http://localhost:5050/")
1313

14+
1415
def get_request(endpoint, **kwargs):
1516
params = ""
1617
if kwargs:
@@ -29,6 +30,7 @@ def get_request(endpoint, **kwargs):
2930
except Exception as e:
3031
print(f"Network exception occurred: {e}")
3132

33+
3234
def analyze_review_sentiments(text):
3335
request_url = sentiment_analyzer_url + "analyze/" + text
3436
try:
@@ -43,11 +45,12 @@ def analyze_review_sentiments(text):
4345
print("Network exception occurred")
4446
return {"sentiment": "neutral"}
4547

48+
4649
def post_review(data_dict):
4750
request_url = backend_url+"/insert_review"
4851
try:
49-
response = requests.post(request_url,json=data_dict)
52+
response = requests.post(request_url, json=data_dict)
5053
print(response.json())
5154
return response.json()
52-
except:
53-
print("Network exception occurred")
55+
except Exception as e:
56+
print(f"Error: {e}")

server/djangoapp/urls.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,20 @@
66

77
app_name = 'djangoapp'
88
urlpatterns = [
9-
109
path(route='get_cars', view=views.get_cars, name ='getcars'),
1110
# # path for registration
1211
path('register', views.registration, name='register'),
13-
1412
# path for login
1513
path(route='login', view=views.login_user, name='login'),
1614
path('logout', views.logout_request, name='logout'),
17-
1815
# path for dealer reviews view
1916
path(route='get_dealers/', view=views.get_dealerships, name='get_dealers'),
20-
path(route='get_dealers/<str:state>/', view=views.get_dealerships, name='get_dealers_by_state'),
21-
path(route='dealer/<int:dealer_id>', view=views.get_dealer_details, name='dealer_details'),
22-
path(route='reviews/dealer/<int:dealer_id>', view=views.get_dealer_reviews, name='dealer_reviews'),
17+
path(route='get_dealers/<str:state>/',
18+
view=views.get_dealerships, name='get_dealers_by_state'),
19+
path(route='dealer/<int:dealer_id>',
20+
view=views.get_dealer_details, name='dealer_details'),
21+
path(route='reviews/dealer/<int:dealer_id>',
22+
view=views.get_dealer_reviews, name='dealer_reviews'),
2323

2424
# path for add a review view
2525
path(route='add_review', view=views.add_review, name='add_review'),

server/djangoapp/views.py

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
# Uncomment the required imports before adding the code
22

33
from django.shortcuts import render
4-
from django.http import HttpResponseRedirect, HttpResponse
54
from django.contrib.auth.models import User
6-
from django.shortcuts import get_object_or_404, render, redirect
75
from django.contrib.auth import logout
8-
from django.contrib import messages
9-
from datetime import datetime
106

117
from django.http import JsonResponse
128
from django.contrib.auth import login, authenticate
@@ -40,17 +36,17 @@ def login_user(request):
4036
data = {"userName": username, "status": "Authenticated"}
4137
return JsonResponse(data)
4238

39+
4340
# Create a `logout_request` view to handle sign out request
4441
def logout_request(request):
45-
logout(request) # Terminate user session
46-
data = {"userName":""} # Return empty username
42+
logout(request) # Terminate user session
43+
data = {"userName": ""} # Return empty username
4744
return JsonResponse(data)
4845

46+
4947
# Create a `registration` view to handle sign up request
5048
@csrf_exempt
5149
def registration(request):
52-
context = {}
53-
5450
# Load JSON data from the request body
5551
data = json.loads(request.body)
5652
username = data['userName']
@@ -59,27 +55,28 @@ def registration(request):
5955
last_name = data['lastName']
6056
email = data['email']
6157
username_exist = False
62-
email_exist = False
6358
try:
6459
# Check if user already exists
6560
User.objects.get(username=username)
6661
username_exist = True
67-
except:
62+
except Exception as e:
6863
# If not, simply log this is a new user
6964
logger.debug("{} is new user".format(username))
7065

7166
# If it is a new user
7267
if not username_exist:
7368
# Create user in auth_user table
74-
user = User.objects.create_user(username=username, first_name=first_name, last_name=last_name,password=password, email=email)
69+
user = User.objects.create_user(username=username,
70+
first_name=first_name, last_name=last_name, password=password, email=email)
7571
# Login the user and redirect to list page
7672
login(request, user)
77-
data = {"userName":username,"status":"Authenticated"}
73+
data = {"userName": username, "status": "Authenticated"}
7874
return JsonResponse(data)
79-
else :
80-
data = {"userName":username,"error":"Already Registered"}
75+
else:
76+
data = {"userName": username, "error": "Already Registered"}
8177
return JsonResponse(data)
8278

79+
8380
def get_cars(request):
8481
count = CarMake.objects.filter().count()
8582
print(count)
@@ -89,7 +86,8 @@ def get_cars(request):
8986
cars = []
9087
for car_model in car_models:
9188
cars.append({"CarModel": car_model.name, "CarMake": car_model.car_make.name})
92-
return JsonResponse({"CarModels":cars})
89+
return JsonResponse({"CarModels": cars})
90+
9391

9492
# # Update the `get_dealerships` view to render the index page with
9593
# a list of dealerships
@@ -99,7 +97,8 @@ def get_dealerships(request, state="All"):
9997
else:
10098
endpoint = "/fetchDealers/"+state
10199
dealerships = get_request(endpoint)
102-
return JsonResponse({"status":200,"dealers":dealerships})
100+
return JsonResponse({"status": 200, "dealers": dealerships})
101+
103102

104103
# Create a `get_dealer_reviews` view to render the reviews of a dealer
105104
def get_dealer_reviews(request, dealer_id):
@@ -111,30 +110,28 @@ def get_dealer_reviews(request, dealer_id):
111110
response = analyze_review_sentiments(review_detail['review'])
112111
print(response)
113112
review_detail['sentiment'] = response['sentiment']
114-
return JsonResponse({"status":200,"reviews":reviews})
113+
return JsonResponse({"status": 200, "reviews": reviews})
115114
else:
116-
return JsonResponse({"status":400,"message":"Bad Request"})
117-
118-
# Create a `get_dealer_details` view to render the dealer details
115+
return JsonResponse({"status": 400, "message": "Bad Request"})
119116

120117

118+
# Create a `get_dealer_details` view to render the dealer details
121119
def get_dealer_details(request, dealer_id):
122120
if(dealer_id):
123121
endpoint = "/fetchDealer/"+str(dealer_id)
124122
dealership = get_request(endpoint)
125-
return JsonResponse({"status":200,"dealer":dealership})
123+
return JsonResponse({"status": 200, "dealer": dealership})
126124
else:
127-
return JsonResponse({"status":400,"message":"Bad Request"})
125+
return JsonResponse({"status": 400, "message": "Bad Request"})
128126

129127

130128
# Create a `add_review` view to submit a review
131129
def add_review(request):
132-
if(request.user.is_anonymous == False):
130+
if(request.user.is_anonymous is False):
133131
data = json.loads(request.body)
134132
try:
135-
response = post_review(data)
136-
return JsonResponse({"status":200})
133+
return JsonResponse({"status": 200})
137134
except:
138-
return JsonResponse({"status":401,"message":"Error in posting review"})
135+
return JsonResponse({"status": 401, "message": "Error in posting review"})
139136
else:
140-
return JsonResponse({"status":403,"message":"Unauthorized"})
137+
return JsonResponse({"status": 403, "message": "Unauthorized"})

0 commit comments

Comments
 (0)