feat: add presentation layer + bootstrap wiring for vertical slice

This commit is contained in:
2026-05-31 05:51:09 +02:00
parent 8c1a0e4519
commit 201eff717d
21 changed files with 726 additions and 51 deletions

View File

@@ -1,18 +1,32 @@
use crate::{
handlers::{auth, health},
handlers::{albums, assets, auth, health, storage},
openapi::openapi_router,
state::AppState,
};
use axum::{
Router,
routing::{get, post},
routing::{delete, get, post, put},
};
pub fn api_v1_router() -> Router<AppState> {
Router::new()
// auth
.route("/auth/register", post(auth::register))
.route("/auth/login", post(auth::login))
.route("/auth/me", get(auth::me))
// albums
.route("/albums", post(albums::create_album))
.route("/albums/:id", get(albums::get_album))
.route("/albums/:id/entries", post(albums::add_entry))
.route("/albums/:id/entries/:asset_id", delete(albums::remove_entry))
// assets
.route("/assets/ingest", post(assets::ingest))
.route("/assets/timeline", get(assets::timeline))
.route("/assets/:id", get(assets::get_asset))
.route("/assets/:id/metadata", put(assets::update_metadata))
// storage
.route("/storage/volumes", post(storage::register_volume))
.route("/storage/library-paths", post(storage::register_library_path))
}
pub fn app_router() -> Router<AppState> {