use axum::{ Router, middleware, routing::{get, post}, }; use crate::{ assets::{ bind_asset_object_to_entity, confirm_asset_object, create_direct_upload_ticket, create_sts_upload_credentials, get_asset_history, get_asset_read_bytes, get_asset_read_url, }, auth::require_bearer_auth, state::AppState, }; pub fn router(state: AppState) -> Router { Router::new() .route( "/api/assets/direct-upload-tickets", post(create_direct_upload_ticket).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) .route( "/api/assets/sts-upload-credentials", post(create_sts_upload_credentials).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) .route( "/api/assets/objects/confirm", post(confirm_asset_object).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) .route( "/api/assets/objects/bind", post(bind_asset_object_to_entity).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) .route("/api/assets/read-url", get(get_asset_read_url)) .route("/api/assets/read-bytes", get(get_asset_read_bytes)) .route( "/api/assets/history", get(get_asset_history).route_layer(middleware::from_fn_with_state( state.clone(), require_bearer_auth, )), ) }