From 5a356e65a73ff39e60f205e194daf3518d78cb20 Mon Sep 17 00:00:00 2001 From: lukas-heiligenbrunner Date: Tue, 2 Jan 2024 19:56:39 +0100 Subject: [PATCH] init latest_aur_version and make it non option --- backend/src/api/add.rs | 9 +++++---- backend/src/api/list.rs | 4 ++-- backend/src/db/packages.rs | 2 +- backend/src/scheduler/aur_version_update.rs | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/backend/src/api/add.rs b/backend/src/api/add.rs index 6855a47..fa34c37 100644 --- a/backend/src/api/add.rs +++ b/backend/src/api/add.rs @@ -28,6 +28,10 @@ pub async fn package_add( ) -> Result<(), BadRequest> { let db = db as &DatabaseConnection; + let pkg = get_info_by_name(input.name.clone().as_str()) + .await + .map_err(|_| BadRequest(Some("couldn't download package metadata".to_string())))?; + let mut pkg_model = match Packages::find() .filter(packages::Column::Name.eq(input.name.clone())) .one(db) @@ -38,6 +42,7 @@ pub async fn package_add( let new_package = packages::ActiveModel { name: Set(input.name.clone()), status: Set(0), + latest_aur_version: Set(pkg.version.clone()), ..Default::default() }; @@ -46,10 +51,6 @@ pub async fn package_add( Some(p) => p.into(), }; - let pkg = get_info_by_name(input.name.clone().as_str()) - .await - .map_err(|_| BadRequest(Some("couldn't download package metadata".to_string())))?; - let version_model = match Versions::find() .filter(versions::Column::Version.eq(pkg.version.clone())) .one(db) diff --git a/backend/src/api/list.rs b/backend/src/api/list.rs index 7276dc2..de5a748 100644 --- a/backend/src/api/list.rs +++ b/backend/src/api/list.rs @@ -54,7 +54,7 @@ pub struct ListPackageModel { #[get("/packages/list")] pub async fn package_list( db: &State, -) -> Result>, String> { +) -> Result>, NotFound> { let db = db as &DatabaseConnection; let all: Vec = Packages::find() @@ -70,7 +70,7 @@ pub async fn package_list( .into_model::() .all(db) .await - .unwrap(); + .map_err(|e| NotFound(e.to_string()))?; Ok(Json(all)) } diff --git a/backend/src/db/packages.rs b/backend/src/db/packages.rs index 2a962b8..fde72d2 100644 --- a/backend/src/db/packages.rs +++ b/backend/src/db/packages.rs @@ -14,7 +14,7 @@ pub struct Model { pub status: i32, pub out_of_date: i32, pub latest_version_id: Option, - pub latest_aur_version: Option, + pub latest_aur_version: String, } impl ActiveModelBehavior for ActiveModel {} diff --git a/backend/src/scheduler/aur_version_update.rs b/backend/src/scheduler/aur_version_update.rs index 65760e8..0fa445f 100644 --- a/backend/src/scheduler/aur_version_update.rs +++ b/backend/src/scheduler/aur_version_update.rs @@ -46,7 +46,7 @@ async fn aur_check_versions(db: DatabaseConnection) -> anyhow::Result<()> { Some(result) => { let mut package: packages::ActiveModel = package.into(); - package.latest_aur_version = Set(Some(result.version.clone())); + package.latest_aur_version = Set(result.version.clone()); let _ = package.update(&db).await; } }