Class: NgrokAPI::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/ngrokapi/http_client.rb

Overview

Low-level api client for communicating with Ngrok's HTTP API using HTTP. You should not have to use this class directly, but use the individual clients to make your API calls.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, base_url: 'https://api.ngrok.com') ⇒ HttpClient

Returns a new instance of HttpClient.



11
12
13
14
15
16
17
# File 'lib/ngrokapi/http_client.rb', line 11

def initialize(
  api_key:,
  base_url: 'https://api.ngrok.com'
)
  @api_key = api_key
  @base_url = base_url
end

Instance Attribute Details

#api_key ⇒ Object (readonly)

Returns the value of attribute api_key.



8
9
10
# File 'lib/ngrokapi/http_client.rb', line 8

def api_key
  @api_key
end

#base_url ⇒ Object (readonly)

Returns the value of attribute base_url.



8
9
10
# File 'lib/ngrokapi/http_client.rb', line 8

def base_url
  @base_url
end

Instance Method Details

#delete(path) ⇒ nil

Make a DELETE request to a given URI

Parameters:

  • path (string) —

    URL resource path

Returns:

  • (nil)


24
25
26
27
28
# File 'lib/ngrokapi/http_client.rb', line 24

def delete(path)
  uri = get_uri(path)
  req = Net::HTTP::Delete.new(uri, headers)
  json_do(uri, req)
end

#get(path, data: {}) ⇒ json

Make a GET request to a given URI with optional data

Parameters:

  • path (string) —

    URL resource path

  • data (hash) (defaults to: {}) —

    hash which will be converted to query parameters or form data

Returns:

  • (json) —

    response body



36
37
38
39
40
# File 'lib/ngrokapi/http_client.rb', line 36

def get(path, data: {})
  uri = get_uri(path, data: data)
  req = Net::HTTP::Get.new(uri, headers)
  json_do(uri, req)
end

#list(before_id: nil, limit: nil, path: nil, url: nil) ⇒ json

Make a GET request

Parameters:

  • before_id (string) (defaults to: nil) —

    URL resource path

  • limit (integer) (defaults to: nil) —

    URL resource path

  • path (string) (defaults to: nil) —

    resource path, mutually exclusive with url

  • url (string) (defaults to: nil) —

    Full URL of the resource, mutually exclusive with path

Returns:

  • (json) —

    response body



50
51
52
53
54
55
56
57
58
59
# File 'lib/ngrokapi/http_client.rb', line 50

def list(before_id: nil, limit: nil, path: nil, url: nil)
  if url
    get(url)
  else
    data = {}
    data[:before_id] = before_id if before_id
    data[:limit] = limit if limit
    get(path, data: data)
  end
end

#patch(path, data: {}) ⇒ json

Make a PATCH request to a given URI with optional data

Parameters:

  • path (string) —

    URL resource path

  • data (hash) (defaults to: {}) —

    hash which will be converted to query parameters or form data

Returns:

  • (json) —

    response body



67
68
69
70
71
# File 'lib/ngrokapi/http_client.rb', line 67

def patch(path, data: {})
  uri = get_uri(path)
  req = Net::HTTP::Patch.new(uri, headers_with_json)
  json_do(uri, req, data: data.to_json)
end

#post(path, data: {}) ⇒ json

Make a POST request to a given URI with optional data

Parameters:

  • path (string) —

    URL resource path

  • data (hash) (defaults to: {}) —

    hash which will be converted to query parameters or form data

Returns:

  • (json) —

    response body



79
80
81
82
83
# File 'lib/ngrokapi/http_client.rb', line 79

def post(path, data: {})
  uri = get_uri(path)
  req = Net::HTTP::Post.new(uri, headers_with_json)
  json_do(uri, req, data: data.to_json)
end