class Koine::RestClient::Client

Public Class Methods

new( adapter: Adapters::HttpPartyAdapter.new, response_parser: ResponseParser.new, base_request: Request.new ) click to toggle source
# File lib/koine/rest_client/client.rb, line 8
def initialize(
  adapter: Adapters::HttpPartyAdapter.new,
  response_parser: ResponseParser.new,
  base_request: Request.new
)
  @adapter = adapter
  @response_parser = response_parser
  @request = base_request
end

Public Instance Methods

async() { |builder| ... } click to toggle source
# File lib/koine/rest_client/client.rb, line 68
def async
  builder = AsyncBuilder.new(self, @response_parser)
  yield(builder)
  builder.parsed_responses
end
create_delete_request(path, body = {}, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 64
def create_delete_request(path, body = {}, options = {})
  create_request(:delete, path, options.merge(body: body))
end
create_get_request(path, query = {}, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 24
def create_get_request(path, query = {}, options = {})
  create_request(:get, path, options.merge(query_params: query))
end
create_patch_request(path, body = {}, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 54
def create_patch_request(path, body = {}, options = {})
  create_request(:patch, path, options.merge(body: body))
end
create_post_request(path, body = {}, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 34
def create_post_request(path, body = {}, options = {})
  create_request(:post, path, options.merge(body: body))
end
create_put_request(path, body = {}, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 44
def create_put_request(path, body = {}, options = {})
  create_request(:put, path, options.merge(body: body))
end
delete(path, body = {}, options = {}, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 58
def delete(path, body = {}, options = {}, &block)
  request = create_delete_request(path, body, options)
  response = perform_request(request)
  parse_response(response, &block)
end
get(path, query = {}, options = {}, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 18
def get(path, query = {}, options = {}, &block)
  request = create_get_request(path, query, options)
  response = perform_request(request)
  parse_response(response, &block)
end
patch(path, body = {}, options = {}, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 48
def patch(path, body = {}, options = {}, &block)
  request = create_patch_request(path, body, options)
  response = perform_request(request)
  parse_response(response, &block)
end
perform_request(request) click to toggle source
# File lib/koine/rest_client/client.rb, line 74
def perform_request(request)
  @adapter.send_request(request)
end
post(path, body = {}, options = {}, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 28
def post(path, body = {}, options = {}, &block)
  request = create_post_request(path, body, options)
  response = perform_request(request)
  parse_response(response, &block)
end
put(path, body = {}, options = {}, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 38
def put(path, body = {}, options = {}, &block)
  request = create_put_request(path, body, options)
  response = perform_request(request)
  parse_response(response, &block)
end

Private Instance Methods

create_request(method, path, options = {}) click to toggle source
# File lib/koine/rest_client/client.rb, line 80
def create_request(method, path, options = {})
  options = options.merge(method: method, path: path)
  @request.with_added_options(options)
end
parse_response(response, &block) click to toggle source
# File lib/koine/rest_client/client.rb, line 85
def parse_response(response, &block)
  @response_parser.parse(response, &block)
end