def create_test_contribution(funder_id, land_listing_id, fund_id): contribution = Contribution(funder_id=funder_id, land_listing_id=land_listing_id, fund_id=fund_id, date=datetime.date.today(), amount=10.25) contribution.insert() return str(contribution.id)
def contribute_to_fund(land_listing_id, fund_id): body = request.get_json() amount = body.get('amount', None) funder_id = body.get('funder_id', None) try: amount = float(amount) except Exception: abort(422) land_listing = LandListing.query.get(land_listing_id) fund = Fund.query.get(fund_id) funder = Funder.query.get(funder_id) if (land_listing is None) or (fund is None) or (funder is None): abort(404) land_listing_fund_ids = [fund.id for fund in land_listing.funds] if fund_id not in land_listing_fund_ids: abort(422) try: new_contribution = Contribution(funder_id=funder.id, land_listing_id=land_listing.id, fund_id=fund.id, date=datetime.date.today(), amount=amount) new_contribution.insert() return jsonify({ 'success': True, 'contribution': new_contribution.format(), }), 200 except Exception: abort(422)