FIX update repositories api
This commit is contained in:
parent
551bae911e
commit
3e2b417cce
|
@ -1,14 +1,12 @@
|
|||
class RepositoriesController < ApplicationController
|
||||
include ApplicationHelper
|
||||
before_action :find_project_identifier
|
||||
before_action :find_repository_with_project
|
||||
before_action :find_user, :authorizate!
|
||||
before_action :require_login, only: %i[edit]
|
||||
before_action :require_login, only: %i[edit update create_file update_file delete_file]
|
||||
before_action :find_project, :authorizate!
|
||||
|
||||
def show
|
||||
@branches_count = Gitea::Repository::BranchesService.new(@user, @repo.identifier).call&.size
|
||||
@commits_count = Gitea::Repository::Commits::ListService.new(@user, @repo.identifier).call[:total_count]
|
||||
@result = Gitea::Repository::GetService.new(@user, @repo.identifier).call
|
||||
@branches_count = Gitea::Repository::BranchesService.new(@project.owner, @project.identifier).call&.size
|
||||
@commits_count = Gitea::Repository::Commits::ListService.new(@project.owner, @project.identifier).call[:total_count]
|
||||
@result = Gitea::Repository::GetService.new(@project.owner, @project.identifier).call
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(e.message)
|
||||
|
@ -17,13 +15,13 @@ class RepositoriesController < ApplicationController
|
|||
def entries
|
||||
@project.increment!(:visits)
|
||||
@ref = params[:branch] || "master"
|
||||
@entries = Gitea::Repository::Entries::ListService.new(@user, @repo.identifier, ref:@ref).call
|
||||
@entries = Gitea::Repository::Entries::ListService.new(@project.owner, @project.identifier, ref:@ref).call
|
||||
@entries = @entries.sort_by{ |hash| hash['type'] }
|
||||
end
|
||||
|
||||
def sub_entries
|
||||
file_path_uri = URI.parse(URI.encode(params[:filepath].to_s.strip))
|
||||
interactor = Repositories::EntriesInteractor.call(@user, @repo.identifier, file_path_uri, ref: params[:ref])
|
||||
interactor = Repositories::EntriesInteractor.call(@project.owner, @project.identifier, file_path_uri, ref: params[:ref])
|
||||
if interactor.success?
|
||||
@sub_entries = interactor.result
|
||||
@sub_entries = [] << @sub_entries unless @sub_entries.is_a? Array
|
||||
|
@ -34,34 +32,69 @@ class RepositoriesController < ApplicationController
|
|||
end
|
||||
|
||||
def commits
|
||||
@hash_commit = Gitea::Repository::Commits::ListService.new(@user, @repo.identifier, sha: params[:sha], page: params[:page]).call
|
||||
@hash_commit = Gitea::Repository::Commits::ListService.new(@project.owner, @project.identifier, sha: params[:sha], page: params[:page]).call
|
||||
end
|
||||
|
||||
def single_commit
|
||||
@commit = Gitea::Repository::Commits::GetService.new(@user, @repo.identifier, params[:sha]).call
|
||||
@commit = Gitea::Repository::Commits::GetService.new(@project.owner, @project.identifier, params[:sha]).call
|
||||
end
|
||||
|
||||
def tags
|
||||
@tags = Gitea::Repository::Tags::ListService.new(@user, @repo.identifier).call
|
||||
@tags = Gitea::Repository::Tags::ListService.new(@project, @project.identifier).call
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def create_file
|
||||
interactor = Gitea::CreateFileInteractor.call(current_user, content_params)
|
||||
if interactor.success?
|
||||
@file = interactor.result
|
||||
else
|
||||
render_error(interactor.error)
|
||||
end
|
||||
end
|
||||
|
||||
def update_file
|
||||
interactor = Gitea::UpdateFileInteractor.call(current_user, params.merge(identifier: @project.identifier).compact)
|
||||
if interactor.success?
|
||||
@file = interactor.result
|
||||
else
|
||||
render_error(interactor.error)
|
||||
end
|
||||
end
|
||||
|
||||
def delete_file
|
||||
interactor = Gitea::DeleteFileInteractor.call(current_user, params.merge(identifier: @project.identifier).compact)
|
||||
if interactor.success?
|
||||
@file = interactor.result
|
||||
else
|
||||
render_error(interactor.error)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def find_project
|
||||
@project = Project.find params[:id]
|
||||
# render_not_found("未找到相关的仓库") unless @project
|
||||
end
|
||||
|
||||
def authorizate!
|
||||
if @repo.hidden? && @repo.user != current_user
|
||||
if @project.repository.hidden? && !@project.member?(current_user)
|
||||
render_forbidden
|
||||
end
|
||||
end
|
||||
|
||||
def find_project_identifier
|
||||
@project = Project.find_by(id: params[:repo_identifier])
|
||||
render_not_found("未找到’#{params[:repo_identifier]}’相关的项目") unless @project
|
||||
def content_params
|
||||
{
|
||||
filepath: params[:filepath],
|
||||
branch: params[:branch],
|
||||
new_branch: params[:new_branch],
|
||||
content: params[:content],
|
||||
message: params[:message],
|
||||
identifier: @project.identifier
|
||||
}
|
||||
end
|
||||
|
||||
def find_repository_with_project
|
||||
@repo = @project.repository
|
||||
render_not_found("未找到’#{params[:repo_identifier]}’相关的仓库") unless @repo
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Contents::CreateForm < BaseForm
|
||||
attr_accessor :login, :repo_identifier, :filepath, :branch, :new_branch
|
||||
attr_accessor :filepath, :branch, :new_branch
|
||||
|
||||
validates :login, :repo_identifier, :filepath, presence: true
|
||||
validates :filepath, presence: true
|
||||
|
||||
validate :check_branch
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class Contents::DeleteForm < BaseForm
|
||||
attr_accessor :login, :repo_identifier, :filepath, :branch, :new_branch, :sha
|
||||
attr_accessor :filepath, :branch, :new_branch, :sha
|
||||
|
||||
validates :login, :repo_identifier, :filepath, :sha, presence: true
|
||||
validates :filepath, :sha, presence: true
|
||||
|
||||
end
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
class Contents::UpdateForm < BaseForm
|
||||
attr_accessor :login, :repo_identifier, :filepath, :branch, :new_branch, :sha
|
||||
attr_accessor :filepath, :branch, :new_branch, :sha
|
||||
|
||||
validates :login, :repo_identifier, :filepath, :sha, presence: true
|
||||
validates :filepath, :sha, presence: true
|
||||
|
||||
validate :check_branch
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ module Gitea
|
|||
|
||||
def run
|
||||
Contents::CreateForm.new(valid_params).validate!
|
||||
response = Gitea::Repository::Entries::CreateService.new(user, @params[:repo_identifier], @params[:filepath], file_params).call
|
||||
response = Gitea::Repository::Entries::CreateService.new(user, @params[:identifier], @params[:filepath], file_params).call
|
||||
render_result(response)
|
||||
rescue Exception => exception
|
||||
Rails.logger.info "Exception ===========> #{exception.message}"
|
||||
|
@ -45,8 +45,6 @@ module Gitea
|
|||
|
||||
def valid_params
|
||||
{
|
||||
login: @params[:login],
|
||||
repo_identifier: @params[:repo_identifier],
|
||||
filepath: @params[:filepath],
|
||||
branch: @params[:branch],
|
||||
new_branch: @params[:new_branch]
|
||||
|
|
|
@ -23,7 +23,7 @@ module Gitea
|
|||
|
||||
def run
|
||||
Contents::DeleteForm.new(valid_params).validate!
|
||||
response = Gitea::Repository::Entries::DeleteService.new(user, @params[:repo_identifier], @params[:filepath], file_params).call
|
||||
response = Gitea::Repository::Entries::DeleteService.new(user, @params[:identifier], @params[:filepath], file_params).call
|
||||
render_result(response)
|
||||
rescue Exception => exception
|
||||
fail!(exception.message)
|
||||
|
@ -46,8 +46,6 @@ module Gitea
|
|||
|
||||
def valid_params
|
||||
{
|
||||
login: @params[:login],
|
||||
repo_identifier: @params[:repo_identifier],
|
||||
filepath: @params[:filepath],
|
||||
sha: @params[:sha]
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ module Gitea
|
|||
|
||||
def run
|
||||
Contents::UpdateForm.new(valid_params).validate!
|
||||
response = Gitea::Repository::Entries::UpdateService.new(user, @params[:repo_identifier], @params[:filepath], file_params).call
|
||||
response = Gitea::Repository::Entries::UpdateService.new(user, @params[:identifier], @params[:filepath], file_params).call
|
||||
render_result(response)
|
||||
rescue Exception => exception
|
||||
fail!(exception.message)
|
||||
|
@ -46,8 +46,6 @@ module Gitea
|
|||
|
||||
def valid_params
|
||||
{
|
||||
login: @params[:login],
|
||||
repo_identifier: @params[:repo_identifier],
|
||||
filepath: @params[:filepath],
|
||||
branch: @params[:branch],
|
||||
new_branch: @params[:new_branch],
|
||||
|
|
|
@ -5,6 +5,6 @@ json.commits do
|
|||
json.message commit['commit']['message']
|
||||
json.timestamp render_unix_time(commit['commit']['author']['date'])
|
||||
json.time_from_now time_from_now(commit['commit']['author']['date'])
|
||||
json.partial! 'author', user: @repo.user
|
||||
json.partial! 'author', user: @project.user
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
json.identifier @repo.identifier
|
||||
json.project_id @repo&.project.id
|
||||
json.project_name @repo&.project.name
|
||||
json.project_identifier @repo.project.identifier
|
||||
json.project_description @repo&.project.description
|
||||
json.project_category_id @repo&.project.project_category_id
|
||||
json.project_language_id @repo&.project.project_language_id
|
||||
json.private @repo.hidden
|
||||
json.identifier @project.identifier
|
||||
json.project_id @project.id
|
||||
json.project_name @rproject.name
|
||||
json.project_identifier @rproject.identifier
|
||||
json.project_description @project.description
|
||||
json.project_category_id @project.project_category_id
|
||||
json.project_language_id @project.project_language_id
|
||||
json.private @rhidden
|
||||
|
|
|
@ -9,7 +9,7 @@ json.array! @entries do |entry|
|
|||
# json.commit entry['commit']
|
||||
|
||||
if entry['name'] == "README.md"
|
||||
readme_md = Gitea::Repository::Entries::GetService.new(@user, @repo.identifier, entry['path'], ref:@ref).call
|
||||
readme_md = Gitea::Repository::Entries::GetService.new(@project.owner, @project.identifier, entry['path'], ref:@ref).call
|
||||
json.name readme_md['name']
|
||||
json.path readme_md['path']
|
||||
json.sha readme_md['sha']
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
json.identifier @repo.identifier
|
||||
json.identifier @project.identifier
|
||||
json.project_id @project.id
|
||||
json.issues_count @project.issues_count
|
||||
json.pull_requests_count @project.pull_requests_count
|
||||
json.project_identifier @project.identifier
|
||||
json.praises_count @repo.project.praises_count
|
||||
json.forked_count @repo.project.forked_count
|
||||
json.watchers_count @repo.project.watchers_count
|
||||
json.praises_count @rproject.praises_count
|
||||
json.forked_count @rproject.forked_count
|
||||
json.watchers_count @project.watchers_count
|
||||
json.branches_count @branches_count
|
||||
json.commits_count @commits_count
|
||||
json.permission render_edit_project_permission(current_user, @project)
|
||||
json.mirror_url @repo.mirror_url
|
||||
json.mirror_url @project&.repository.mirror_url
|
||||
json.watched current_user&.watched?(@project)
|
||||
json.praised current_user&.liked?(@project)
|
||||
json.size @result['size']
|
||||
|
@ -20,4 +20,4 @@ json.empty @result['empty']
|
|||
json.full_name @result['full_name']
|
||||
json.mirror @result['mirror']
|
||||
json.private @result['private']
|
||||
json.partial! 'author', locals: { user: @repo.user }
|
||||
json.partial! 'author', locals: { user: @project.user }
|
||||
|
|
|
@ -180,23 +180,17 @@ Rails.application.routes.draw do
|
|||
end
|
||||
end
|
||||
|
||||
get '/:login/:repo_identifier', to: 'repositories#show'
|
||||
get '/:login/:repo_identifier/edit', to: 'repositories#edit'
|
||||
resources :repositories, path: '/:login/:repo_identifier', only: [:index] do
|
||||
collection do
|
||||
resources :repositories, only: [:index, :show, :edit] do
|
||||
member do
|
||||
get :entries
|
||||
match :sub_entries, :via => [:get, :put]
|
||||
get :commits
|
||||
get :single_commit
|
||||
post :files
|
||||
get :tags
|
||||
end
|
||||
end
|
||||
|
||||
resources :contents, path: '/:login/:repo_identifier/contents', only: [:create] do
|
||||
collection do
|
||||
put 'files/update', :action => 'update_file'
|
||||
delete 'files/delete', :action => 'delete_file'
|
||||
post :create_file
|
||||
put :update_file
|
||||
delete :delete_file
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue