forgeplus/app/services/pull_requests/open_service.rb

34 lines
828 B
Ruby

class PullRequests::OpenService < ApplicationService
attr_reader :owner, :repo, :pull, :current_user
# eq:
# PullRequests::OpenService.call(owner, repo, pull, current_user)
def initialize(owner, repo, pull, current_user)
@owner = owner
@repo = repo
@pull = pull
@current_user = current_user
end
def call
ActiveRecord::Base.transaction do
return false if open_gitea_pull[:status] != :success
update_pull_status!
return true
end
end
private
def open_gitea_pull
Gitea::PullRequest::OpenService.call(@owner.login, @repo.identifier,
@pull.gitea_number, @pull.base, @current_user.gitea_token)
end
def update_pull_status!
@pull.update(status: PullRequest::OPEN)
@pull.issue.update(status_id: IssueStatus::SOLVING)
end
end