From 591f3ac2adbbba13c77bd0127726060f3f93f394 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 21 Dec 2021 22:52:00 -0500 Subject: [PATCH] organize routes module --- crates/app/storyteller_web/src/routes.rs | 600 +++++++++++++---------- 1 file changed, 328 insertions(+), 272 deletions(-) diff --git a/crates/app/storyteller_web/src/routes.rs b/crates/app/storyteller_web/src/routes.rs index e3e2149760..ae59aa07b7 100644 --- a/crates/app/storyteller_web/src/routes.rs +++ b/crates/app/storyteller_web/src/routes.rs @@ -61,7 +61,6 @@ use actix_web::dev::{ServiceRequest, ServiceResponse}; use actix_web::error::Error; pub fn add_routes (app: App) -> App - where B: MessageBody, T: ServiceFactory< @@ -71,10 +70,11 @@ pub fn add_routes (app: App) -> App Error = Error, InitError = (), >, - { - - + let mut app = add_moderator_routes(app); /* /moderation */ + app = add_tts_routes(app); /* /tts */ + app = add_w2l_routes(app); /* /w2l */ + app = add_user_profile_routes(app); /* /user */ // ==================== ACCOUNT CREATION / SESSION MANAGEMENT ==================== app.service( @@ -97,273 +97,6 @@ pub fn add_routes (app: App) -> App .route(web::get().to(session_info_handler)) .route(web::head().to(|| HttpResponse::Ok())) ) - // ==================== MODERATOR ==================== - .service( - web::scope("/moderation") - .service( - web::resource("/staff") - .route(web::get().to(list_staff_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::scope("/ip_bans") - .service( - web::resource("/list") - .route(web::get().to(list_ip_bans_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/add") - .route(web::post().to(add_ip_ban_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{ip_address}") - .route(web::get().to(get_ip_ban_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{ip_address}/delete") - .route(web::post().to(delete_ip_ban_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/user") - .service( - web::resource("/list") - .route(web::get().to(list_users_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/user_bans") - .service( - web::resource("/list") - .route(web::get().to(list_banned_users_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/manage_ban") - .route(web::post().to(ban_user_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/roles") - .service( - web::resource("/list") - .route(web::get().to(list_user_roles_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/edit") - .route(web::post().to(set_user_role_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/jobs") - .service( - web::resource("/tts_inference_queue_stats") - .route(web::get().to(get_tts_inference_queue_count_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/w2l_inference_queue_stats") - .route(web::get().to(get_w2l_inference_queue_count_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/pending") - .service( - web::resource("/w2l_templates") - .route(web::get().to(get_pending_w2l_templates_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/w2l_inference_queue_stats") - .route(web::get().to(get_w2l_inference_queue_count_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - .service( - web::scope("/stats") - .service( - web::resource("/tts_voices") - .route(web::get().to(get_voice_count_stats_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - ) - // ==================== TTS ==================== - .service( - web::scope("/tts") - .service( - web::resource("/upload") - .route(web::post().to(upload_tts_model_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/inference") - .route(web::post().to(infer_tts_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/list") - .route(web::get().to(list_tts_models_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/model/{token}") - .route(web::get().to(get_tts_model_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/model/{token}/delete") - .route(web::post().to(delete_tts_model_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/model/{model_token}/count") - .route(web::get().to(get_tts_model_use_count_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/model/{model_token}/edit") - .route(web::post().to(edit_tts_model_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}") - .route(web::get().to(get_tts_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}/edit") - .route(web::post().to(edit_tts_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}/delete") - .route(web::post().to(delete_tts_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/job/{token}") - .route(web::get().to(get_tts_inference_job_status_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/upload_model_job/{token}") - .route(web::get().to(get_tts_upload_model_job_status_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - // ==================== WAV2LIP ==================== - .service( - web::scope("/w2l") - .service( - web::resource("/upload") - .route(web::post().to(upload_w2l_template_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/inference") - .route(web::post().to(enqueue_infer_w2l_with_uploads)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/list") - .route(web::get().to(list_w2l_templates_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/template/{token}") - .route(web::get().to(get_w2l_template_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/template/{template_token}/count") - .route(web::get().to(get_w2l_template_use_count_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/template/{template_token}/edit") - .route(web::post().to(edit_w2l_template_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/template/{token}/moderate") - .route(web::post().to(set_w2l_template_mod_approval_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/template/{token}/delete") - .route(web::post().to(delete_w2l_template_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}") - .route(web::get().to(get_w2l_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}/edit") - .route(web::post().to(edit_w2l_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/result/{token}/delete") - .route(web::post().to(delete_w2l_inference_result_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/job/{token}") - .route(web::get().to(get_w2l_inference_job_status_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/upload_template_job/{token}") - .route(web::get().to(get_w2l_upload_template_job_status_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) - // ==================== USER DATA ==================== - .service( - web::scope("/user") - .service( - web::resource("/{username}/profile") - .route(web::get().to(get_profile_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/edit_profile") - .route(web::post().to(edit_profile_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/tts_models") - .route(web::get().to(list_user_tts_models_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/tts_results") - .route(web::get().to(list_user_tts_inference_results_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/w2l_templates") - .route(web::get().to(list_user_w2l_templates_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - .service( - web::resource("/{username}/w2l_results") - .route(web::get().to(list_user_w2l_inference_results_handler)) - .route(web::head().to(|| HttpResponse::Ok())) - ) - ) .service( web::resource("/events") .route(web::get().to(list_events_handler)) @@ -381,4 +114,327 @@ pub fn add_routes (app: App) -> App .service(enable_alpha_handler) .service(enable_alpha_easy_handler) .default_service( web::route().to(default_route_404)) -} \ No newline at end of file +} + +// ==================== MODERATOR ROUTES ==================== + +fn add_moderator_routes (app: App) -> App + where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + Error = Error, + InitError = (), + >, +{ + app.service( + web::scope("/moderation") + .service( + web::resource("/staff") + .route(web::get().to(list_staff_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::scope("/ip_bans") + .service( + web::resource("/list") + .route(web::get().to(list_ip_bans_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/add") + .route(web::post().to(add_ip_ban_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{ip_address}") + .route(web::get().to(get_ip_ban_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{ip_address}/delete") + .route(web::post().to(delete_ip_ban_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/user") + .service( + web::resource("/list") + .route(web::get().to(list_users_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/user_bans") + .service( + web::resource("/list") + .route(web::get().to(list_banned_users_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/manage_ban") + .route(web::post().to(ban_user_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/roles") + .service( + web::resource("/list") + .route(web::get().to(list_user_roles_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/edit") + .route(web::post().to(set_user_role_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/jobs") + .service( + web::resource("/tts_inference_queue_stats") + .route(web::get().to(get_tts_inference_queue_count_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/w2l_inference_queue_stats") + .route(web::get().to(get_w2l_inference_queue_count_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/pending") + .service( + web::resource("/w2l_templates") + .route(web::get().to(get_pending_w2l_templates_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/w2l_inference_queue_stats") + .route(web::get().to(get_w2l_inference_queue_count_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + .service( + web::scope("/stats") + .service( + web::resource("/tts_voices") + .route(web::get().to(get_voice_count_stats_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) + ) +} + +// ==================== TTS ROUTES ==================== + +fn add_tts_routes (app: App) -> App + where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + Error = Error, + InitError = (), + >, +{ + app.service( + web::scope("/tts") + .service( + web::resource("/upload") + .route(web::post().to(upload_tts_model_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/inference") + .route(web::post().to(infer_tts_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/list") + .route(web::get().to(list_tts_models_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/model/{token}") + .route(web::get().to(get_tts_model_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/model/{token}/delete") + .route(web::post().to(delete_tts_model_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/model/{model_token}/count") + .route(web::get().to(get_tts_model_use_count_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/model/{model_token}/edit") + .route(web::post().to(edit_tts_model_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}") + .route(web::get().to(get_tts_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}/edit") + .route(web::post().to(edit_tts_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}/delete") + .route(web::post().to(delete_tts_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/job/{token}") + .route(web::get().to(get_tts_inference_job_status_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/upload_model_job/{token}") + .route(web::get().to(get_tts_upload_model_job_status_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) +} + +// ==================== WAV2LIP ROUTES ==================== + +fn add_w2l_routes (app: App) -> App + where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + Error = Error, + InitError = (), + >, +{ + app.service( + web::scope("/w2l") + .service( + web::resource("/upload") + .route(web::post().to(upload_w2l_template_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/inference") + .route(web::post().to(enqueue_infer_w2l_with_uploads)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/list") + .route(web::get().to(list_w2l_templates_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/template/{token}") + .route(web::get().to(get_w2l_template_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/template/{template_token}/count") + .route(web::get().to(get_w2l_template_use_count_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/template/{template_token}/edit") + .route(web::post().to(edit_w2l_template_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/template/{token}/moderate") + .route(web::post().to(set_w2l_template_mod_approval_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/template/{token}/delete") + .route(web::post().to(delete_w2l_template_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}") + .route(web::get().to(get_w2l_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}/edit") + .route(web::post().to(edit_w2l_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/result/{token}/delete") + .route(web::post().to(delete_w2l_inference_result_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/job/{token}") + .route(web::get().to(get_w2l_inference_job_status_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/upload_template_job/{token}") + .route(web::get().to(get_w2l_upload_template_job_status_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) +} + +// ==================== USER PROFILE ROUTES ==================== + +fn add_user_profile_routes (app: App) -> App + where + B: MessageBody, + T: ServiceFactory< + ServiceRequest, + Config = (), + Response = ServiceResponse, + Error = Error, + InitError = (), + >, +{ + app.service( + web::scope("/user") + .service( + web::resource("/{username}/profile") + .route(web::get().to(get_profile_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/edit_profile") + .route(web::post().to(edit_profile_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/tts_models") + .route(web::get().to(list_user_tts_models_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/tts_results") + .route(web::get().to(list_user_tts_inference_results_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/w2l_templates") + .route(web::get().to(list_user_w2l_templates_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + .service( + web::resource("/{username}/w2l_results") + .route(web::get().to(list_user_w2l_inference_results_handler)) + .route(web::head().to(|| HttpResponse::Ok())) + ) + ) +}