use axum::{
routing::{delete, get, post},
Router,
};
use super::cookie;
use super::grant;
use crate::client_server::auth::AuthState;
pub fn base_router(auth_state: AuthState) -> Router<()> {
Router::new()
.route("/signup", post(cookie::routes::signup))
.route("/session", post(cookie::routes::signin))
.route("/auth/grant/signup", post(grant::routes::signup))
.route(
"/auth/grant/session",
post(grant::routes::create_grant_session),
)
.with_state(auth_state)
}
pub fn tenant_router(auth_state: AuthState) -> Router<()> {
let cookie_routes = Router::new().route(
"/session",
get(cookie::routes::get_session).delete(cookie::routes::signout),
);
let grant_routes = Router::new()
.route(
"/auth/grant/session",
get(grant::routes::get_session).delete(grant::routes::signout),
)
.route("/auth/grant/sessions", get(grant::routes::list_grants))
.route(
"/auth/grant/session/{gid}",
delete(grant::routes::revoke_grant),
);
cookie_routes.merge(grant_routes).with_state(auth_state)
}