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
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"}