Quellcode durchsuchen

Intert new review into database with update capable

Mohidul Islam vor 5 Jahren
Ursprung
Commit
b25768f94d
1 geänderte Dateien mit 56 neuen und 27 gelöschten Zeilen
  1. 56 27
      review/review_utils.py

+ 56 - 27
review/review_utils.py

@@ -59,6 +59,49 @@ def reply_review(review, replied_text):
 #     return filtered_reviews
 
 
+# def insert_review_into_database(reviews, loc):
+#     '''
+#     Insert reviews to database.
+#     :param unrecorded_reviews: all reviews for location.
+#     :param loc: location that unrecorded_reviews belongs to.
+#     :return: It insert all reviews if it is not exits in database and return nothing.
+#     '''
+#     for review in reviews:
+#         review_id = review.get('reviewId')
+#         # Check the review already exists in database then We don't need to store again.
+#         rev = Review.objects.filter(pk=review_id).first()
+#         if rev:
+#             continue
+#         comment = review.get('comment')
+#         create_time = review.get('createTime')
+#         update_time = review.get('updateTime')
+#         star_rating = STAR_REVIEW_NUM[review.get('starRating')]
+#         reviewer = review.get('reviewer')
+#         reviewer_name = reviewer.get('displayName')
+#         reviewer_photo = reviewer.get('profilePhotoUrl')
+#         review_reply = review.get('reviewReply')
+#         # Check if it is already  replied.
+#         if review_reply:
+#             replied_text = review_reply.get('comment')
+#             create_time = review_reply.get('updateTime')
+#             reply = Reply.objects.create(replied_text=replied_text, create_time=create_time)
+#         else:
+#             reply = None
+
+#         review = Review(
+#             review_id=review_id,
+#             comment=comment,
+#             create_time=create_time,
+#             update_time=update_time,
+#             star_rating=star_rating,
+#             reviewer_name=reviewer_name,
+#             reviewer_photo=reviewer_photo,
+#             location=loc,
+#             reply=reply
+#         )
+#         review.save()
+
+
 def insert_review_into_database(reviews, loc):
     '''
     Insert reviews to database.
@@ -66,39 +109,25 @@ def insert_review_into_database(reviews, loc):
     :param loc: location that unrecorded_reviews belongs to.
     :return: It insert all reviews if it is not exits in database and return nothing.
     '''
-    for review in reviews:
-        review_id = review.get('reviewId')
+    for rev in reviews:
+        review_id = rev.get('reviewId')
         # Check the review already exists in database then We don't need to store again.
-        rev = Review.objects.filter(pk=review_id).first()
-        if rev:
-            continue
-        comment = review.get('comment')
-        create_time = review.get('createTime')
-        update_time = review.get('updateTime')
-        star_rating = STAR_REVIEW_NUM[review.get('starRating')]
-        reviewer = review.get('reviewer')
-        reviewer_name = reviewer.get('displayName')
-        reviewer_photo = reviewer.get('profilePhotoUrl')
-        review_reply = review.get('reviewReply')
+        review, created = Review.objects.get_or_create(pk=review_id)
+        review.comment = rev.get('comment')
+        review.create_time = rev.get('createTime')
+        review.update_time = rev.get('updateTime')
+        review.star_rating = STAR_REVIEW_NUM[rev.get('starRating')]
+        reviewer = rev.get('reviewer')
+        review.reviewer_name = reviewer.get('displayName')
+        review.reviewer_photo = reviewer.get('profilePhotoUrl')
+        review_reply = rev.get('reviewReply')
         # Check if it is already  replied.
         if review_reply:
             replied_text = review_reply.get('comment')
             create_time = review_reply.get('updateTime')
-            reply = Reply.objects.create(replied_text=replied_text, create_time=create_time)
+            review.reply = Reply.objects.create(replied_text=replied_text, create_time=create_time)
         else:
-            reply = None
-
-        review = Review(
-            review_id=review_id,
-            comment=comment,
-            create_time=create_time,
-            update_time=update_time,
-            star_rating=star_rating,
-            reviewer_name=reviewer_name,
-            reviewer_photo=reviewer_photo,
-            location=loc,
-            reply=reply
-        )
+            review.reply = None
         review.save()