mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-16 01:35:56 +08:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
32
app/services/api/v1/projects/pulls/get_service.rb
Normal file
32
app/services/api/v1/projects/pulls/get_service.rb
Normal file
@@ -0,0 +1,32 @@
|
||||
class Api::V1::Projects::Pulls::GetService < ApplicationService
|
||||
|
||||
attr_reader :project, :pull_request, :owner, :repo, :index, :token
|
||||
attr_accessor :gitea_data
|
||||
|
||||
def initialize(project, pull_request, token = nil)
|
||||
@project = project
|
||||
@pull_request = pull_request
|
||||
@owner = project&.owner.login
|
||||
@repo = project&.identifier
|
||||
@index = pull_request.gitea_number
|
||||
@token = token
|
||||
end
|
||||
|
||||
def call
|
||||
load_gitea_data
|
||||
|
||||
gitea_data
|
||||
end
|
||||
|
||||
private
|
||||
def request_params
|
||||
{
|
||||
access_token: token
|
||||
}
|
||||
end
|
||||
|
||||
def load_gitea_data
|
||||
@gitea_data = $gitea_client.get_repos_pulls_by_owner_repo_index(owner, repo, index, {query: request_params})
|
||||
# raise Error, '获取合并请求失败!' unless @gitea_data.is_a?(Hash)
|
||||
end
|
||||
end
|
||||
46
app/services/api/v1/projects/pulls/list_service.rb
Normal file
46
app/services/api/v1/projects/pulls/list_service.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
class Api::V1::Projects::Pulls::ListService < ApplicationService
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_reader :project, :keyword, :status, :priority_id, :issue_tag_id, :version_id, :reviewer_id, :sort_by, :sort_direction
|
||||
attr_accessor :queried_pull_requests
|
||||
|
||||
validates :status, inclusion: {in: [0, 1, 2], message: "请输入正确的Status"}, allow_nil: true
|
||||
validates :sort_by, inclusion: {in: PullRequest.column_names, message: '请输入正确的SortBy'}
|
||||
validates :sort_direction, inclusion: {in: %w(asc desc), message: '请输入正确的SortDirection'}
|
||||
|
||||
def initialize(project, params={})
|
||||
@project = project
|
||||
@keyword = params[:keyword]
|
||||
@status = params[:status].to_i
|
||||
@priority_id = params[:priority_id]
|
||||
@issue_tag_id = params[:issue_tag_id]
|
||||
@version_id = params[:version_id]
|
||||
@reviewer_id = params[:reviewer_id]
|
||||
@sort_by = params[:sort_by] || 'created_at'
|
||||
@sort_direction = params[:sort_direction] || 'desc'
|
||||
end
|
||||
|
||||
def call
|
||||
raise Error, errors.full_messages.join(",") unless valid?
|
||||
pull_request_query_data
|
||||
|
||||
queried_pull_requests
|
||||
end
|
||||
|
||||
private
|
||||
def pull_request_query_data
|
||||
pull_requests = @project.pull_requests
|
||||
|
||||
pull_requests = pull_requests.where(status: status) if status.present?
|
||||
pull_requests = pull_requests.where(issues: {priority_id: priority_id}) if priority_id.present?
|
||||
pull_requests = pull_requests.where(issue_tags: {id: issue_tag_id}) if issue_tag_id.present?
|
||||
pull_requests = pull_requests.where(issues: {fixed_version_id: version_id}) if version_id.present?
|
||||
pull_requests = pull_requests.where(users: {id: reviewer_id}) if reviewer_id.present?
|
||||
|
||||
q = pull_requests.ransack(title_or_body_cont: keyword)
|
||||
scope = q.result.includes(:fork_project, :journals, :reviews, :reviewers, issue: [:journals, :priority, :version, :issue_tags])
|
||||
scope = scope.order("pull_requests.#{sort_by} #{sort_direction}")
|
||||
|
||||
@queried_pull_requests = scope
|
||||
end
|
||||
end
|
||||
@@ -24,17 +24,17 @@ class Api::V1::Projects::Pulls::Reviews::CreateService < ApplicationService
|
||||
end
|
||||
|
||||
return @journal, @review
|
||||
rescue
|
||||
raise Error, '服务器错误,请联系系统管理员!'
|
||||
# rescue
|
||||
# raise Error, '服务器错误,请联系系统管理员!'
|
||||
end
|
||||
|
||||
private
|
||||
def create_review
|
||||
@review = issue.reviews.create!(status: status, content: content, commit_id: commit_id, reviewer_id: @current_user.id)
|
||||
@review = pull_request.reviews.create!(status: status, content: content, commit_id: commit_id, reviewer_id: @current_user.id)
|
||||
end
|
||||
|
||||
def create_journal
|
||||
@journal = issue.journals.create!(notes: content, user_id: @current_user.id, review_id: @review.id)
|
||||
@journal = pull_request.journals.create!(notes: content, user_id: @current_user.id, review_id: @review.id)
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user