def pay_for_reservation(event_id, reservation_token) -> Response: payment_token = request.json['payment_token'] ticket = db.session.query(Ticket).filter_by( token=reservation_token).first() reservation = ticket.reservations[0] payment = Payment(reservation=reservation) try: payment_result = PaymentGateway().charge(100, payment_token) payment.completed = True except (CardError, PaymentError, CurrencyError): pass db.session.add(payment) db.session.commit() return jsonify({ "paid": payment.completed, "event": ticket.event.to_dict(), "ticket_type": ticket.ticket_type.name })