From 278098b7e2247bb84070436d809cd4edce6f5f80 Mon Sep 17 00:00:00 2001 From: Emma Alexia Date: Sat, 24 May 2025 12:18:58 -0400 Subject: [PATCH] Automatically fail payments that are older than 30 days --- ...d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0.json | 15 +++++++++++++++ apps/labrinth/src/queue/payouts.rs | 12 ++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 apps/labrinth/.sqlx/query-33893ae0a7d244c33b489e4d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0.json diff --git a/apps/labrinth/.sqlx/query-33893ae0a7d244c33b489e4d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0.json b/apps/labrinth/.sqlx/query-33893ae0a7d244c33b489e4d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0.json new file mode 100644 index 000000000..dbc44c235 --- /dev/null +++ b/apps/labrinth/.sqlx/query-33893ae0a7d244c33b489e4d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "\n UPDATE payouts\n SET status = $1\n WHERE status = $2 AND created < NOW() - INTERVAL '30 days'\n ", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Varchar", + "Text" + ] + }, + "nullable": [] + }, + "hash": "33893ae0a7d244c33b489e4d4fa444fa17a6bb5b7a834794a5482f4dc85c6ce0" +} diff --git a/apps/labrinth/src/queue/payouts.rs b/apps/labrinth/src/queue/payouts.rs index d4659e9b2..b6e950317 100644 --- a/apps/labrinth/src/queue/payouts.rs +++ b/apps/labrinth/src/queue/payouts.rs @@ -735,6 +735,18 @@ pub async fn process_payout( pool: &PgPool, client: &clickhouse::Client, ) -> Result<(), ApiError> { + sqlx::query!( + " + UPDATE payouts + SET status = $1 + WHERE status = $2 AND created < NOW() - INTERVAL '30 days' + ", + crate::models::payouts::PayoutStatus::Failed.as_str(), + crate::models::payouts::PayoutStatus::InTransit.as_str(), + ) + .execute(pool) + .await?; + let start: DateTime = DateTime::from_naive_utc_and_offset( (Utc::now() - Duration::days(1)) .date_naive()