6db412f
use api::http::Router;
use api::http::routing::{get, post, put};
use crate::handlers::assignees::add_pull_assignee::add_pull_assignee;
use crate::handlers::assignees::list_pull_assignees::list_pull_assignees;
use crate::handlers::assignees::remove_pull_assignee::remove_pull_assignee;
use crate::handlers::checks::get_pull_checks::get_pull_checks;
use crate::handlers::checks::get_pull_gate::get_pull_gate;
use crate::handlers::comments::create_pull_comment::create_pull_comment;
use crate::handlers::comments::delete_pull_comment::delete_pull_comment;
use crate::handlers::comments::list_pull_comment_tree::list_pull_comment_tree;
use crate::handlers::comments::list_pull_comments::list_pull_comments;
use crate::handlers::comments::resolve_pull_comment::{
resolve_pull_comment, unresolve_pull_comment,
};
use crate::handlers::comments::update_pull_comment::update_pull_comment;
use crate::handlers::inbox::list_my_pulls;
use crate::handlers::labels::attach_pull_label::attach_pull_label;
use crate::handlers::labels::detach_pull_label::detach_pull_label;
use crate::handlers::labels::list_label_options::list_label_options;
use crate::handlers::labels::list_pull_labels::list_pull_labels;
use crate::handlers::pulls::close_pull::close_pull;
use crate::handlers::pulls::create_pull::create_pull;
use crate::handlers::pulls::delete_pull::delete_pull;
use crate::handlers::pulls::get_pull::get_pull;
use crate::handlers::pulls::get_pull_files::get_pull_files;
use crate::handlers::pulls::get_pull_patch::get_pull_patch;
use crate::handlers::pulls::list_pull_commits::list_pull_commits;
use crate::handlers::pulls::list_pull_events::list_pull_events;
use crate::handlers::pulls::list_pulls::list_pulls;
use crate::handlers::pulls::lock_pull::{lock_pull, unlock_pull};
use crate::handlers::pulls::merge_pull::merge_pull;
use crate::handlers::pulls::refresh_pull_summary::refresh_pull_summary;
use crate::handlers::pulls::reopen_pull::reopen_pull;
use crate::handlers::pulls::update_branch_pull::update_branch_pull;
use crate::handlers::pulls::update_pull::update_pull;
use crate::handlers::relations::link_issue_pull::link_issue_pull;
use crate::handlers::relations::list_issue_pulls::list_issue_pulls;
use crate::handlers::relations::unlink_issue_pull::unlink_issue_pull;
use crate::handlers::reviewers::delete_requested_reviewer::delete_requested_reviewer;
use crate::handlers::reviewers::list_requested_reviewers::list_requested_reviewers;
use crate::handlers::reviewers::request_reviewers::request_reviewers;
use crate::handlers::reviews::dismiss_review::dismiss_review;
use crate::handlers::reviews::get_review::get_review;
use crate::handlers::reviews::list_reviews::list_reviews;
use crate::handlers::reviews::publish_review::publish_review;
use crate::handlers::reviews::submit_review::submit_review;
const PULLS: &str = "/repos/{space_name}/{repo_name}/pulls";
const ITEM: &str = "/repos/{space_name}/{repo_name}/pulls/{pull_ref}";
const ISSUE_PULLS: &str = "/issues/{space_name}/boards/{board_id}/issues/{issue_id}/pulls";
pub fn router() -> Router<crate::services::service::PullService> {
Router::new()
.route(PULLS, get(list_pulls).post(create_pull))
.route(&format!("{PULLS}/label-options"), get(list_label_options))
.route(ITEM, get(get_pull).patch(update_pull).delete(delete_pull))
.route(&format!("{ITEM}/close"), post(close_pull))
.route(&format!("{ITEM}/reopen"), post(reopen_pull))
.route(&format!("{ITEM}/merge"), post(merge_pull))
.route(&format!("{ITEM}/commits"), get(list_pull_commits))
.route(&format!("{ITEM}/files"), get(get_pull_files))
.route(&format!("{ITEM}/patch"), get(get_pull_patch))
.route(&format!("{ITEM}/summary"), post(refresh_pull_summary))
.route(&format!("{ITEM}/events"), get(list_pull_events))
.route(&format!("{ITEM}/checks"), get(get_pull_checks))
.route(&format!("{ITEM}/gate"), get(get_pull_gate))
.route(&format!("{ITEM}/lock"), put(lock_pull).delete(unlock_pull))
.route(&format!("{ITEM}/update-branch"), post(update_branch_pull))
.route(
&format!("{ITEM}/reviews"),
get(list_reviews).post(submit_review),
)
.route(&format!("{ITEM}/reviews/{{review_id}}"), get(get_review))
.route(
&format!("{ITEM}/reviews/{{review_id}}/submit"),
post(publish_review),
)
.route(
&format!("{ITEM}/reviews/{{review_id}}/dismiss"),
put(dismiss_review),
)
.route(
&format!("{ITEM}/comments"),
get(list_pull_comments).post(create_pull_comment),
)
.route(
&format!("{ITEM}/comments/tree"),
get(list_pull_comment_tree),
)
.route(
&format!("{ITEM}/comments/{{comment_id}}"),
api::http::routing::patch(update_pull_comment).delete(delete_pull_comment),
)
.route(
&format!("{ITEM}/comments/{{comment_id}}/resolve"),
put(resolve_pull_comment).delete(unresolve_pull_comment),
)
.route(
&format!("{ITEM}/requested-reviewers"),
get(list_requested_reviewers).post(request_reviewers),
)
.route(
&format!("{ITEM}/requested-reviewers/{{user_id}}"),
api::http::routing::delete(delete_requested_reviewer),
)
.route(
&format!("{ITEM}/labels"),
get(list_pull_labels).post(attach_pull_label),
)
.route(
&format!("{ITEM}/labels/{{label_ref}}"),
api::http::routing::delete(detach_pull_label),
)
.route(&format!("{ITEM}/assignees"), get(list_pull_assignees))
.route(
&format!("{ITEM}/assignees/{{user_ref}}"),
post(add_pull_assignee).delete(remove_pull_assignee),
)
.route("/pulls/@me/{scope}", get(list_my_pulls))
.route(ISSUE_PULLS, get(list_issue_pulls).post(link_issue_pull))
.route(
&format!("{ISSUE_PULLS}/{{relation_id}}"),
api::http::routing::delete(unlink_issue_pull),
)
}