From 2544143809b3caa11cb5578ede7bf4d823dd46f9 Mon Sep 17 00:00:00 2001 From: JMARyA Date: Sat, 28 Jun 2025 04:03:44 +0200 Subject: [PATCH] add version + arch api --- src/routes/ui/pkg.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/routes/ui/pkg.rs b/src/routes/ui/pkg.rs index 353ab85..8c95674 100644 --- a/src/routes/ui/pkg.rs +++ b/src/routes/ui/pkg.rs @@ -14,10 +14,21 @@ use serde_json::json; use super::take_out; /// Package API Endpoint -#[get("/json/pkg//")] -pub async fn pkg_json(repo: &str, pkg_name: &str) -> serde_json::Value { +#[get("/json/pkg//?&")] +pub async fn pkg_json(repo: &str, pkg_name: &str, ver: Option<&str>, arch: Option<&str>) -> serde_json::Value { let repository = Repository::new(repo).unwrap(); - let pkg = repository.get_pkg_by_name(pkg_name).unwrap(); + let mut pkg = repository.get_pkg_by_name(pkg_name).unwrap(); + + if let Some(ver) = ver { + let (version, rel) = Package::version(ver); + pkg = pkg.get_version(&version); + pkg.rel = rel; + } + + if let Some(arch) = arch { + let arch = Architecture::parse(arch).unwrap(); + pkg = pkg.switch_arch(arch); + } let versions = pkg.versions(); let version = pkg.version.clone();