Skip to content

Commit c8a1f3d

Browse files
author
jcob
committed
create django proxi service of backend apis
1 parent 77484d1 commit c8a1f3d

File tree

4 files changed

+60
-14
lines changed

4 files changed

+60
-14
lines changed

server/djangoapp/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
backend_url =https://jolaya32-3030.theiadockernext-1-labs-prod-theiak8s-4-tor01.proxy.cognitiveclass.ai
2-
sentiment_analyzer_url=your code engine deployment url
2+
sentiment_analyzer_url=https://sentianalyzer.1yqx09tnj90k.us-south.codeengine.appdomain.cloud/analyze/Fantastic%20services%20t

server/djangoapp/restapis.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,21 @@ def get_request(endpoint, **kwargs):
2828
# If any error occurs
2929
print("Network exception occurred")
3030

31-
# def analyze_review_sentiments(text):
32-
# request_url = sentiment_analyzer_url+"analyze/"+text
33-
# Add code for retrieving sentiments
31+
def analyze_review_sentiments(text):
32+
request_url = sentiment_analyzer_url+"analyze/"+text
33+
try:
34+
# Call get method of requests library with URL and parameters
35+
response = requests.get(request_url)
36+
return response.json()
37+
except Exception as err:
38+
print(f"Unexpected {err=}, {type(err)=}")
39+
print("Network exception occurred")
3440

35-
# def post_review(data_dict):
36-
# Add code for posting review
41+
def post_review(data_dict):
42+
request_url = backend_url+"/insert_review"
43+
try:
44+
response = requests.post(request_url,json=data_dict)
45+
print(response.json())
46+
return response.json()
47+
except:
48+
print("Network exception occurred")

server/djangoapp/urls.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515
path(route='get_cars', view=views.get_cars, name ='getcars'),
1616

1717
# path for dealer reviews view
18+
path(route='get_dealers', view=views.get_dealerships, name='get_dealers'),
19+
path(route='get_dealers/<str:state>', view=views.get_dealerships, name='get_dealers_by_state'),
20+
path(route='dealer/<int:dealer_id>', view=views.get_dealer_details, name='dealer_details'),
1821

1922
# path for add a review view
23+
path(route='add_review', view=views.add_review, name='add_review'),
2024

2125
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

server/djangoapp/views.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from .populate import initiate
1717

1818
from .models import CarMake, CarModel
19+
from .restapis import get_request, analyze_review_sentiments, post_review
1920

2021
# Get an instance of a logger
2122
logger = logging.getLogger(__name__)
@@ -91,17 +92,46 @@ def registration(request):
9192

9293
# # Update the `get_dealerships` view to render the index page with
9394
# a list of dealerships
94-
# def get_dealerships(request):
95-
# ...
95+
#Update the `get_dealerships` render list of dealerships all by default, particular state if state is passed
96+
def get_dealerships(request, state="All"):
97+
if(state == "All"):
98+
endpoint = "/fetchDealers"
99+
else:
100+
endpoint = "/fetchDealers/"+state
101+
dealerships = get_request(endpoint)
102+
return JsonResponse({"status":200,"dealers":dealerships})
96103

97104
# Create a `get_dealer_reviews` view to render the reviews of a dealer
98-
# def get_dealer_reviews(request,dealer_id):
99-
# ...
105+
def get_dealer_reviews(request, dealer_id):
106+
# if dealer id has been provided
107+
if(dealer_id):
108+
endpoint = "/fetchReviews/dealer/"+str(dealer_id)
109+
reviews = get_request(endpoint)
110+
for review_detail in reviews:
111+
response = analyze_review_sentiments(review_detail['review'])
112+
print(response)
113+
review_detail['sentiment'] = response['sentiment']
114+
return JsonResponse({"status":200,"reviews":reviews})
115+
else:
116+
return JsonResponse({"status":400,"message":"Bad Request"})
100117

101118
# Create a `get_dealer_details` view to render the dealer details
102-
# def get_dealer_details(request, dealer_id):
103-
# ...
119+
def get_dealer_details(request, dealer_id):
120+
if(dealer_id):
121+
endpoint = "/fetchDealer/"+str(dealer_id)
122+
dealership = get_request(endpoint)
123+
return JsonResponse({"status":200,"dealer":dealership})
124+
else:
125+
return JsonResponse({"status":400,"message":"Bad Request"})
104126

105127
# Create a `add_review` view to submit a review
106-
# def add_review(request):
107-
# ...
128+
def add_review(request):
129+
if(request.user.is_anonymous == False):
130+
data = json.loads(request.body)
131+
try:
132+
response = post_review(data)
133+
return JsonResponse({"status":200})
134+
except:
135+
return JsonResponse({"status":401,"message":"Error in posting review"})
136+
else:
137+
return JsonResponse({"status":403,"message":"Unauthorized"})

0 commit comments

Comments
 (0)