class PactBroker::Api::Contracts::WebhookRequestContract

Public Instance Methods

allowed_webhook_host?(url) click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 90
def allowed_webhook_host?(url)
  if host_whitelist.any?
    PactBroker::Webhooks::CheckHostWhitelist.call(parse_uri(url).host, host_whitelist).any?
  else
    true
  end
end
allowed_webhook_method?(http_method) click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 61
def allowed_webhook_method?(http_method)
  PactBroker.configuration.webhook_http_method_whitelist.any? do | allowed_method |
    http_method.downcase == allowed_method.downcase
  end
end
allowed_webhook_scheme?(url) click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 75
def allowed_webhook_scheme?(url)
  scheme = parse_uri(url).scheme
  PactBroker.configuration.webhook_scheme_whitelist.any? do | allowed_scheme |
    scheme.downcase == allowed_scheme.downcase
  end
end
host_error_message() click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 102
def host_error_message
  "host must be in the whitelist #{PactBroker.configuration.webhook_host_whitelist.collect(&:inspect).join(", ")}. See /doc/webhooks#whitelist for more information."
end
host_whitelist() click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 98
def host_whitelist
  PactBroker.configuration.webhook_host_whitelist
end
http_method_error_message() click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 67
def http_method_error_message
  if PactBroker.configuration.webhook_http_method_whitelist.size == 1
    "must be #{PactBroker.configuration.webhook_http_method_whitelist.first}. See /doc/webhooks#whitelist for more information."
  else
    "must be one of #{PactBroker.configuration.webhook_http_method_whitelist.join(", ")}. See /doc/webhooks#whitelist for more information."
  end
end
if_still_valid(context) { || ... } click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 117
def if_still_valid(context)
  if !context.rule_error?(context.path.keys)
    yield
  end
end
parse_uri(uri_string, placeholder = "placeholder") click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 86
def parse_uri(uri_string, placeholder = "placeholder")
  URI(PactBroker::Webhooks::Render.render_with_placeholder(uri_string, placeholder))
end
scheme_error_message() click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 82
def scheme_error_message
  "scheme must be #{PactBroker.configuration.webhook_scheme_whitelist.join(", ")}. See /doc/webhooks#whitelist for more information."
end
templated_host?(url) click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 113
def templated_host?(url)
  parse_uri(url).host != parse_uri(url, "differentplaceholder").host
end
valid_webhook_url?(url) click to toggle source
# File lib/pact_broker/api/contracts/webhook_request_contract.rb, line 106
def valid_webhook_url?(url)
  uri = parse_uri(url)
  uri.scheme && uri.host
rescue URI::InvalidURIError, ArgumentError
  nil
end