Module: Whitehouse::Client::Webhook

Included in:
Whitehouse::Client
Defined in:
lib/whitehouse/client/webhook.rb

Overview

Methods for the Request Catalog API

Instance Method Summary collapse

Instance Method Details

#create_webhook(uri) ⇒ Boolean

Create a callback

Parameters:

  • Callback (String)

    URI

Returns:

  • (Boolean)

    Success



12
13
14
15
16
# File 'lib/whitehouse/client/webhook.rb', line 12

def create_webhook(uri)
  response = post 'callback/create', {callbackUri: uri}
  response.body
  response.success? && !response.body.ErrorNumber
end

#verify_webhook(verifier) ⇒ Boolean

Verify callback

Parameters:

  • Verifier (String)

    token provided by WHCC POSTing to the callback uri upon creation.

Returns:

  • (Boolean)

    Success



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/whitehouse/client/webhook.rb', line 21

def verify_webhook(verifier)
  # This endpoint does not respond with json, so not using faraday connection
  # response = connection.post 'callback/create', {callbackUri: uri}
  # response.body
  # response.success? && !response.body.ErrorNumber

  url = connection.url_prefix + URI.parse("callback/verify")
  header = {"Accept" => "text/xml"}

  # Create the HTTP objects
  request = Net::HTTP::Post.new(url.path, header)
  request.set_form_data(access_token: access_token, verifier: verifier)
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  res = http.request(request)
  return res.is_a?(Net::HTTPSuccess) && res.body.scan('Failed').empty?
end