120 lines
4.2 KiB
Rust
120 lines
4.2 KiB
Rust
use axum::{
|
|
Router, middleware,
|
|
routing::{delete, get, post},
|
|
};
|
|
|
|
use crate::{
|
|
auth::require_bearer_auth,
|
|
big_fish::{
|
|
create_big_fish_session, delete_big_fish_work, execute_big_fish_action, get_big_fish_run,
|
|
get_big_fish_session, get_big_fish_works, list_big_fish_gallery,
|
|
record_big_fish_gallery_like, record_big_fish_play, remix_big_fish_gallery_work,
|
|
start_big_fish_run, stream_big_fish_message, submit_big_fish_input,
|
|
submit_big_fish_message,
|
|
},
|
|
state::AppState,
|
|
};
|
|
|
|
pub fn router(state: AppState) -> Router<AppState> {
|
|
Router::new()
|
|
.route(
|
|
"/api/runtime/big-fish/agent/sessions",
|
|
post(create_big_fish_session).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/agent/sessions/{session_id}",
|
|
get(get_big_fish_session).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/agent/sessions/{session_id}/messages",
|
|
post(submit_big_fish_message).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/agent/sessions/{session_id}/messages/stream",
|
|
post(stream_big_fish_message).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/agent/sessions/{session_id}/actions",
|
|
post(execute_big_fish_action).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/works",
|
|
get(get_big_fish_works).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route("/api/runtime/big-fish/gallery", get(list_big_fish_gallery))
|
|
.route(
|
|
"/api/runtime/big-fish/gallery/{session_id}/remix",
|
|
post(remix_big_fish_gallery_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/gallery/{session_id}/like",
|
|
post(record_big_fish_gallery_like).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/works/{session_id}",
|
|
delete(delete_big_fish_work).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/sessions/{session_id}/play",
|
|
post(record_big_fish_play).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/works/{session_id}/play",
|
|
post(record_big_fish_play).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/sessions/{session_id}/runs",
|
|
post(start_big_fish_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/runs/{run_id}",
|
|
get(get_big_fish_run).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
.route(
|
|
"/api/runtime/big-fish/runs/{run_id}/input",
|
|
post(submit_big_fish_input).route_layer(middleware::from_fn_with_state(
|
|
state.clone(),
|
|
require_bearer_auth,
|
|
)),
|
|
)
|
|
}
|