pub mod assignees; pub mod check_runs; pub mod close; pub mod create; pub mod delete; pub mod events; pub mod get; pub mod get_status; pub mod labels; pub mod list; pub mod list_commits; pub mod list_files; pub mod lock; pub mod mark_ready; pub mod merge; pub mod merge_strategy; pub mod reactions; pub mod reopen; pub mod review_requests; pub mod reviews; pub mod subscriptions; pub mod templates; pub mod update; use actix_web::web; /// Configure PR-level routes under `/workspaces/{workspace_name}/repos/{repo_name}/prs` pub fn configure(cfg: &mut web::ServiceConfig) { cfg.service( web::scope("") // Repo-level labels .route("/labels", web::get().to(labels::list_labels)) .route("/labels", web::post().to(labels::create_label)) .route("/labels/{label_id}", web::put().to(labels::update_label)) .route("/labels/{label_id}", web::delete().to(labels::delete_label)) // Templates .route("/templates", web::get().to(templates::list_templates)) .route("/templates", web::post().to(templates::create_template)) .route( "/templates/{template_id}", web::put().to(templates::update_template), ) .route( "/templates/{template_id}", web::delete().to(templates::delete_template), ) // Core .route("", web::get().to(list::list)) .route("", web::post().to(create::create)) .route("/{number}", web::get().to(get::get)) .route("/{number}", web::put().to(update::update)) .route("/{number}", web::delete().to(delete::delete)) .route("/{number}/close", web::post().to(close::close)) .route("/{number}/reopen", web::post().to(reopen::reopen)) .route("/{number}/ready", web::post().to(mark_ready::mark_ready)) .route("/{number}/lock", web::put().to(lock::lock)) .route("/{number}/merge", web::post().to(merge::merge)) // Commits & Files .route( "/{number}/commits", web::get().to(list_commits::list_commits), ) .route("/{number}/files", web::get().to(list_files::list_files)) // Status & Merge Strategy .route("/{number}/status", web::get().to(get_status::get_status)) .route( "/{number}/merge-strategy", web::get().to(merge_strategy::get_merge_strategy), ) .route( "/{number}/merge-strategy", web::put().to(merge_strategy::update_merge_strategy), ) // Labels (PR-level) .route( "/{number}/labels", web::get().to(labels::list_label_relations), ) .route( "/{number}/labels/{label_id}", web::post().to(labels::assign_label), ) .route( "/{number}/labels/{label_id}", web::delete().to(labels::unassign_label), ) // Assignees .route( "/{number}/assignees", web::get().to(assignees::list_assignees), ) .route( "/{number}/assignees/{user_id}", web::post().to(assignees::assign_user), ) .route( "/{number}/assignees/{user_id}", web::delete().to(assignees::unassign_user), ) // Reviews .route("/{number}/reviews", web::get().to(reviews::list_reviews)) .route("/{number}/reviews", web::post().to(reviews::create_review)) .route( "/{number}/reviews/{review_id}/submit", web::post().to(reviews::submit_review), ) .route( "/{number}/reviews/{review_id}/dismiss", web::post().to(reviews::dismiss_review), ) .route( "/{number}/reviews/{review_id}/comments", web::get().to(reviews::list_review_comments), ) .route( "/{number}/comments/{comment_id}/reply", web::post().to(reviews::add_review_reply), ) .route( "/{number}/comments/{comment_id}", web::put().to(reviews::update_review_comment), ) .route( "/{number}/comments/{comment_id}", web::delete().to(reviews::delete_review_comment), ) // Check Runs .route( "/{number}/check-runs", web::get().to(check_runs::list_check_runs), ) .route( "/{number}/check-runs", web::post().to(check_runs::create_check_run), ) .route( "/{number}/check-runs/{check_run_id}", web::put().to(check_runs::update_check_run), ) .route( "/{number}/check-runs/{check_run_id}", web::delete().to(check_runs::delete_check_run), ) // Events .route("/{number}/events", web::get().to(events::list_events)) // Reactions .route( "/{number}/reactions", web::get().to(reactions::list_reactions), ) .route( "/{number}/reactions", web::post().to(reactions::add_reaction), ) .route( "/{number}/reactions/{reaction_id}", web::delete().to(reactions::remove_reaction), ) // Subscriptions .route( "/{number}/subscriptions", web::get().to(subscriptions::list_subscriptions), ) .route( "/{number}/subscribe", web::post().to(subscriptions::subscribe), ) .route( "/{number}/subscribe", web::delete().to(subscriptions::unsubscribe), ) .route("/{number}/mute", web::put().to(subscriptions::mute)) // Review Requests .route( "/{number}/requested_reviewers", web::get().to(review_requests::list_requested_reviewers), ) .route( "/{number}/requested_reviewers", web::post().to(review_requests::request_reviewers), ) .route( "/{number}/requested_reviewers/{user_id}", web::delete().to(review_requests::remove_requested_reviewer), ), ); }