use axum::{extract::DefaultBodyLimit, routing::get, Router};
use crate::core::{layers::authz::AuthorizationLayer, AppState};
pub mod read;
pub mod session;
pub mod write;
pub fn router(state: AppState) -> Router<AppState> {
Router::new()
.route("/session", get(session::session).delete(session::signout))
.route(
"/{*path}",
get(read::get)
.head(read::head)
.put(write::put)
.delete(write::delete),
)
.layer(DefaultBodyLimit::max(100 * 1024 * 1024))
.layer(AuthorizationLayer::new(state.clone()))
}