FIX 解决在线创建文件错误提示信息不准确的问题
This commit is contained in:
parent
aff088a444
commit
855c51a470
|
@ -24,8 +24,14 @@ module Gitea
|
||||||
|
|
||||||
def run
|
def run
|
||||||
Contents::CreateForm.new(valid_params).validate!
|
Contents::CreateForm.new(valid_params).validate!
|
||||||
response = Gitea::Repository::Entries::CreateService.new(token, owner, @params[:identifier], @params[:filepath], file_params).call
|
result = Gitea::Repository::Entries::CreateService.call(token,
|
||||||
render_result(response)
|
owner, @params[:identifier], @params[:filepath], file_params)
|
||||||
|
|
||||||
|
if result[:status] == :success
|
||||||
|
@result = result[:body]
|
||||||
|
else
|
||||||
|
fail!(result[:message])
|
||||||
|
end
|
||||||
rescue Exception => exception
|
rescue Exception => exception
|
||||||
Rails.logger.info "Exception ===========> #{exception.message}"
|
Rails.logger.info "Exception ===========> #{exception.message}"
|
||||||
fail!(exception.message)
|
fail!(exception.message)
|
||||||
|
|
|
@ -214,6 +214,14 @@ class Gitea::ClientService < ApplicationService
|
||||||
[body, message]
|
[body, message]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def json_parse!(body)
|
||||||
|
return nil unless body.present?
|
||||||
|
|
||||||
|
body = JSON.parse(body)
|
||||||
|
body, message = fix_body(body)
|
||||||
|
body
|
||||||
|
end
|
||||||
|
|
||||||
def log_error(status, body)
|
def log_error(status, body)
|
||||||
puts "[gitea] status: #{status}"
|
puts "[gitea] status: #{status}"
|
||||||
puts "[gitea] body: #{body&.force_encoding('UTF-8')}"
|
puts "[gitea] body: #{body&.force_encoding('UTF-8')}"
|
||||||
|
|
|
@ -30,8 +30,7 @@ class Gitea::Repository::Entries::CreateService < Gitea::ClientService
|
||||||
|
|
||||||
def call
|
def call
|
||||||
response = post(url, params)
|
response = post(url, params)
|
||||||
|
response_payload(response)
|
||||||
render_201_response(response)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -43,4 +42,21 @@ class Gitea::Repository::Entries::CreateService < Gitea::ClientService
|
||||||
"/repos/#{owner}/#{repo_name}/contents/#{filepath}".freeze
|
"/repos/#{owner}/#{repo_name}/contents/#{filepath}".freeze
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def response_payload(response)
|
||||||
|
status = response.status
|
||||||
|
body = response&.body
|
||||||
|
|
||||||
|
log_error(status, body)
|
||||||
|
status_payload(status, body)
|
||||||
|
end
|
||||||
|
|
||||||
|
def status_payload(status, body)
|
||||||
|
case status
|
||||||
|
when 201 then success(json_parse!(body))
|
||||||
|
when 403 then error("你没有权限操作!")
|
||||||
|
when 404 then error("你操作的链接不存在!")
|
||||||
|
when 422 then error("#{filepath}文件已存在,不能重复创建!")
|
||||||
|
else error("系统错误!")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue