2025-12-08 20:11:05 +01:00
|
|
|
use axum::{
|
|
|
|
|
routing::get,
|
|
|
|
|
Router,
|
|
|
|
|
};
|
2025-12-08 20:50:20 +01:00
|
|
|
use std::sync::Arc;
|
|
|
|
|
use crate::repo::DepotRepo;
|
|
|
|
|
use crate::http::handlers::{versions, catalog, manifest, file, info};
|
2025-12-08 20:11:05 +01:00
|
|
|
|
2025-12-08 20:50:20 +01:00
|
|
|
pub fn app_router(state: Arc<DepotRepo>) -> Router {
|
2025-12-08 20:11:05 +01:00
|
|
|
Router::new()
|
|
|
|
|
.route("/versions/0/", get(versions::get_versions))
|
2025-12-08 20:50:20 +01:00
|
|
|
.route("/{publisher}/catalog/0/", get(catalog::get_catalog))
|
|
|
|
|
.route("/{publisher}/manifest/0/{fmri}", get(manifest::get_manifest))
|
|
|
|
|
.route("/{publisher}/file/0/{algo}/{digest}", get(file::get_file))
|
|
|
|
|
.route("/{publisher}/info/0/{fmri}", get(info::get_info))
|
|
|
|
|
.with_state(state)
|
2025-12-08 20:11:05 +01:00
|
|
|
}
|