Skip to content

Commit 5a11eaa

Browse files
committed
added django proxy services of backend api
1 parent 9177e56 commit 5a11eaa

File tree

4 files changed

+78
-8
lines changed

4 files changed

+78
-8
lines changed

server/djangoapp/.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
backend_url =your backend url
2-
sentiment_analyzer_url=your code engine deployment url
1+
backend_url = 'https://drun16info-3030.theiadockernext-0-labs-prod-theiak8s-4-tor01.proxy.cognitiveclass.ai'
2+
sentiment_analyzer_url= 'https://sentianalyzers.1zz0cjdvv57l.us-south.codeengine.appdomain.cloud/'

server/djangoapp/restapis.py

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Uncomment the imports below before you add the function code
2-
# import requests
2+
import requests
33
import os
44
from dotenv import load_dotenv
55

@@ -11,12 +11,41 @@
1111
'sentiment_analyzer_url',
1212
default="http://localhost:5050/")
1313

14-
# def get_request(endpoint, **kwargs):
14+
def get_request(endpoint, **kwargs):
1515
# Add code for get requests to back end
16+
params = ""
17+
if(kwargs):
18+
for key,value in kwargs.items():
19+
params=params+key+"="+value+"&"
20+
request_url = backend_url+endpoint+"?"+params
21+
print("GET from {} ".format(request_url))
22+
try:
23+
# Call get method of requests library with URL and parameters
24+
response = requests.get(request_url)
25+
return response.json()
26+
except:
27+
# If any error occurs
28+
print("Network exception occurred")
1629

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

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

server/djangoapp/urls.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.conf.urls.static import static
44
from django.conf import settings
55
from . import views
6+
from .restapis import get_request, analyze_review_sentiments, post_review
67

78
app_name = 'djangoapp'
89
urlpatterns = [
@@ -15,8 +16,14 @@
1516
path(route='logout', view=views.logout_request, name='logout'),
1617
path(route='get_cars', view=views.get_cars, name ='getcars'),
1718

19+
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'),
1821
# path for dealer reviews view
22+
path(route='dealer/<int:dealer_id>', view=views.get_dealer_details, name='dealer_details'),
23+
path(route='reviews/dealer/<int:dealer_id>', view=views.get_dealer_reviews, name='dealer_details'),
24+
1925

2026
# path for add a review view
27+
path(route='add_review', view=views.add_review, name='add_review'),
2128

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

server/djangoapp/views.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,51 @@ def get_cars(request):
9595
return JsonResponse({"CarModels":cars})
9696
# # Update the `get_dealerships` view to render the index page with
9797
# a list of dealerships
98-
# def get_dealerships(request):
98+
def get_dealerships(request):
99+
if(state == "All"):
100+
endpoint = "/fetchDealers"
101+
else:
102+
endpoint = "/fetchDealers/"+state
103+
dealerships = get_request(endpoint)
104+
return JsonResponse({"status":200,"dealers":dealerships})
99105
# ...
100106

101107
# Create a `get_dealer_reviews` view to render the reviews of a dealer
102-
# def get_dealer_reviews(request,dealer_id):
108+
def get_dealer_reviews(request,dealer_id):
109+
if(dealer_id):
110+
endpoint = "/fetchDealer/"+str(dealer_id)
111+
dealership = get_request(endpoint)
112+
return JsonResponse({"status":200,"dealer":dealership})
113+
else:
114+
return JsonResponse({"status":400,"message":"Bad Request"})
103115
# ...
104116

105117
# Create a `get_dealer_details` view to render the dealer details
106118
# def get_dealer_details(request, dealer_id):
119+
def get_dealer_reviews(request, dealer_id):
120+
# if dealer id has been provided
121+
if(dealer_id):
122+
endpoint = "/fetchReviews/dealer/"+str(dealer_id)
123+
reviews = get_request(endpoint)
124+
for review_detail in reviews:
125+
response = analyze_review_sentiments(review_detail['review'])
126+
print(response)
127+
review_detail['sentiment'] = response['sentiment']
128+
return JsonResponse({"status":200,"reviews":reviews})
129+
else:
130+
return JsonResponse({"status":400,"message":"Bad Request"})
107131
# ...
108132

109133
# Create a `add_review` view to submit a review
110134
# def add_review(request):
135+
def add_review(request):
136+
if(request.user.is_anonymous == False):
137+
data = json.loads(request.body)
138+
try:
139+
response = post_review(data)
140+
return JsonResponse({"status":200})
141+
except:
142+
return JsonResponse({"status":401,"message":"Error in posting review"})
143+
else:
144+
return JsonResponse({"status":403,"message":"Unauthorized"})
111145
# ...

0 commit comments

Comments
 (0)