use std::sync::Arc;
use axum::routing::{get, post};
use axum::Router;
use super::handlers::{add_auth_key_handler, delete_auth_key_handler, generate_auth_key_handler, reload_keys_handler};
use crate::core::Tracker;
pub fn add(prefix: &str, router: Router, tracker: Arc<Tracker>) -> Router {
router
.route(
&format!("{prefix}/key/:seconds_valid_or_key"),
post(generate_auth_key_handler)
.with_state(tracker.clone())
.delete(delete_auth_key_handler)
.with_state(tracker.clone()),
)
.route(
&format!("{prefix}/keys/reload"),
get(reload_keys_handler).with_state(tracker.clone()),
)
.route(&format!("{prefix}/keys"), post(add_auth_key_handler).with_state(tracker))
}