Class: Webhookapp::Tunnel::Requester

Inherits:
Object
  • Object
show all
Defined in:
lib/webhookapp/tunnel/requester.rb

Defined Under Namespace

Classes: RequestError

Constant Summary collapse

DEFAULT_REQUEST_SITE =
'https://www.webhookapp.com'
DEFAULT_REQUEST_PATH =
"#{DEFAULT_REQUEST_SITE}/api/tunnels"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hook_id, client_id, username, password) ⇒ Requester

Returns a new instance of Requester.

Raises:

  • (ArgumentError)


15
16
17
18
19
20
# File 'lib/webhookapp/tunnel/requester.rb', line 15

def initialize(hook_id, client_id, username, password)
  raise ArgumentError, "Hook id cannot be nil" if hook_id.nil?
  raise ArgumentError, "Client id cannot be nil" if client_id.nil?

  set_request_details(hook_id, client_id, username, password)
end

Instance Attribute Details

#request_pathObject

Returns the value of attribute request_path.



13
14
15
# File 'lib/webhookapp/tunnel/requester.rb', line 13

def request_path
  @request_path
end

Instance Method Details

#request_tunnelObject



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/webhookapp/tunnel/requester.rb', line 22

def request_tunnel
  uri = URI(@request_path)
  client = OAuth2::Client.new(@client_id, nil, site: @site, max_redirects: 0, ssl: { verify: @verify_ssl })
  headers = {
    accept: "application/vnd.webhookapp.v#{PROTOCOL_VERSION}+json",
    'user-agent' => "WebhookApp Tunnel v#{Webhookapp::VERSION}"
  }
  token = client.password.get_token(@username, @password, headers: headers)
  res = token.post(uri, headers: headers)

  handle_response(res)
end