add version + arch api

This commit is contained in:
JMARyA 2025-06-28 04:03:44 +02:00
parent 6449f9c1f1
commit 2544143809
Signed by: jmarya
GPG key ID: 901B2ADDF27C2263

View file

@ -14,10 +14,21 @@ use serde_json::json;
use super::take_out; use super::take_out;
/// Package API Endpoint /// Package API Endpoint
#[get("/json/pkg/<repo>/<pkg_name>")] #[get("/json/pkg/<repo>/<pkg_name>?<ver>&<arch>")]
pub async fn pkg_json(repo: &str, pkg_name: &str) -> serde_json::Value { 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 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 versions = pkg.versions();
let version = pkg.version.clone(); let version = pkg.version.clone();