organize routes module

This commit is contained in:
Brandon Thomas committed 2021-12-21 22:52:00 -05:00
1 parent 5db08c3b83
commit 591f3ac2ad
1 file changed
+328 -272
+328 -272
View File
@@ -61,7 +61,6 @@ use actix_web::dev::{ServiceRequest, ServiceResponse};
use actix_web::error::Error;
pub fn add_routes<T, B> (app: App<T, B>) -> App<T, B>
where
B: MessageBody,
T: ServiceFactory<
@@ -71,10 +70,11 @@ pub fn add_routes<T, B> (app: App<T, B>) -> App<T, B>
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<T, B> (app: App<T, B>) -> App<T, B>
.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<T, B> (app: App<T, B>) -> App<T, B>
.service(enable_alpha_handler)
.service(enable_alpha_easy_handler)
.default_service( web::route().to(default_route_404))
}
}
// ==================== MODERATOR ROUTES ====================
fn add_moderator_routes<T, B> (app: App<T, B>) -> App<T, B>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
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<T, B> (app: App<T, B>) -> App<T, B>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
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<T, B> (app: App<T, B>) -> App<T, B>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
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<T, B> (app: App<T, B>) -> App<T, B>
where
B: MessageBody,
T: ServiceFactory<
ServiceRequest,
Config = (),
Response = ServiceResponse<B>,
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()))
)
)
}