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