Skip to content

Commit ad32333

Browse files
committed
proxy services
1 parent 5b3f334 commit ad32333

File tree

4 files changed

+82
-10
lines changed

4 files changed

+82
-10
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://baamranemoua-3030.theiadockernext-0-labs-prod-theiak8s-4-tor01.proxy.cognitiveclass.ai/
2+
sentiment_analyzer_url=https://sentianalyzer.23rrh7pzq52h.us-south.codeengine.appdomain.cloud/

server/djangoapp/restapis.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
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
5+
from .restapis import get_request, analyze_review_sentiments, post_review
56

67
load_dotenv()
78

@@ -12,11 +13,44 @@
1213
default="http://localhost:5050/")
1314

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

1734
# def analyze_review_sentiments(text):
1835
# request_url = sentiment_analyzer_url+"analyze/"+text
1936
# Add code for retrieving sentiments
37+
def analyze_review_sentiments(text):
38+
request_url = sentiment_analyzer_url+"analyze/"+text
39+
try:
40+
# Call get method of requests library with URL and parameters
41+
response = requests.get(request_url)
42+
return response.json()
43+
except Exception as err:
44+
print(f"Unexpected {err=}, {type(err)=}")
45+
print("Network exception occurred")
2046

2147
# def post_review(data_dict):
22-
# Add code for posting review
48+
def post_review(data_dict):
49+
request_url = backend_url+"/insert_review"
50+
try:
51+
response = requests.post(request_url,json=data_dict)
52+
print(response.json())
53+
return response.json()
54+
except:
55+
print("Network exception occurred")
56+
# Add code for posting review

server/djangoapp/urls.py

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

1717
# path for dealer reviews view
18-
19-
# path for add a review view
20-
21-
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
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 for add a review view
21+
path(route='dealer/<int:dealer_id>', view=views.get_dealer_details, name='dealer_details'),
22+
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
23+
path(route='reviews/dealer/<int:dealer_id>', view=views.get_dealer_reviews, name='dealer_details'),
24+
path(route='add_review', view=views.add_review, name='add_review'),

server/djangoapp/views.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,50 @@ def registration(request):
9696
# a list of dealerships
9797
# def get_dealerships(request):
9898
# ...
99+
#Update the `get_dealerships` render list of dealerships all by default, particular state if state is passed
100+
def get_dealerships(request, state="All"):
101+
if(state == "All"):
102+
endpoint = "/fetchDealers"
103+
else:
104+
endpoint = "/fetchDealers/"+state
105+
dealerships = get_request(endpoint)
106+
return JsonResponse({"status":200,"dealers":dealerships})
99107

100108
# Create a `get_dealer_reviews` view to render the reviews of a dealer
101109
# def get_dealer_reviews(request,dealer_id):
102110
# ...
103-
111+
def get_dealer_details(request, dealer_id):
112+
if(dealer_id):
113+
endpoint = "/fetchDealer/"+str(dealer_id)
114+
dealership = get_request(endpoint)
115+
return JsonResponse({"status":200,"dealer":dealership})
116+
else:
117+
return JsonResponse({"status":400,"message":"Bad Request"})
104118
# Create a `get_dealer_details` view to render the dealer details
105119
# def get_dealer_details(request, dealer_id):
106120
# ...
107-
121+
def add_review(request):
122+
if(request.user.is_anonymous == False):
123+
data = json.loads(request.body)
124+
try:
125+
response = post_review(data)
126+
return JsonResponse({"status":200})
127+
except:
128+
return JsonResponse({"status":401,"message":"Error in posting review"})
129+
else:
130+
return JsonResponse({"status":403,"message":"Unauthorized"})
108131
# Create a `add_review` view to submit a review
109132
# def add_review(request):
110133
# ...
134+
def get_dealer_reviews(request, dealer_id):
135+
# if dealer id has been provided
136+
if(dealer_id):
137+
endpoint = "/fetchReviews/dealer/"+str(dealer_id)
138+
reviews = get_request(endpoint)
139+
for review_detail in reviews:
140+
response = analyze_review_sentiments(review_detail['review'])
141+
print(response)
142+
review_detail['sentiment'] = response['sentiment']
143+
return JsonResponse({"status":200,"reviews":reviews})
144+
else:
145+
return JsonResponse({"status":400,"message":"Bad Request"})

0 commit comments

Comments
 (0)