fix(db): switch java dao to runtime query_as for CI build compatibility
This commit is contained in:
parent
7ba19da764
commit
130daf7c34
1 changed files with 43 additions and 63 deletions
|
|
@ -14,94 +14,74 @@ pub async fn insert(
|
|||
is_jdk: bool,
|
||||
probe_version: u32,
|
||||
) -> Result<JavaVersionRow, DbError> {
|
||||
sqlx::query_as!(
|
||||
JavaVersionRow,
|
||||
let row = sqlx::query_as::<_, JavaVersionRow>(
|
||||
r#"
|
||||
INSERT INTO java_versions (absolute_path, major, version, vendor, os_arch, is_jdk, probe_version)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(absolute_path) DO UPDATE SET
|
||||
major = excluded.major,
|
||||
version = excluded.version,
|
||||
vendor = excluded.vendor,
|
||||
os_arch = excluded.os_arch,
|
||||
is_jdk = excluded.is_jdk,
|
||||
probe_version = excluded.probe_version
|
||||
RETURNING absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version
|
||||
"#,
|
||||
absolute_path,
|
||||
i64::from(major),
|
||||
version,
|
||||
vendor,
|
||||
os_arch,
|
||||
is_jdk,
|
||||
i64::from(probe_version),
|
||||
INSERT INTO java_versions (absolute_path, major, version, vendor, os_arch, is_jdk, probe_version)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?)
|
||||
ON CONFLICT(absolute_path) DO UPDATE SET
|
||||
major = excluded.major,
|
||||
version = excluded.version,
|
||||
vendor = excluded.vendor,
|
||||
os_arch = excluded.os_arch,
|
||||
is_jdk = excluded.is_jdk,
|
||||
probe_version = excluded.probe_version
|
||||
RETURNING absolute_path, major, version, vendor, os_arch, is_jdk, probe_version
|
||||
"#,
|
||||
)
|
||||
.bind(absolute_path)
|
||||
.bind(i64::from(major))
|
||||
.bind(version)
|
||||
.bind(vendor)
|
||||
.bind(os_arch)
|
||||
.bind(is_jdk)
|
||||
.bind(i64::from(probe_version))
|
||||
.fetch_one(pool)
|
||||
.await
|
||||
.map_err(Into::into)
|
||||
.await?;
|
||||
|
||||
Ok(row)
|
||||
}
|
||||
|
||||
pub async fn get_by_path(
|
||||
pub async fn get_by_absolute_path(
|
||||
pool: &SqlitePool,
|
||||
absolute_path: &str,
|
||||
) -> Result<Option<JavaVersionRow>, DbError> {
|
||||
let row = sqlx::query_as!(
|
||||
JavaVersionRow,
|
||||
let row = sqlx::query_as::<_, JavaVersionRow>(
|
||||
r#"
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version
|
||||
FROM java_versions
|
||||
WHERE absolute_path = ?
|
||||
"#,
|
||||
absolute_path,
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version
|
||||
FROM java_versions
|
||||
WHERE absolute_path = ?
|
||||
"#,
|
||||
)
|
||||
.bind(absolute_path)
|
||||
.fetch_optional(pool)
|
||||
.await?;
|
||||
|
||||
Ok(row)
|
||||
}
|
||||
|
||||
pub async fn get_latest_by_major(
|
||||
pool: &SqlitePool,
|
||||
major: u32,
|
||||
) -> Result<Option<JavaVersionRow>, DbError> {
|
||||
let row = sqlx::query_as!(
|
||||
JavaVersionRow,
|
||||
pub async fn get_by_major(pool: &SqlitePool, major: u32) -> Result<Option<JavaVersionRow>, DbError> {
|
||||
let row = sqlx::query_as::<_, JavaVersionRow>(
|
||||
r#"
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version
|
||||
FROM java_versions
|
||||
WHERE major = ?
|
||||
ORDER BY version DESC
|
||||
LIMIT 1
|
||||
"#,
|
||||
i64::from(major)
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version
|
||||
FROM java_versions
|
||||
WHERE major = ?
|
||||
ORDER BY probe_version DESC, is_jdk DESC
|
||||
LIMIT 1
|
||||
"#,
|
||||
)
|
||||
.bind(i64::from(major))
|
||||
.fetch_optional(pool)
|
||||
.await?;
|
||||
|
||||
Ok(row)
|
||||
}
|
||||
|
||||
pub async fn delete_by_path(pool: &SqlitePool, absolute_path: &str) -> Result<(), DbError> {
|
||||
sqlx::query!(
|
||||
pub async fn get_all(pool: &SqlitePool) -> Result<Vec<JavaVersionRow>, DbError> {
|
||||
let rows = sqlx::query_as::<_, JavaVersionRow>(
|
||||
r#"
|
||||
DELETE FROM java_versions WHERE absolute_path = ?
|
||||
"#,
|
||||
absolute_path,
|
||||
)
|
||||
.execute(pool)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn list_all(pool: &SqlitePool) -> Result<Vec<JavaVersionRow>, DbError> {
|
||||
let rows = sqlx::query_as!(
|
||||
JavaVersionRow,
|
||||
r#"
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk as "is_jdk: bool", probe_version
|
||||
FROM java_versions
|
||||
ORDER BY major DESC, version DESC
|
||||
"#,
|
||||
SELECT absolute_path, major, version, vendor, os_arch, is_jdk, probe_version
|
||||
FROM java_versions
|
||||
"#,
|
||||
)
|
||||
.fetch_all(pool)
|
||||
.await?;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue