forked from Gitlink/forgeplus
50 lines
1.3 KiB
Ruby
50 lines
1.3 KiB
Ruby
class Api::V1::Projects::GetService < ApplicationService
|
|
|
|
attr_reader :project, :token, :owner, :repo
|
|
attr_accessor :gitea_data, :gitea_branch_tag_count
|
|
|
|
def initialize(project, token=nil)
|
|
@project = project
|
|
@owner = project&.owner.login
|
|
@repo = project&.identifier
|
|
@token = token
|
|
end
|
|
|
|
def call
|
|
load_gitea_data
|
|
load_gitea_branch_tag_count
|
|
|
|
result_object
|
|
rescue
|
|
raise Error, "服务器错误,请联系系统管理员!"
|
|
end
|
|
|
|
private
|
|
def request_params
|
|
{
|
|
access_token: token
|
|
}
|
|
end
|
|
|
|
def result_object
|
|
{
|
|
full_name: "#{owner}/#{repo}",
|
|
owner: project&.owner,
|
|
ssh_url: gitea_data["ssh_url"],
|
|
clone_url: gitea_data["clone_url"],
|
|
size: gitea_data["size"],
|
|
default_branch: gitea_data["default_branch"],
|
|
empty: gitea_data["empty"],
|
|
branch_count: gitea_branch_tag_count["branch_count"],
|
|
tag_count: gitea_branch_tag_count["tag_count"],
|
|
}
|
|
end
|
|
|
|
def load_gitea_data
|
|
@gitea_data = $gitea_client.get_repos_by_owner_repo(owner, repo, {query: request_params}) rescue nil
|
|
end
|
|
|
|
def load_gitea_branch_tag_count
|
|
@gitea_branch_tag_count = $gitea_client.get_repos_branch_tag_count_by_owner_repo(owner, repo, {query: request_params}) rescue nil
|
|
end
|
|
end |