|
- 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
|