def api_create_property(context, request): street_info = request.json_body.get("address") city = request.json_body.get("city") state = request.json_body.get("state") zip = request.json_body.get("zip") num, sep, street = street_info.partition(" ") property = Property() property.street_number = int(num) property.street_name = street property.city = city property.state = state property.zip = int(zip) DBSession.add(property) DBSession.flush() return property
def api_create_review(context, request): property_id = context.__parent__.property_id user_id = request.cookies.get("user_id", 1) manager_name = request.json_body.get("manager") rating_kitchen = int(request.json_body.get("rating_kitchen")) rating_bedroom = int(request.json_body.get("rating_bedroom")) rating_bathroom = int(request.json_body.get("rating_bathroom")) rating_area = int(request.json_body.get("rating_area")) rent = request.json_body.get("rent") tag_ids = request.json_body.get("tag_ids") avg_sum = 0 avg_total = 0 if rating_kitchen is not None: avg_sum += rating_kitchen avg_total += 1 if rating_bedroom is not None: avg_sum += rating_bedroom avg_total += 1 if rating_bathroom is not None: avg_sum += rating_bathroom avg_total += 1 if rating_area is not None: avg_sum += rating_area avg_total += 1 if avg_total > 0: rating_avg = avg_sum / avg_total else: rating_avg = None text = request.json_body.get("text") q = DBSession.query(Manager) q = q.filter(func.lower(Manager.name).like("%%%s%%" % manager_name.lower())) manager = q.scalar() if manager is None: manager = Manager() manager.name = manager_name DBSession.add(manager) DBSession.flush() review = Review() review.user_id = user_id review.property_id = property_id review.manager = manager review.rating_kitchen = rating_kitchen review.rating_bathroom = rating_bathroom review.rating_bedroom = rating_bedroom review.rating_area = rating_area review.rating_average = rating_avg review.rent = rent review.text = text review.date = datetime.datetime.now() for tag_id in tag_ids: q = DBSession.query(Tag) q = q.filter(Tag.id == tag_id) tag = q.scalar() if tag is not None: review.tags.append(tag) DBSession.add(review) DBSession.flush() return {}