class PactBroker::Api::Resources::Badge

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 10
def allowed_methods
  ["GET", "OPTIONS"]
end
content_types_provided() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 14
def content_types_provided
  [["image/svg+xml", :to_svg]]
end
forbidden?() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 31
def forbidden?
  false
end
is_authorized?(authorization_header) click to toggle source
Calls superclass method
# File lib/pact_broker/api/resources/badge.rb, line 27
def is_authorized?(authorization_header)
  super || PactBroker.configuration.enable_public_badge_access
end
moved_temporarily?() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 40
def moved_temporarily?
  response.headers["Cache-Control"] = "no-cache"
  badge_service.pact_verification_badge_url(pact, label, initials, pseudo_branch_verification_status, tags)
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 45
def policy_name
  :'badges::badge'
end
previously_existed?() click to toggle source

Only called if resource_exists? returns false

# File lib/pact_broker/api/resources/badge.rb, line 23
def previously_existed?
  true
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 18
def resource_exists?
  !badge_service.can_provide_badge_using_redirect?
end
to_svg() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 35
def to_svg
  response.headers["Cache-Control"] = "no-cache"
  comment + badge_service.pact_verification_badge(pact, label, initials, pseudo_branch_verification_status, tags)
end

Private Instance Methods

comment() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 72
def comment
  consumer_version_number = pact ? pact.consumer_version_number : "?"
  pact_revision = pact ? pact.revision_number : "?"
  provider_version_number = latest_verification ? latest_verification.provider_version_number : "?"
  verification_number =  latest_verification ? latest_verification.number : "?"
  "<!-- #{identifier_from_path[:consumer_name]} version #{consumer_version_number} revision #{pact_revision} #{identifier_from_path[:provider_name]} version #{provider_version_number} number #{verification_number} -->\n"
end
initials() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 68
def initials
  request.query["initials"] == "true"
end
label() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 64
def label
  request.query["label"]
end
latest_verification() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 55
def latest_verification
  return nil unless pact
  @verification ||= verification_service.find_latest_verification_for(pact.consumer, pact.provider, identifier_from_path[:tag])
end
pact() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 51
def pact
  @pact ||= pact_service.find_latest_pact(identifier_from_path)
end
pseudo_branch_verification_status() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 60
def pseudo_branch_verification_status
  @pseudo_branch_verification_status ||= PactBroker::Verifications::PseudoBranchStatus.new(pact, latest_verification).to_sym
end
tags() click to toggle source
# File lib/pact_broker/api/resources/badge.rb, line 80
def tags
  {}
end