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