Class: Ribose::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/ribose/request.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_method, endpoint, **data) ⇒ Ribose::Request

Initialize a Request

Parameters:

  • http_method (Symbol)

    HTTP verb as sysmbol

  • endpoint (String)

    The relative API endpoint

  • data (Hash)

    Attributes / Options as a Hash



10
11
12
13
14
15
# File 'lib/ribose/request.rb', line 10

def initialize(http_method, endpoint, **data)
  @data = data
  @endpoint = endpoint
  @http_method = http_method
  @client = find_suitable_client
end

Class Method Details

.delete(endpoint, options = {}) ⇒ Sawyer::Resource

Make a HTTP DELETE Request

Parameters:

  • endpoint (String)

    The relative API endpoint

Returns:

  • (Sawyer::Resource)


65
66
67
# File 'lib/ribose/request.rb', line 65

def self.delete(endpoint, options = {})
  new(:delete, endpoint, options).request
end

.get(endpoint, options = {}) ⇒ Sawyer::Resource

Make a HTTP GET Request

Parameters:

  • endpoint (String)

    The relative API endpoint

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

    The additional query params

Returns:

  • (Sawyer::Resource)


36
37
38
# File 'lib/ribose/request.rb', line 36

def self.get(endpoint, options = {})
  new(:get, endpoint, options).request
end

.post(endpoint, data) ⇒ Sawyer::Resource

Make a HTTP POST Request

Parameters:

  • endpoint (String)

    The relative API endpoint

  • data (Hash)

    The request data as a Hash

Returns:

  • (Sawyer::Resource)


46
47
48
# File 'lib/ribose/request.rb', line 46

def self.post(endpoint, data)
  new(:post, endpoint, data).request
end

.put(endpoint, data) ⇒ Sawyer::Resource

Make a HTTP PUT Request

Parameters:

  • endpoint (String)

    The relative API endpoint

  • data (Hash)

    The request data as a Hash

Returns:

  • (Sawyer::Resource)


56
57
58
# File 'lib/ribose/request.rb', line 56

def self.put(endpoint, data)
  new(:put, endpoint, data).request
end

Instance Method Details

#request(options = {}) ⇒ Sawyer::Resource

Make a HTTP Request

Parameters:

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

    Additonal options hash

Returns:

  • (Sawyer::Resource)


22
23
24
25
26
27
28
# File 'lib/ribose/request.rb', line 22

def request(options = {})
  parsable = extract_config_option(:parse) != false
  options[:query] = extract_config_option(:query) || {}

  response = agent.call(http_method, api_endpoint, data, options)
  parsable == true ? response.data : response
end