add operation for pull request create/merge/refuse

This commit is contained in:
nigel007 2021-01-03 17:09:54 +08:00
parent cbb666052c
commit c5b24a3447
1 changed files with 34 additions and 4 deletions

View File

@ -54,7 +54,17 @@ class PullRequestsController < ApplicationController
@pull_request, @gitea_pull_request = PullRequests::CreateService.call(current_user, @owner, @project, params)
if @gitea_pull_request[:status] == :success
@pull_request.bind_gitea_pull_request!(@gitea_pull_request[:body]["number"])
render_ok
# author: zxh
# 调用上链API
success_blockchain = push_activity_2_blockchain("pull_request_create", @pull_request)
if success_blockchain == false
render_error("create pull request error: cannot save to blockchain")
raise ActiveRecord::Rollback
else
render_ok
end
else
render_error("create pull request error: #{@gitea_pull_request[:status]}")
raise ActiveRecord::Rollback
@ -119,7 +129,17 @@ class PullRequestsController < ApplicationController
begin
@pull_request.update(status: 2)
@pull_request.issue.update(status_id: 5)
normal_status(1, "已拒绝")
# author: zxh
# 调用上链API
success_blockchain = push_activity_2_blockchain("pull_request_refuse", @pull_request)
if success_blockchain == false
normal_status(-1, "拒绝失败")
raise ActiveRecord::Rollback
else
normal_status(1, "已拒绝")
end
rescue => e
normal_status(-1, e.message)
raise ActiveRecord::Rollback
@ -152,10 +172,20 @@ class PullRequestsController < ApplicationController
}
merge_pr = Gitea::PullRequest::MergeService.call(current_user.gitea_token, @project.owner.login,
@repository.try(:identifier), @pull_request.try(:gpid), requests_params)
if @pull_request.update_attribute(:status, 1) && merge_pr[:status].to_i == 200
if merge_pr.status.to_i == 200 && @pull_request.update_attribute(:status, 1)
@pull_request&.project_trends&.update_all(action_type: "close")
@issue&.custom_journal_detail("merge", "", "该合并请求已被合并", current_user&.id)
normal_status(1, "合并成功")
# author: zxh
# 调用上链API
success_blockchain = push_activity_2_blockchain("pull_request_merge", @pull_request)
if success_blockchain == false
normal_status(-1, "合并失败")
raise ActiveRecord::Rollback
else
normal_status(1, "合并成功")
end
else
normal_status(-1, "合并失败")
end