From ba7e96644640ac7ec0e39e45258aa36316e7ee39 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sat, 25 Oct 2025 19:44:54 +0200 Subject: [PATCH] Reject duplicate service token on create --- src/views.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/views.rs b/src/views.rs index 3e7c6e7..a0fe156 100644 --- a/src/views.rs +++ b/src/views.rs @@ -113,6 +113,21 @@ async fn create_service(db: Database, Json(data): Json) -> im return StatusCode::PAYMENT_REQUIRED.into_response(); }; + let token_exists = sqlx::query_scalar!( + r#" + SELECT EXISTS(SELECT 1 FROM services WHERE token = $1) + "#, + token + ) + .fetch_one(&db.0) + .await + .unwrap_or(Some(false)) + .unwrap(); + + if token_exists { + return StatusCode::CONFLICT.into_response(); + } + let service = sqlx::query_as!( Service, r#"