From 162b836d3a4d366eec80706afe79d2fa0ac71db9 Mon Sep 17 00:00:00 2001 From: lukas-heiligenbrunner Date: Fri, 14 Feb 2025 23:47:46 +0100 Subject: [PATCH] fix package fetch after delete fix division by 0 in stats --- backend/src/api/package.rs | 11 ++++++----- backend/src/api/stats.rs | 10 +++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/backend/src/api/package.rs b/backend/src/api/package.rs index b9fccb9..6706649 100644 --- a/backend/src/api/package.rs +++ b/backend/src/api/package.rs @@ -178,19 +178,20 @@ pub async fn package_del( ) -> Result<(), BadRequest> { let db = db as &DatabaseConnection; - package_delete(db, id) - .await - .map_err(|e| BadRequest(e.to_string()))?; - + // query this before deleting package! let pkg = Packages::find_by_id(id) .one(db) .await .map_err(|e| BadRequest(e.to_string()))? .ok_or(BadRequest("id not found".to_string()))?; + package_delete(db, id) + .await + .map_err(|e| BadRequest(e.to_string()))?; + al.add( PackageDeleteActivity { package: pkg.name }, - ActivityType::UpdatePackage, + ActivityType::RemovePackage, a.username, ) .await diff --git a/backend/src/api/stats.rs b/backend/src/api/stats.rs index 3fffe7e..80bf159 100644 --- a/backend/src/api/stats.rs +++ b/backend/src/api/stats.rs @@ -210,9 +210,13 @@ SELECT .await? .ok_or(anyhow::anyhow!("No last build cnts"))?; - let build_trend = (last_build_cnt.last_30_days_builds as f32 - / last_build_cnt.prev_30_days_builds as f32) - - 1.0; + let build_trend = match last_build_cnt.prev_30_days_builds { + 0 => 0.0, + _ => { + (last_build_cnt.last_30_days_builds as f32 / last_build_cnt.prev_30_days_builds as f32) + - 1.0 + } + }; Ok(ListStats { total_builds,