Beispiel #1
0
def post_review(request):
	post_obj = json.loads(request.body)
	title, description, safety, rating, building_id = None, None, None, None, None
	user = request.user
	if 'title' in post_obj:
		title = post_obj['title']
	if 'description' in post_obj:
		description = post_obj['description']
	if 'safety' in post_obj:
		safety = post_obj['safety']
	if 'rating' in post_obj:
		rating = post_obj['rating']
	if 'building_id' in post_obj:
		building_id = post_obj['building_id']
	errors = check_post_review_errors(title, description, safety, rating, building_id, user)
	if len(errors) > 0:
		return utils.makeGenericErrorResponse(errors)
	building = models.Building.objects.get(id=building_id)
	num_reviews = models.Review.objects.filter(building=building_id).count()
	review = models.Review(title=title, description=description, safety=safety, rating=rating, user=user, building=building)
	review.save()
	building.average_rating = (building.average_rating * num_reviews + review.rating) / float(num_reviews+1)
	building.save()
	review_dict = get_review_dict_from_obj(review)
	return utils.success_response({'status': 1, 'review': review_dict, 'new_rating': building.average_rating})
Beispiel #2
0
def get_review(request, http=True):	
	obj = request.GET
	building_id = obj.get('building_id')
	if building_id == None:
		return utils.makeGenericErrorResponse(["Invalid Building ID"])
	building = models.Building.objects.filter(id=building_id)
	reviews_obj = models.Review.objects.filter(building=building)
	return getValidReviewResponse(reviews_obj)