forked from Gitlink/forgeplus
96 lines
1.9 KiB
Ruby
96 lines
1.9 KiB
Ruby
class Gitea::Accelerator::BaseService < ApplicationService
|
|
|
|
def post(url, params)
|
|
puts "[gitea] request params: #{params}"
|
|
puts "[gitea] access_username: #{access_username}"
|
|
puts "[gitea] access_password: #{access_password}"
|
|
conn.post do |req|
|
|
req.url full_url(url)
|
|
req.body = params.to_json
|
|
end
|
|
end
|
|
|
|
private
|
|
def conn
|
|
@client ||= begin
|
|
Faraday.new(url: domain) do |req|
|
|
req.request :url_encoded
|
|
req.headers['Content-Type'] = 'application/json'
|
|
req.response :logger # 显示日志
|
|
req.adapter Faraday.default_adapter
|
|
req.basic_auth(access_username, access_password)
|
|
end
|
|
end
|
|
@client
|
|
end
|
|
|
|
def base_url
|
|
accelerator["base_url"]
|
|
end
|
|
|
|
def domain
|
|
accelerator["domain"]
|
|
end
|
|
|
|
def api_url
|
|
[domain, base_url].join('')
|
|
end
|
|
|
|
def full_url(api_rest, action='post')
|
|
url = [api_url, api_rest].join('').freeze
|
|
url = action === 'get' ? url : URI.escape(url)
|
|
puts "[gitea] request url: #{url}"
|
|
url
|
|
end
|
|
|
|
def access_username
|
|
accelerator["access_key_id"]
|
|
end
|
|
|
|
def access_password
|
|
accelerator["access_key_secret"]
|
|
end
|
|
|
|
def access_uid
|
|
accelerator["access_admin_uid"]
|
|
end
|
|
|
|
def accelerator
|
|
Gitea.gitea_config[:accelerator]
|
|
end
|
|
|
|
def render_status(response)
|
|
puts "[gitea] response status: #{response.status}"
|
|
puts "[gitea] response body: #{response.body}"
|
|
case response.status
|
|
when 201
|
|
success
|
|
when 403
|
|
error('APIForbiddenError')
|
|
when 422
|
|
error('APIValidationError')
|
|
else
|
|
error("MigrateError")
|
|
end
|
|
end
|
|
|
|
def error(message)
|
|
{
|
|
status: :error,
|
|
message: message,
|
|
data: nil
|
|
}
|
|
end
|
|
|
|
def success(data=nil)
|
|
{
|
|
status: :success,
|
|
message: nil,
|
|
data: data
|
|
}
|
|
end
|
|
|
|
def check_accelerator!
|
|
accelerator.blank? || access_username.blank? || access_password.blank? || domain.blank?
|
|
end
|
|
end |