From fe971495cd5b3eb586895b553419b0f9c5bedd5c Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 7 Nov 2024 16:45:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=96=87=E4=BB=B6=E5=8F=98=E6=9B=B4=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8B=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/pulls/pulls_controller.rb | 10 +++++++++- app/views/api/v1/projects/_simple_gitea_file.jbuilder | 5 +++++ .../api/v1/projects/pulls/pulls/files.json.jbuilder | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 app/views/api/v1/projects/_simple_gitea_file.jbuilder create mode 100644 app/views/api/v1/projects/pulls/pulls/files.json.jbuilder diff --git a/app/controllers/api/v1/projects/pulls/pulls_controller.rb b/app/controllers/api/v1/projects/pulls/pulls_controller.rb index 1a7c574d9..254ad1741 100644 --- a/app/controllers/api/v1/projects/pulls/pulls_controller.rb +++ b/app/controllers/api/v1/projects/pulls/pulls_controller.rb @@ -6,13 +6,21 @@ class Api::V1::Projects::Pulls::PullsController < Api::V1::BaseController @pulls = kaminari_paginate(@pulls) end - before_action :load_pull_request, only: [:show] + before_action :load_pull_request, only: [:show, :files] def show @result_object = Api::V1::Projects::Pulls::GetService.call(@project, @pull_request, current_user&.gitea_token) @last_review = @pull_request.reviews.order(created_at: :desc).take end + def files + if params[:filepath].present? + @result_object = $gitea_hat_client.get_repos_pulls_files_by_owner_repo_index_filepath(@project&.owner.login, @project&.identifier, @pull_request.gitea_number, params[:filepath], {query: {token: current_user&.gitea_token}}) + else + @result_object = $gitea_client.get_repos_pulls_files_by_owner_repo_index(@project&.owner.login, @project&.identifier, @pull_request.gitea_number, {query: {token: current_user&.gitea_token, page: page, limit: limit}}) + end + end + private def query_params params.permit(:status, :keyword, :priority_id, :issue_tag_id, :version_id, :reviewer_id, :sort_by, :sort_direction) diff --git a/app/views/api/v1/projects/_simple_gitea_file.jbuilder b/app/views/api/v1/projects/_simple_gitea_file.jbuilder new file mode 100644 index 000000000..44a9d7b2b --- /dev/null +++ b/app/views/api/v1/projects/_simple_gitea_file.jbuilder @@ -0,0 +1,5 @@ +json.filename file["filename"] +json.status file["status"] +json.additions file["additions"] +json.deletions file["deletions"] +json.changes file["changes"] diff --git a/app/views/api/v1/projects/pulls/pulls/files.json.jbuilder b/app/views/api/v1/projects/pulls/pulls/files.json.jbuilder new file mode 100644 index 000000000..2698e30f0 --- /dev/null +++ b/app/views/api/v1/projects/pulls/pulls/files.json.jbuilder @@ -0,0 +1,8 @@ +if params[:filepath].present? + json.partial! "api/v1/projects/simple_gitea_diff_detail", diff: @result_object +else + json.file_numbers @result_object[:total_data] + json.files @result_object[:data] do |file| + json.partial! "api/v1/projects/simple_gitea_file", file: file + end +end \ No newline at end of file