@@ -4,3 +4,4 @@
.env
documentation.html
redoc-static.html
+bugs.txt
@@ -59,6 +59,6 @@ async fn handle_failure(event: Event, db: &PgPool) -> Result<(), HttpError> {
_ => {return Err(HttpError::InvalidInput("No payment intent ID".into()))}
};
- Purchase::update_status(db, id, Status::Succeeded).await?;
+ Purchase::update_status(db, id, Status::Failed).await?;
Ok(())
}
@@ -104,10 +104,12 @@ impl Purchase {
let purchase = sqlx::query_as::<_, Purchase>(
"UPDATE purchases
SET status = $1
- WHERE stripe_id = $2"
+ WHERE stripe_id = $2
+ AND status = 'Pending'
+ RETURNING *"
)
- .bind(stripe_id)
.bind(status.to_string())
+ .bind(stripe_id)
.fetch_optional(db)
.await?;