FIX repositories detail api bug

This commit is contained in:
jasder 2021-03-27 23:54:14 +08:00
parent e1d7b0b881
commit ad4617288d
2 changed files with 21 additions and 19 deletions

View File

@ -17,15 +17,15 @@ class RepositoriesController < ApplicationController
end end
# 新版项目详情 # 新版项目详情
def detail def detail
@user = current_user @user = current_user
@result = Repositories::DetailService.call(@owner, @repository, @user) @result = Repositories::DetailService.call(@owner, @repository, @user)
@project_fork_id = @project.try(:forked_from_project_id) @project_fork_id = @project.try(:forked_from_project_id)
if @project_fork_id.present? if @project_fork_id.present?
@fork_project = Project.find_by(id: @project_fork_id) @fork_project = Project.find_by(id: @project_fork_id)
@fork_project_user = @fork_project.owner @fork_project_user = @fork_project.owner
end end
rescue Exception => e rescue Exception => e
uid_logger_error(e.message) uid_logger_error(e.message)
tip_exception(e.message) tip_exception(e.message)
end end
@ -210,7 +210,7 @@ class RepositoriesController < ApplicationController
end end
def get_ref def get_ref
@ref = params[:ref] || @project.default_branch @ref = params[:ref] || @project&.default_branch
end end
def get_latest_commit def get_latest_commit

View File

@ -1,14 +1,14 @@
class Repositories::DetailService < ApplicationService class Repositories::DetailService < ApplicationService
include Repository::LanguagesPercentagable include Repository::LanguagesPercentagable
attr_reader :owner, :repo, :user attr_reader :owner, :repo, :user
def initialize(owner, repo, user) def initialize(owner, repo, user)
@owner = owner @owner = owner
@repo = repo @repo = repo
@user = user @user = user
end end
def call def call
if @repo.project.educoder? if @repo.project.educoder?
return { return {
repo: {}, repo: {},
release: [], release: [],
@ -31,7 +31,7 @@ class Repositories::DetailService < ApplicationService
end end
end end
private private
def repo_suitable def repo_suitable
Gitea::Repository::GetService.call(@owner, @repo.identifier) Gitea::Repository::GetService.call(@owner, @repo.identifier)
end end
@ -41,24 +41,26 @@ class Repositories::DetailService < ApplicationService
end end
def branch_suitable def branch_suitable
Gitea::Repository::Branches::ListService.call(@owner, @repo.identifier) branches = Gitea::Repository::Branches::ListService.call(@owner, @repo.identifier)
branches.is_a?(Hash) && branches[:status] == :error ? [] : branches
end end
def tag_suitable def tag_suitable
Gitea::Repository::Tags::ListService.call(@owner&.gitea_token, @owner.login, @repo.identifier) tags = Gitea::Repository::Tags::ListService.call(@owner&.gitea_token, @owner.login, @repo.identifier)
tags.is_a?(Hash) && tags[:status] == -1 ? [] : tags
end end
def contributor_suitable def contributor_suitable
Gitea::Repository::Contributors::GetService.call(@owner, @repo.identifier) Gitea::Repository::Contributors::GetService.call(@owner, @repo.identifier)
end end
def language_suitable def language_suitable
result = Gitea::Repository::Languages::ListService.call(@owner.login, @repo.identifier, @user&.gitea_token) result = Gitea::Repository::Languages::ListService.call(@owner.login, @repo.identifier, @user&.gitea_token)
result[:status] === :success ? hash_transform_precentagable(result[:body]) : nil result[:status] === :success ? hash_transform_precentagable(result[:body]) : nil
end end
def readme_suitable def readme_suitable
result = Gitea::Repository::Readme::GetService.call(@owner.login, @repo.identifier, @repo.default_branch, @owner.gitea_token) result = Gitea::Repository::Readme::GetService.call(@owner.login, @repo.identifier, @repo.default_branch, @owner.gitea_token)
result[:status] === :success ? result[:body] : nil result[:status] === :success ? result[:body] : nil
end end
end end