55 lines
1.7 KiB
Rust
55 lines
1.7 KiB
Rust
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<AppState> {
|
|
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,
|
|
)),
|
|
)
|
|
}
|