55 lines
2.1 KiB
Ruby
55 lines
2.1 KiB
Ruby
class Api::V1::Projects::BranchesController < Api::V1::BaseController
|
|
before_action :require_public_and_member_above, only: [:index, :all]
|
|
|
|
def index
|
|
@result_object = Api::V1::Projects::Branches::ListService.call(@project, {name: params[:keyword], page: page, limit: limit}, current_user&.gitea_token)
|
|
end
|
|
|
|
def all
|
|
@result_object = Api::V1::Projects::Branches::AllListService.call(@project, current_user&.gitea_token)
|
|
end
|
|
|
|
before_action :require_operate_above, only: [:create, :destroy]
|
|
|
|
def create
|
|
@result_object = Api::V1::Projects::Branches::CreateService.call(@project, branch_params, current_user&.gitea_token)
|
|
end
|
|
|
|
def destroy
|
|
@result_object = Api::V1::Projects::Branches::DeleteService.call(@project, params[:name], current_user&.gitea_token)
|
|
if @result_object
|
|
# 有开启的pr需要一同关闭
|
|
open_pull_requests = @project.pull_requests.opening.where(head: params[:name]).where(user_id: current_user.id)
|
|
if open_pull_requests.present?
|
|
open_pull_requests.each do |pull_request|
|
|
closed = PullRequests::CloseService.call(@project.owner, @project.repository, pull_request, current_user)
|
|
if closed === true
|
|
pull_request.project_trends.create!(user: current_user, project: @project,action_type: ProjectTrend::CLOSE)
|
|
# 合并请求下issue处理为关闭
|
|
pull_request.issue&.update_attributes!({status_id:5})
|
|
SendTemplateMessageJob.perform_later('PullRequestClosed', current_user.id, pull_request.id) if Site.has_notice_menu?
|
|
end
|
|
end
|
|
end
|
|
return render_ok
|
|
else
|
|
return render_error('删除分支失败!')
|
|
end
|
|
end
|
|
|
|
before_action :require_manager_above, only: [:update_default_branch]
|
|
|
|
def update_default_branch
|
|
@result_object = Api::V1::Projects::Branches::UpdateDefaultBranchService.call(@project, params[:name], current_user&.gitea_token)
|
|
if @result_object
|
|
return render_ok
|
|
else
|
|
return render_error('更新默认分支失败!')
|
|
end
|
|
end
|
|
|
|
private
|
|
def branch_params
|
|
params.require(:branch).permit(:new_branch_name, :old_branch_name)
|
|
end
|
|
end |