From 6d644d015635bd569b79089b83aa5783cefa9159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Mon, 20 Jul 2026 20:32:03 +0200 Subject: [PATCH] multidb --- src/api.rs | 18 +++++++----------- src/queries.rs | 3 +++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/api.rs b/src/api.rs index fee1696..f444947 100644 --- a/src/api.rs +++ b/src/api.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Serialize}; use slug::slugify; use crate::{ - db, + db, queries, state::{NoteUpdate, SharedState}, }; @@ -214,12 +214,10 @@ pub async fn restore( Json(payload): Json, ) -> Result, ApiError> { let (workspace, note) = authorized_note(&state, &workspace_slug, ¬e_slug, payload.password.as_deref()).await?; - let content: Option = sqlx::query_scalar( - "SELECT content FROM note_revisions WHERE id = ? AND note_id = ?", - ) + let content: Option = sqlx::query_scalar(queries::get(state.db.kind(), queries::Q028)) .bind(payload.revision_id) .bind(note.id) - .fetch_optional(&state.db) + .fetch_optional(state.db.pool()) .await?; let content = content.ok_or_else(ApiError::not_found_revision)?; let (revision_id, updated_at) = @@ -445,18 +443,16 @@ pub async fn pad_restore( Json(payload): Json, ) -> Result, ApiError> { let pad = authorized_pad(&state, &slug, payload.password.as_deref()).await?; - let content: Option = sqlx::query_scalar( - "SELECT content FROM revisions WHERE id = ? AND pad_id = ?", - ) + let content: Option = sqlx::query_scalar(queries::get(state.db.kind(), queries::Q029)) .bind(payload.revision_id) .bind(pad.id) - .fetch_optional(&state.db) + .fetch_optional(state.db.pool()) .await?; let content = content.ok_or_else(ApiError::not_found_revision)?; - let owner_map: Option = sqlx::query_scalar("SELECT owner_map FROM revisions WHERE id = ? AND pad_id = ?") + let owner_map: Option = sqlx::query_scalar(queries::get(state.db.kind(), queries::Q030)) .bind(payload.revision_id) .bind(pad.id) - .fetch_optional(&state.db) + .fetch_optional(state.db.pool()) .await?; let owner_map = owner_map.unwrap_or_else(|| "[]".into()); let (revision_id, updated_at) = db::save_pad_revision(&state.db, pad.id, &content, Some("restore"), &owner_map).await?; diff --git a/src/queries.rs b/src/queries.rs index 561321b..3d2d82f 100644 --- a/src/queries.rs +++ b/src/queries.rs @@ -28,6 +28,9 @@ pub const Q024: &str = "SELECT file_token FROM notes WHERE id = ?"; pub const Q025: &str = "UPDATE notes SET file_token = ? WHERE id = ? AND file_token IS NULL"; pub const Q026: &str = "SELECT id FROM pads WHERE file_token = ?"; pub const Q027: &str = "SELECT id FROM notes WHERE file_token = ?"; +pub const Q028: &str = "SELECT content FROM note_revisions WHERE id = ? AND note_id = ?"; +pub const Q029: &str = "SELECT content FROM revisions WHERE id = ? AND pad_id = ?"; +pub const Q030: &str = "SELECT owner_map FROM revisions WHERE id = ? AND pad_id = ?"; static POSTGRES_QUERIES: OnceLock>> = OnceLock::new();