class PactBroker::Domain::WebhookRequest
Constants
- HEADERS_TO_REDACT
Attributes
body[RW]
cert_store[RW]
disable_ssl_verification[RW]
headers[RW]
http_method[RW]
method[RW]
password[RW]
url[RW]
user_agent[RW]
username[RW]
uuid[RW]
Public Class Methods
new(attributes = {})
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 27 def initialize attributes = {} attributes.each do | (name, value) | instance_variable_set("@#{name}", value) if respond_to?(name) end @headers = attributes[:headers] || {} end
Public Instance Methods
description()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 34 def description "#{method.upcase} #{URI(url).host}" end
display_password()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 38 def display_password password.nil? ? nil : "**********" end
execute()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 49 def execute options = PactBroker::BuildHttpOptions.call(uri, disable_ssl_verification: disable_ssl_verification, cert_store: cert_store).merge(read_timeout: 15, open_timeout: 15) req = http_request Net::HTTP.start(uri.hostname, uri.port, :ENV, options) do |http| http.request req end end
http_request()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 57 def http_request @http_request ||= begin req = Net::HTTP.const_get(method.capitalize).new(uri.request_uri) req.delete("accept-encoding") req["user-agent"] = user_agent headers.each_pair { | name, value | req[name] = value } req.basic_auth(username, password) if username && username.size > 0 req.body = body unless body.nil? req end end
redacted_headers()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 42 def redacted_headers headers.each_with_object({}) do | (name, value), new_headers | redact = HEADERS_TO_REDACT.any?{ | pattern | name =~ pattern } new_headers[name] = redact ? "**********" : value end end
Private Instance Methods
to_s()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 71 def to_s "#{method.upcase} #{url}, username=#{username}, password=#{display_password}, headers=#{redacted_headers}, body=#{body}" end
uri()
click to toggle source
# File lib/pact_broker/domain/webhook_request.rb, line 75 def uri @uri ||= URI(url) end