Class: UnofficialBuildkiteClient::JsonApiClient
- Inherits:
-
Object
- Object
- UnofficialBuildkiteClient::JsonApiClient
- Defined in:
- lib/unofficial_buildkite_client/json_api_client.rb
Instance Method Summary collapse
-
#initialize(authorization_header: nil, logger:) ⇒ JsonApiClient
constructor
A new instance of JsonApiClient.
- #request(method, url, params: nil) ⇒ Object
Constructor Details
#initialize(authorization_header: nil, logger:) ⇒ JsonApiClient
Returns a new instance of JsonApiClient.
7 8 9 10 |
# File 'lib/unofficial_buildkite_client/json_api_client.rb', line 7 def initialize(authorization_header: nil, logger:) @authorization_header = @logger = logger end |
Instance Method Details
#request(method, url, params: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/unofficial_buildkite_client/json_api_client.rb', line 12 def request(method, url, params: nil) uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true logger.info("method: #{method}, url: #{url}, params: #{params.inspect}") request = case method when :get uri.query = URI.encode_www_form(params) if params Net::HTTP::Get.new(uri.request_uri) when :post Net::HTTP::Post.new(uri.request_uri).tap do |req| req.body = params.to_json if params end else raise NotImplementedError end json_headers.each do |k, v| request[k] = v end response = http.request(request) raise Error.new("#{response.inspect}") unless response.code.start_with?("2") JSON.parse(response.body, symbolize_names: true) end |