コード例 #1
0
def create_listing_by_user(id):
    # Request Validation
    if g.current_user.id != id:
        abort(403)
    data = request.get_json() or {}
    # print(data)
    # if 'name' not in data:
    #    return bad_request('Must include listing\'s name')
    # if User.query.filter_by(username=data['name']).first():
    #    return bad_request('please use a different username')
    # print(data)
    #print('space: ', data['spaces'], type(data['spaces']))
    listing = Listing()

    print(listing.id)
    listing.user_id = id
    listing.from_dict(data, new_listing=True)
    if 'spaces' in data:
        listing.spaces = str(data['spaces'])
    if 'amenities' in data:
        listing.amenities = str(data['amenities'])
    if 'house_rules' in data:
        listing.house_rules = str(data['house_rules'])
    if 'completed' in data:
        listing.completed = str(data['completed'])
    db.session.add(listing)
    db.session.commit()

    if 'sleeping_arrangements' in data:
        # print(data['sleeping_arrangements'])
        for room_id, room in enumerate(data['sleeping_arrangements']):
            for type, number in room.items():
                _ = ListingSleepArgm()
                _.listing_id = listing.id
                _.argm_type = type
                _.number = number
                _.room_id = room_id
                db.session.add(_)
    db.session.commit()
    # Create return value for request
    response = jsonify(listing.to_dict())
    response.status_code = 201
    #response.headers['Location'] = url_for('api.get_listing', id=listing.id)
    return response
コード例 #2
0
def new_listing():
    form = ListingForm()
    print(form.name.data)
    form['csrf_token'].data = request.cookies['csrf_token']
    if form.validate_on_submit():
        new_listing = Listing(
            name=form.name.data,
            description=form.description.data,
            image_1=form.image_1.data,
            image_2=form.image_2.data,
            image_3=form.image_3.data,
            category_id=form.category_id.data,
            shop_id=form.shop_id.data,
            price=form.price.data,
        )
        db.session.add(new_listing)
        db.session.commit()
        return new_listing.to_dict()
    else:
        return {"errors": "invalid submission"}