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;
|
2025-12-08 21:36:37 +01:00
|
|
|
use crate::http::handlers::{versions, catalog, manifest, file, info, publisher};
|
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 21:36:37 +01:00
|
|
|
.route("/{publisher}/catalog/1/{filename}", get(catalog::get_catalog_v1))
|
2025-12-08 20:50:20 +01:00
|
|
|
.route("/{publisher}/manifest/0/{fmri}", get(manifest::get_manifest))
|
2025-12-08 21:36:37 +01:00
|
|
|
.route("/{publisher}/manifest/1/{fmri}", get(manifest::get_manifest))
|
2025-12-08 20:50:20 +01:00
|
|
|
.route("/{publisher}/file/0/{algo}/{digest}", get(file::get_file))
|
2025-12-08 21:36:37 +01:00
|
|
|
.route("/{publisher}/file/1/{algo}/{digest}", get(file::get_file))
|
2025-12-08 20:50:20 +01:00
|
|
|
.route("/{publisher}/info/0/{fmri}", get(info::get_info))
|
2025-12-08 21:36:37 +01:00
|
|
|
.route("/{publisher}/publisher/0", get(publisher::get_publisher_v0))
|
|
|
|
|
.route("/{publisher}/publisher/1", get(publisher::get_publisher_v1))
|
2025-12-08 20:50:20 +01:00
|
|
|
.with_state(state)
|
2025-12-08 20:11:05 +01:00
|
|
|
}
|