From 48fe1c78e731e34f24eadb274a45949832f259ee Mon Sep 17 00:00:00 2001 From: oiupoyt Date: Thu, 27 Aug 2026 16:04:50 +0530 Subject: [PATCH] fix(db): implement get_by_path, get_latest_by_major, delete_by_path, and list_all --- packages/oneclient_db/src/dao/java.rs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/packages/oneclient_db/src/dao/java.rs b/packages/oneclient_db/src/dao/java.rs index 9b43e09d..2a42485c 100644 --- a/packages/oneclient_db/src/dao/java.rs +++ b/packages/oneclient_db/src/dao/java.rs @@ -41,7 +41,7 @@ RETURNING absolute_path, major, version, vendor, os_arch, is_jdk, probe_version Ok(row) } -pub async fn get_by_absolute_path( +pub async fn get_by_path( pool: &SqlitePool, absolute_path: &str, ) -> Result, DbError> { @@ -59,7 +59,10 @@ WHERE absolute_path = ? Ok(row) } -pub async fn get_by_major(pool: &SqlitePool, major: u32) -> Result, DbError> { +pub async fn get_latest_by_major( + pool: &SqlitePool, + major: u32, +) -> Result, DbError> { let row = sqlx::query_as::<_, JavaVersionRow>( r#" SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version @@ -76,7 +79,24 @@ LIMIT 1 Ok(row) } -pub async fn get_all(pool: &SqlitePool) -> Result, DbError> { +pub async fn delete_by_path( + pool: &SqlitePool, + absolute_path: &str, +) -> Result<(), DbError> { + sqlx::query( + r#" +DELETE FROM java_versions +WHERE absolute_path = ? +"#, + ) + .bind(absolute_path) + .execute(pool) + .await?; + + Ok(()) +} + +pub async fn list_all(pool: &SqlitePool) -> Result, DbError> { let rows = sqlx::query_as::<_, JavaVersionRow>( r#" SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version