Переглянути джерело

No need to pass location object it work with only location_ud

Mohidul Islam 5 роки тому
батько
коміт
8a19d1be9f
1 змінених файлів з 10 додано та 10 видалено
  1. 10 10
      review/review_utils.py

+ 10 - 10
review/review_utils.py

@@ -30,7 +30,7 @@ def reply_review(review, replied_text):
     :param replied_text: string -> The actual reply that you want to post.
     :return:
     '''
-    url = get_reply_url(review.location.location_id, review.review_id)
+    url = get_reply_url(review.location_id, review.review_id)
     headers = get_auth_header()
     payload = json.dumps({'comment': replied_text})
     response = put(url, headers=headers, data=payload)
@@ -102,7 +102,7 @@ def reply_review(review, replied_text):
 #         review.save()
 
 
-def insert_review_into_database(reviews, loc):
+def insert_review_into_database(reviews, loc_id):
     '''
     Insert reviews to database.
     :param unrecorded_reviews: all reviews for location.
@@ -122,7 +122,7 @@ def insert_review_into_database(reviews, loc):
         reviewer = rev.get('reviewer')
         review.reviewer_name = reviewer.get('displayName')
         review.reviewer_photo = reviewer.get('profilePhotoUrl')
-        review.location = loc
+        review.location_id = loc_id
         review_reply = rev.get('reviewReply')
         # Check if it is already  replied.
         if review_reply:
@@ -163,10 +163,11 @@ def sync_all_review(loc_id):
     average_rating = data.get('averageRating')
     total_reviews = data.get('totalReviewCount')
     total_reviews_db = Review.objects.filter(location_id=loc_id).count()
-    update_location_data(loc, average_rating, total_reviews, total_reviews_db)
+    update_location_data(loc_id, average_rating, total_reviews, total_reviews_db)
 
 
-def update_location_data(loc, average_rating, total_reviews, total_reviews_db):
+def update_location_data(loc_id, average_rating, total_reviews, total_reviews_db):
+    loc = Location.objects.get(pk=loc_id)
     loc.average_rating = average_rating
     loc.total_review = total_reviews
     loc.total_review_DB = total_reviews_db
@@ -193,18 +194,17 @@ def update_location_data(loc, average_rating, total_reviews, total_reviews_db):
 
 
 def fetch_last_20_reviews(loc_id):
-    loc = Location.objects.get(pk=loc_id)
     headers = get_auth_header()
-    url = get_review_list_url(loc_id)+'&pageSize=20'
+    url = get_review_list_url(loc_id)+'&pageSize=100'
     res = get(url, headers=headers)
     data = res.json()
     reviews = data['reviews']
     average_rating = data.get('averageRating')
     total_reviews = data.get('totalReviewCount')
-    if reviews.count() > 0:
-        insert_review_into_database(reviews, loc)
+    if len(reviews) > 0:
+        insert_review_into_database(reviews, loc_id)
     total_reviews_db = Review.objects.filter(location_id=loc_id).count()
-    update_location_data(loc, average_rating, total_reviews, total_reviews_db)
+    update_location_data(loc_id, average_rating, total_reviews, total_reviews_db)
 
 
 def populate_reviews():