|
- 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
|