|
|
|
@@ -0,0 +1,54 @@ |
|
|
|
class Api::V1::Projects::Tags::GetService < ApplicationService |
|
|
|
include ActiveModel::Model |
|
|
|
|
|
|
|
attr_reader :project, :token, :owner, :repo, :tag_name |
|
|
|
attr_accessor :gitea_data |
|
|
|
|
|
|
|
validates :tag_name, presence: true |
|
|
|
|
|
|
|
def initialize(project, tag_name, token=nil) |
|
|
|
@project = project |
|
|
|
@owner = project&.owner&.login |
|
|
|
@repo = project&.identifier |
|
|
|
@tag_name = tag_name.to_s |
|
|
|
@token = token |
|
|
|
Rails.logger.info project&.owner&.login |
|
|
|
Rails.logger.info project&.identifier |
|
|
|
Rails.logger.info tag_name |
|
|
|
Rails.logger.info token |
|
|
|
end |
|
|
|
|
|
|
|
def call |
|
|
|
|
|
|
|
raise Error, errors.full_messages.join(",") unless valid? |
|
|
|
|
|
|
|
check_tag_exist |
|
|
|
|
|
|
|
load_gitea_data |
|
|
|
|
|
|
|
gitea_data |
|
|
|
rescue |
|
|
|
raise Error, "服务器错误,请联系系统管理员!" |
|
|
|
end |
|
|
|
|
|
|
|
private |
|
|
|
def request_params |
|
|
|
params = { |
|
|
|
access_token: token |
|
|
|
} |
|
|
|
|
|
|
|
params |
|
|
|
end |
|
|
|
|
|
|
|
def load_gitea_data |
|
|
|
@gitea_data = $gitea_hat_client.get_repos_tags_by_owner_repo_tag(owner, repo, tag_name, {query: request_params}) rescue nil |
|
|
|
raise Error, '获取标签失败!' unless @gitea_data.is_a?(Hash) |
|
|
|
end |
|
|
|
|
|
|
|
def check_tag_exist |
|
|
|
result = $gitea_hat_client.get_repos_tag_name_set_by_owner_repo(owner, repo, {query: request_params}) rescue nil |
|
|
|
|
|
|
|
raise Error, '查询标签名称失败!' unless result.is_a?(Array) |
|
|
|
raise Error, '标签不存在!' if !result.include?(@tag_name) |
|
|
|
end |
|
|
|
end |