Class: Gapic::Rest::ClientStub

Inherits:
Object
  • Object
show all
Defined in:
lib/gapic/rest/client_stub.rb

Overview

A class for making REST calls through Faraday ClientStub's responsibilities:

  • wrap Faraday methods with a bounded explicit interface
  • store service endpoint and create full url for the request
  • store credentials and add auth information to the request

Instance Method Summary collapse

Constructor Details

#initialize(endpoint:, credentials:) {|Faraday::Connection| ... } ⇒ ClientStub

Initializes with an endpoint and credentials

Parameters:

  • endpoint (String)

    an endpoint for the service that this stub will send requests to

  • credentials (Google::Auth::Credentials)

    Credentials to send with calls in form of a googleauth credentials object. (see the googleauth docs)

Yields:

  • (Faraday::Connection)


38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/gapic/rest/client_stub.rb', line 38

def initialize endpoint:, credentials:
  @endpoint = endpoint
  @endpoint = "https://#{endpoint}" unless /^https?:/.match? endpoint
  @endpoint = @endpoint.sub %r{/$}, ""

  @credentials = credentials

  @connection = Faraday.new url: @endpoint do |conn|
    conn.headers = { "Content-Type" => "application/json" }
    conn.request :google_authorization, @credentials unless @credentials.is_a? ::Symbol
    conn.request :retry
    conn.response :raise_error
    conn.adapter :net_http
  end

  yield @connection if block_given?
end

Instance Method Details

#make_delete_request(uri:, params: {}, options: {}) ⇒ Faraday::Response

Makes a DELETE request

Parameters:

  • uri (String)

    uri to send this request to

  • params (Hash) (defaults to: {})

    query string parameters for the request

  • options (::Gapic::CallOptions) (defaults to: {})

    gapic options to be applied to the REST call. Currently only timeout and headers are supported.

Returns:

  • (Faraday::Response)


76
77
78
# File 'lib/gapic/rest/client_stub.rb', line 76

def make_delete_request uri:, params: {}, options: {}
  make_http_request :delete, uri: uri, body: nil, params: params, options: options
end

#make_get_request(uri:, params: {}, options: {}) ⇒ Faraday::Response

Makes a GET request

Parameters:

  • uri (String)

    uri to send this request to

  • params (Hash) (defaults to: {})

    query string parameters for the request

  • options (::Gapic::CallOptions) (defaults to: {})

    gapic options to be applied to the REST call. Currently only timeout and headers are supported.

Returns:

  • (Faraday::Response)


64
65
66
# File 'lib/gapic/rest/client_stub.rb', line 64

def make_get_request uri:, params: {}, options: {}
  make_http_request :get, uri: uri, body: nil, params: params, options: options
end

#make_patch_request(uri:, body:, params: {}, options: {}) ⇒ Faraday::Response

Makes a PATCH request

Parameters:

  • uri (String)

    uri to send this request to

  • body (String)

    a body to send with the request, nil for requests without a body

  • params (Hash) (defaults to: {})

    query string parameters for the request

  • options (::Gapic::CallOptions) (defaults to: {})

    gapic options to be applied to the REST call. Currently only timeout and headers are supported.

Returns:

  • (Faraday::Response)


89
90
91
# File 'lib/gapic/rest/client_stub.rb', line 89

def make_patch_request uri:, body:, params: {}, options: {}
  make_http_request :patch, uri: uri, body: body, params: params, options: options
end

#make_post_request(uri:, body: nil, params: {}, options: {}) ⇒ Faraday::Response

Makes a POST request

Parameters:

  • uri (String)

    uri to send this request to

  • body (String) (defaults to: nil)

    a body to send with the request, nil for requests without a body

  • params (Hash) (defaults to: {})

    query string parameters for the request

  • options (::Gapic::CallOptions) (defaults to: {})

    gapic options to be applied to the REST call. Currently only timeout and headers are supported.

Returns:

  • (Faraday::Response)


102
103
104
# File 'lib/gapic/rest/client_stub.rb', line 102

def make_post_request uri:, body: nil, params: {}, options: {}
  make_http_request :post, uri: uri, body: body, params: params, options: options
end

#make_put_request(uri:, body: nil, params: {}, options: {}) ⇒ Faraday::Response

Makes a PUT request

Parameters:

  • uri (String)

    uri to send this request to

  • body (String) (defaults to: nil)

    a body to send with the request, nil for requests without a body

  • params (Hash) (defaults to: {})

    query string parameters for the request

  • options (::Gapic::CallOptions) (defaults to: {})

    gapic options to be applied to the REST call. Currently only timeout and headers are supported.

Returns:

  • (Faraday::Response)


115
116
117
# File 'lib/gapic/rest/client_stub.rb', line 115

def make_put_request uri:, body: nil, params: {}, options: {}
  make_http_request :put, uri: uri, body: body, params: params, options: options
end