Пример #1
0
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
Пример #2
0
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 {}