forked from Gitlink/forgeplus
34 lines
862 B
Ruby
34 lines
862 B
Ruby
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 |