|
- class Api::V1::Projects::CompareService < ApplicationService
- include ActiveModel::Model
- attr_reader :project, :from, :to, :token, :owner, :repo
- attr_accessor :gitea_data
-
- validates :from, :to, presence: true
-
- def initialize(project, from, to, token=nil)
- @project = project
- @owner = project&.owner.login
- @repo = project&.identifier
- @from = from
- @to = to
- @token = token
- end
-
- def call
- raise Error, errors.full_messages.join(",") unless valid?
- load_gitea_data
- raise Error, '获取对比信息失败!' unless gitea_data.is_a?(Hash)
- gitea_data
- end
-
- private
- def request_params
- {
- access_token: token
- }
- end
-
- def load_gitea_data
- @gitea_data = $gitea_hat_client.get_repos_compare_by_owner_repo_baseref_headref(owner, repo, to, from, {query: request_params}) rescue nil
- end
- end
|