forgeplus/app/interactors/gitea/delete_file_interactor.rb

77 lines
1.7 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module Gitea
class DeleteFileInteractor
def self.call(token, owner, params={})
interactor = new(token, owner, params)
interactor.run
interactor
end
attr_reader :error, :result
def initialize(token, owner, params)
@token = token
@owner = owner
@params = params
end
def success?
@error.nil?
end
def result
@result
end
def run
Contents::DeleteForm.new(valid_params).validate!
response = Gitea::Repository::Entries::DeleteService.new(token, owner, @params[:identifier], file_path, file_params).call
render_result(response)
rescue Exception => exception
fail!(exception.message)
end
private
attr_reader :params, :owner, :token
def fail!(error)
puts "[exception]: error"
@error = error
end
def render_result(response)
if response.status == 200
@result = JSON.parse(response.body)
else
Rails.logger.error("Gitea::Repository::Entries::DeleteService error[#{response.status}]======#{response.body}")
@error = "删除失败,请确认该分支是否是保护分支。"
@error = "删除失败参数sha不匹配。" if response.body.to_s.include?("sha does not match")
end
end
def file_path
if @params[:base64_filepath].present?
Base64.decode64(params[:base64_filepath])
else
@params[:filepath]
end
end
def valid_params
{
filepath: file_path,
sha: @params[:sha]
}
end
def file_params
Hash.new.merge(
branch: @params[:branch],
sha: @params[:sha],
new_branch: @params[:new_branch],
message: @params[:message],
).compact
end
end
end