diff --git a/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs index ba5dacfe53..68b62b4c5d 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/add_routes.rs @@ -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 (app: App, 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 } diff --git a/crates/service/web/storyteller_web/src/http_server/routes/application_routes/add_application_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/add_application_routes.rs index ca7a94bc57..9c2d1e9659 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/application_routes/add_application_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/add_application_routes.rs @@ -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 (app: App) -> App @@ -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); diff --git a/crates/service/web/storyteller_web/src/http_server/routes/application_routes/mod.rs b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/mod.rs index 4ebf3d7aa5..2580a281b3 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/application_routes/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/mod.rs @@ -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; \ No newline at end of file +mod prompts_routes; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/routes/application_routes/prompts_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/prompts_routes.rs new file mode 100644 index 0000000000..99771ebf20 --- /dev/null +++ b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/prompts_routes.rs @@ -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 (app: App) -> App +where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + 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() +} diff --git a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/web_vc_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/voice_conversion_routes.rs similarity index 95% rename from crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/web_vc_routes.rs rename to crates/service/web/storyteller_web/src/http_server/routes/application_routes/voice_conversion_routes.rs index 4d29140d5f..ab1e056d9d 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/web_vc_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/application_routes/voice_conversion_routes.rs @@ -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 (app: App) -> App +pub fn add_voice_conversion_routes (app: App) -> App where B: MessageBody, T: ServiceFactory< diff --git a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/add_legacy_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/add_legacy_routes.rs index 4bb9a36389..39b078927c 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/add_legacy_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/add_legacy_routes.rs @@ -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 (app: App) -> App 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 (app: App) -> App -where - B: MessageBody, - T: ServiceFactory< - ServiceRequest, - Config = (), - Response = ServiceResponse, - 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 (app: App) -> App diff --git a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/desktop_vc_app_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/desktop_vc_app_routes.rs new file mode 100644 index 0000000000..73882e9a7a --- /dev/null +++ b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/desktop_vc_app_routes.rs @@ -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 (app: App) -> App +where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + 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())) + ) + ) +} diff --git a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/mod.rs b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/mod.rs index 82afba38c8..de748ce915 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/mod.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/legacy_routes/mod.rs @@ -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; \ No newline at end of file +mod workflow_routes; +mod desktop_vc_app_routes; \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/http_server/routes/service_routes.rs b/crates/service/web/storyteller_web/src/http_server/routes/service_routes.rs index a09867d7fe..10894e0b0f 100644 --- a/crates/service/web/storyteller_web/src/http_server/routes/service_routes.rs +++ b/crates/service/web/storyteller_web/src/http_server/routes/service_routes.rs @@ -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()))