This commit is contained in:
Brandon Thomas committed 2025-09-23 22:43:28 -04:00
1 parent 916730d0a1
commit b4ad2b72a5
9 files changed
+106 -98

No files matched your search

@@ -2,28 +2,10 @@ use actix_http::body::MessageBody;
use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::error::Error;
use actix_web::{web, App, HttpResponse};
use actix_web::App;
use actix_helpers::route_builder::RouteBuilder;
use billing_component::default_routes::add_suggested_stripe_billing_routes;
use reusable_types::server_environment::ServerEnvironment;
use crate::http_server::endpoints::app_state::get_app_state_handler::get_app_state_handler;
use crate::http_server::endpoints::comments::create_comment_handler::create_comment_handler;
use crate::http_server::endpoints::comments::delete_comment_handler::delete_comment_handler;
use crate::http_server::endpoints::comments::list_comments_handler::list_comments_handler;
use crate::http_server::endpoints::prompts::create_prompt_handler::create_prompt_handler;
use crate::http_server::endpoints::prompts::get_prompt_handler::get_prompt_handler;
use crate::http_server::endpoints::service::status_alert_handler::status_alert_handler;
use crate::http_server::endpoints::stats::get_unified_queue_stats_handler::get_unified_queue_stats_handler;
use crate::http_server::endpoints::user_bookmarks::batch_get_user_bookmarks_handler::batch_get_user_bookmarks_handler;
use crate::http_server::endpoints::user_bookmarks::create_user_bookmark_handler::create_user_bookmark_handler;
use crate::http_server::endpoints::user_bookmarks::delete_user_bookmark_handler::delete_user_bookmark_handler;
use crate::http_server::endpoints::user_bookmarks::list_user_bookmarks_for_entity_handler::list_user_bookmarks_for_entity_handler;
use crate::http_server::endpoints::user_bookmarks::list_user_bookmarks_for_user_handler::list_user_bookmarks_for_user_handler;
use crate::http_server::endpoints::voice_conversion::enqueue_seed_vc_inference_handler::enqueue_infer_seed_vc_handler;
use crate::http_server::endpoints::voice_conversion::enqueue_voice_conversion_inference_handler::enqueue_voice_conversion_inference_handler;
use crate::http_server::endpoints::voice_conversion::list_voice_conversion_models_handler::list_voice_conversion_models_handler;
use crate::http_server::routes::application_routes::add_application_routes::add_application_routes;
use crate::http_server::routes::legacy_routes::add_legacy_routes::add_legacy_routes;
use crate::http_server::routes::service_routes::add_service_routes;
@@ -44,37 +26,6 @@ pub fn add_routes<T, B> (app: App<T>, server_environment: ServerEnvironment) ->
app = add_legacy_routes(app); // various legacy routes, mostly deprecated
app = add_application_routes(app); // Primary product service area routes
app = add_service_routes(app); // Essential service routes (status, health, info, etc.)
// ==================== Application State ====================
let mut app = RouteBuilder::from_app(app)
.add_get("/v1/app_state", get_app_state_handler)
.into_app();
// ==================== Prompts ====================
let mut app = RouteBuilder::from_app(app)
// NB: This poor RouteBuilder utility requires that POST comes first, otherwise the GET glob
// will capture it and force 504 Method Not Allowed for all POSTs.
.add_post("/v1/prompts/create", create_prompt_handler)
.add_get("/v1/prompts/{token}", get_prompt_handler)
.into_app();
// ==================== Stats ====================
let mut app = RouteBuilder::from_app(app)
.add_get("/v1/stats/queues", get_unified_queue_stats_handler)
.into_app();
// ==================== Service Status ====================
let mut app = RouteBuilder::from_app(app)
.add_get("/v1/status_alert_check", status_alert_handler)
.into_app();
// ==================== COMPONENTS ====================
app
}
@@ -9,8 +9,10 @@ use crate::http_server::routes::application_routes::stripe_artcraft_routes::add_
use crate::http_server::routes::application_routes::subscription_routes::add_subscription_routes;
use crate::http_server::routes::application_routes::tag_routes::add_tag_routes;
use crate::http_server::routes::application_routes::tts_routes::add_tts_routes;
use crate::http_server::routes::application_routes::user_bookmarks_routes::add_user_bookmarks_routes;
use crate::http_server::routes::application_routes::user_rating_routes::add_user_rating_routes;
use crate::http_server::routes::application_routes::user_routes::add_user_routes;
use crate::http_server::routes::application_routes::voice_conversion_routes::add_voice_conversion_routes;
use crate::http_server::routes::application_routes::webhook_routes::add_webhook_routes;
use crate::http_server::routes::application_routes::weights_routes::add_weights_routes;
use actix_http::body::MessageBody;
@@ -18,7 +20,7 @@ use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::{App, Error};
use billing_component::default_routes::add_suggested_stripe_billing_routes;
use crate::http_server::routes::application_routes::user_bookmarks_routes::add_user_bookmarks_routes;
use crate::http_server::routes::application_routes::prompts_routes::add_prompts_routes;
/// Add the core application routes.
pub fn add_application_routes<T, B> (app: App<T>) -> App<T>
@@ -42,11 +44,13 @@ where
// Remaining FakeYou surface area
app = add_tag_routes(app); // /v1/tags
app = add_tts_routes(app); // /tts
app = add_weights_routes(app);
app = add_weights_routes(app); // v1/weights
app = add_voice_conversion_routes(app); // /v1/voice_conversion
// Media files routes
app = add_media_file_routes(app); // /v1/media_files/...
app = add_featured_item_routes(app); // /v1/featured_item/...
app = add_prompts_routes(app); // /v1/prompts/...
// Job system
app = add_job_routes(app);
@@ -1,3 +1,4 @@
mod comments_routes;
mod credits_routes;
mod featured_item_routes;
mod generate_routes;
@@ -8,10 +9,11 @@ mod stripe_artcraft_routes;
mod subscription_routes;
mod tag_routes;
mod tts_routes;
mod user_bookmarks_routes;
mod user_rating_routes;
mod user_routes;
mod voice_conversion_routes;
mod webhook_routes;
mod weights_routes;
pub (super) mod add_application_routes;
mod comments_routes;
mod user_bookmarks_routes;
mod prompts_routes;
@@ -0,0 +1,27 @@
use crate::http_server::endpoints::prompts::create_prompt_handler::create_prompt_handler;
use crate::http_server::endpoints::prompts::get_prompt_handler::get_prompt_handler;
use actix_helpers::route_builder::RouteBuilder;
use actix_http::body::MessageBody;
use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::error::Error;
use actix_web::App;
pub fn add_prompts_routes<T, B> (app: App<T>) -> App<T>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
Error = Error,
InitError = (),
>,
{
RouteBuilder::from_app(app)
// NB: This poor RouteBuilder utility requires that POST comes first, otherwise the GET glob
// will capture it and force 504 Method Not Allowed for all POSTs.
.add_post("/v1/prompts/create", create_prompt_handler)
.add_get("/v1/prompts/{token}", get_prompt_handler)
.into_app()
}
@@ -8,7 +8,7 @@ use crate::http_server::endpoints::voice_conversion::enqueue_seed_vc_inference_h
use crate::http_server::endpoints::voice_conversion::enqueue_voice_conversion_inference_handler::enqueue_voice_conversion_inference_handler;
use crate::http_server::endpoints::voice_conversion::list_voice_conversion_models_handler::list_voice_conversion_models_handler;
pub fn add_web_vc_routes<T, B> (app: App<T>) -> App<T>
pub fn add_voice_conversion_routes<T, B> (app: App<T>) -> App<T>
where
B: MessageBody,
T: ServiceFactory<
@@ -26,10 +26,6 @@ use crate::http_server::deprecated_endpoints::media_uploads::upload_audio::uploa
use crate::http_server::deprecated_endpoints::media_uploads::upload_image::upload_image_handler;
use crate::http_server::deprecated_endpoints::media_uploads::upload_media::upload_media_handler;
use crate::http_server::deprecated_endpoints::mocap::enqueue_mocapnet::enqueue_mocapnet_handler;
use crate::http_server::deprecated_endpoints::stubs::app_model_downloads::get_app_model_downloads_handler;
use crate::http_server::deprecated_endpoints::stubs::app_news::get_app_news_handler;
use crate::http_server::deprecated_endpoints::stubs::app_plans::get_app_plans_handler;
use crate::http_server::deprecated_endpoints::stubs::post_app_analytics::post_app_analytics_handler;
use crate::http_server::deprecated_endpoints::vocoders::get_vocoder::get_vocoder_handler;
use crate::http_server::deprecated_endpoints::vocoders::list_vocoders::list_vocoders_handler;
use crate::http_server::deprecated_endpoints::w2l::delete_w2l_result::delete_w2l_inference_result_handler;
@@ -73,10 +69,10 @@ use crate::http_server::endpoints::voice_designer::voices::search_voices::search
use crate::http_server::endpoints::voice_designer::voices::update_voice::update_voice_handler;
use crate::http_server::routes::legacy_routes::beta_key_routes::add_beta_key_routes;
use crate::http_server::routes::legacy_routes::control_plane_sora_routes::add_control_plane_sora_routes;
use crate::http_server::routes::legacy_routes::desktop_vc_app_routes::add_desktop_vc_app_routes;
use crate::http_server::routes::legacy_routes::image_studio_routes::add_image_studio_routes;
use crate::http_server::routes::legacy_routes::model_download_routes::add_model_download_routes;
use crate::http_server::routes::legacy_routes::studio_gen2_routes::add_studio_gen2_routes;
use crate::http_server::routes::legacy_routes::web_vc_routes::add_web_vc_routes;
use crate::http_server::routes::legacy_routes::workflow_routes::add_workflow_routes;
use actix_helpers::route_builder::RouteBuilder;
use actix_http::body::MessageBody;
@@ -84,6 +80,9 @@ use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::error::Error;
use actix_web::{web, App, HttpResponse};
use crate::http_server::endpoints::app_state::get_app_state_handler::get_app_state_handler;
use crate::http_server::endpoints::service::status_alert_handler::status_alert_handler;
use crate::http_server::endpoints::stats::get_unified_queue_stats_handler::get_unified_queue_stats_handler;
pub fn add_legacy_routes<T, B> (app: App<T>) -> App<T>
where
@@ -108,13 +107,12 @@ where
app = add_voice_designer_routes(app); // /v1/voice_designer
app = add_beta_key_routes(app); // /v1/beta_keys
app = add_model_download_routes(app);
app = add_web_vc_routes(app); // /v1/voice_conversion
app = add_studio_gen2_routes(app);
app = add_image_studio_routes(app);
app = add_control_plane_sora_routes(app); // /v1/control_plane/...
app = add_workflow_routes(app);
app = add_engine_routes(app); // /v1/engine/...
app = add_desktop_app_routes(app); // /v1/vc/...
app = add_desktop_vc_app_routes(app); // /v1/vc/...
app = add_media_upload_routes(app); // /v1/media_upload/...
app = add_trending_routes(app); // /v1/trending/...
@@ -149,6 +147,18 @@ where
.route(web::head().to(|| HttpResponse::Ok()))
);
// ==================== FakeYou Frontend Application State ====================
let mut app = RouteBuilder::from_app(app)
.add_get("/v1/app_state", get_app_state_handler)
.into_app();
// ==================== Stats ====================
let mut app = RouteBuilder::from_app(app)
.add_get("/v1/stats/queues", get_unified_queue_stats_handler)
.into_app();
let app = app.service(
web::resource("/events")
.route(web::get().to(list_events_handler))
@@ -480,39 +490,6 @@ where
)
}
// ==================== DESKTOP APP ROUTES ====================
fn add_desktop_app_routes<T, B> (app: App<T>) -> App<T>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
Error = Error,
InitError = (),
>,
{
app.service(web::scope("/v1/vc")
.service(web::resource("/report_analytics")
.route(web::post().to(post_app_analytics_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/news")
.route(web::get().to(get_app_news_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/features")
.route(web::get().to(get_app_plans_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/downloads")
.route(web::get().to(get_app_model_downloads_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
)
}
// ==================== MEDIA UPLOAD ROUTES ====================
fn add_media_upload_routes<T, B> (app: App<T>) -> App<T>
@@ -0,0 +1,40 @@
use crate::http_server::deprecated_endpoints::stubs::app_model_downloads::get_app_model_downloads_handler;
use crate::http_server::deprecated_endpoints::stubs::app_news::get_app_news_handler;
use crate::http_server::deprecated_endpoints::stubs::app_plans::get_app_plans_handler;
use crate::http_server::deprecated_endpoints::stubs::post_app_analytics::post_app_analytics_handler;
use actix_http::body::MessageBody;
use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::error::Error;
use actix_web::{web, App, HttpResponse};
pub fn add_desktop_vc_app_routes<T, B> (app: App<T>) -> App<T>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
Error = Error,
InitError = (),
>,
{
app.service(web::scope("/v1/vc")
.service(web::resource("/report_analytics")
.route(web::post().to(post_app_analytics_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/news")
.route(web::get().to(get_app_news_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/features")
.route(web::get().to(get_app_plans_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/downloads")
.route(web::get().to(get_app_model_downloads_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
)
}
@@ -4,5 +4,5 @@ mod control_plane_sora_routes;
mod image_studio_routes;
mod model_download_routes;
mod studio_gen2_routes;
mod web_vc_routes;
mod workflow_routes;
mod workflow_routes;
mod desktop_vc_app_routes;
@@ -3,6 +3,7 @@ use crate::http_server::endpoints::misc::detect_locale_handler::detect_locale_ha
use crate::http_server::endpoints::misc::root_index::get_root_index;
use crate::http_server::endpoints::service::health_check_handler::get_health_check_handler;
use crate::http_server::endpoints::service::public_info_handler::get_public_info_handler;
use crate::http_server::endpoints::service::status_alert_handler::status_alert_handler;
use actix_http::body::MessageBody;
use actix_service::ServiceFactory;
use actix_web::dev::{ServiceRequest, ServiceResponse};
@@ -27,7 +28,8 @@ where
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(
web::resource("/server_info") // NB/TODO(bt,2023-01-21): Couldn't scope to /v1/, actix routing table might not like collision
// TODO(bt,2023-01-21): Couldn't scope to /v1/, actix routing table might not like collision
web::resource("/server_info")
.route(web::get().to(get_public_info_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
@@ -36,6 +38,11 @@ where
.route(web::get().to(detect_locale_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(
web::resource("/v1/status_alert_check")
.route(web::get().to(status_alert_handler))
.route(web::head().to(|| HttpResponse::Ok()))
)
.service(web::resource("/")
.route(web::get().to(get_root_index))
.route(web::head().to(|| HttpResponse::Ok()))