Pass api_routes into server::run from the call site
Consistent with ci_routes, which are constructed in main so the caller
can conditionally apply auth middleware. server::run now just merges
whatever routers it receives.
diff --git a/quire-server/src/bin/quire/commands/serve.rs b/quire-server/src/bin/quire/commands/serve.rs
index a187fa3..f91725c 100644
--- a/quire-server/src/bin/quire/commands/serve.rs
+++ b/quire-server/src/bin/quire/commands/serve.rs
@@ -2,6 +2,6 @@ use miette::Result;
use quire::Quire;
-pub async fn run(quire: &Quire, ci_routes: axum::Router) -> Result<()> {
- crate::server::run(quire, ci_routes).await
+pub async fn run(quire: &Quire, ci_routes: axum::Router, api_routes: axum::Router) -> Result<()> {
+ crate::server::run(quire, ci_routes, api_routes).await
}
diff --git a/quire-server/src/bin/quire/main.rs b/quire-server/src/bin/quire/main.rs
index 8a9cf1b..70d09ec 100644
--- a/quire-server/src/bin/quire/main.rs
+++ b/quire-server/src/bin/quire/main.rs
@@ -179,7 +179,8 @@ async fn main() -> Result<()> {
quire::quire::web::auth::require_auth,
))
};
- commands::serve::run(&quire, ci_routes).await?
+ let api_routes = quire::quire::web::api::router(quire.clone());
+ commands::serve::run(&quire, ci_routes, api_routes).await?
}
Commands::Exec { command } => commands::exec::run(&quire, command).await?,
Commands::Hook { hook_name } => commands::hook::run(&quire, hook_name).await?,
diff --git a/quire-server/src/bin/quire/server.rs b/quire-server/src/bin/quire/server.rs
index 639d9fc..8846d77 100644
--- a/quire-server/src/bin/quire/server.rs
+++ b/quire-server/src/bin/quire/server.rs
@@ -16,7 +16,7 @@ async fn index() -> String {
format!("quire {}\n", crate::VERSION)
}
-pub async fn run(quire: &Quire, ci_routes: axum::Router) -> Result<()> {
+pub async fn run(quire: &Quire, ci_routes: axum::Router, api_routes: axum::Router) -> Result<()> {
let config = quire.global_config()?;
let addr = SocketAddr::from(([0, 0, 0, 0], config.port));
@@ -52,7 +52,6 @@ pub async fn run(quire: &Quire, ci_routes: axum::Router) -> Result<()> {
let quire_handle = quire.clone();
let event_handle = tokio::spawn(event_listener(listener, quire_handle));
- let api_routes = quire::quire::web::api::router(quire.clone());
let app = Router::new()
.route("/health", get(health))
.route("/", get(index))