30 lines
734 B
Rust

use axum::{
routing::{get, post},
Router,
};
use tower_cookies::CookieManagerLayer;
use crate::state::RoutableAppState;
mod authorize;
mod index;
mod login;
mod logout;
/// Build a router for the application, in a specific subpath eg `/yunohost/sso/`
pub fn router(subpath: Option<String>, state: RoutableAppState) -> Router {
let app = Router::new()
.route("/", get(index::route))
.route("/login/", post(login::route))
.route("/logout/", get(logout::route))
.route("/authorize/", get(authorize::route))
.layer(CookieManagerLayer::new())
.with_state(state);
if let Some(p) = subpath {
Router::new()
.nest(&p, app)
} else {
app
}
}