class PactBroker::UI::ViewDomain::IndexItem
Attributes
relationship[R]
Public Class Methods
new(relationship, options = {})
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 30 def initialize relationship, options = {} @relationship = relationship @options = options end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 229 def <=> other comp = consumer_name.downcase <=> other.consumer_name.downcase return comp unless comp == 0 comp = provider_name.downcase <=> other.provider_name.downcase return comp unless comp == 0 other.consumer_version_order <=> consumer_version_order end
any_webhooks?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 115 def any_webhooks? @relationship.any_webhooks? end
base_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 250 def base_url @options[:base_url] end
consumer_group_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 91 def consumer_group_url Helpers::URLHelper.group_url(consumer_name, base_url) end
consumer_name()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 35 def consumer_name @relationship.consumer_name end
consumer_version_branch_heads()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 71 def consumer_version_branch_heads @relationship.consumer_version_branch_heads.collect do | branch_head | IndexItemBranchHead.new(branch_head, consumer_name) end end
consumer_version_latest_tag_names()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 77 def consumer_version_latest_tag_names @relationship.tag_names end
consumer_version_number()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 43 def consumer_version_number @relationship.consumer_version_number end
consumer_version_order()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 51 def consumer_version_order @relationship.consumer_version_order end
dashboard_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 103 def dashboard_url Helpers::URLHelper.dashboard_url(consumer_name, provider_name, base_url) end
display_consumer_version_number()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 47 def display_consumer_version_number PactBroker::Versions::AbbreviateNumber.call(consumer_version_number) end
display_latest_label?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 63 def display_latest_label? consumer_version_latest_tag_names.empty? && @relationship.tag_names.empty? end
display_provider_version_number()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 59 def display_provider_version_number PactBroker::Versions::AbbreviateNumber.call(provider_version_number) end
failed_and_pact_pending?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 197 def failed_and_pact_pending? latest_verification&.failed_and_pact_pending? end
integration_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 123 def integration_url PactBroker::Api::PactBrokerUrls.integration_url(consumer_name, provider_name, base_url) end
last_verified_date()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 169 def last_verified_date if @relationship.ever_verified? date = latest_verification.execution_date PactBroker::DateHelper.distance_of_time_in_words(date, DateTime.now) + " ago" else "" end end
latest?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 67 def latest? @relationship.latest? end
latest_pact_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 99 def latest_pact_url "#{pactigration_base_url(base_url, @relationship)}/latest" end
pact_branches()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 263 def pact_branches consumer_version_branches.map do | branch_name | { name: branch_name, deletionUrl: PactBroker::Api::PactBrokerUrls.pact_versions_for_branch_url(consumer_name, provider_name, branch_name, base_url) } end.to_json end
pact_matrix_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 111 def pact_matrix_url Helpers::URLHelper.matrix_url_for_consumer_version(consumer_name, consumer_version_number, provider_name, base_url) end
pact_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 107 def pact_url PactBroker::Api::PactBrokerUrls.pact_url(base_url, @relationship) end
pact_versions_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 119 def pact_versions_url PactBroker::Api::PactBrokerUrls.pact_versions_url(consumer_name, provider_name, base_url) end
provider_group_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 95 def provider_group_url Helpers::URLHelper.group_url(provider_name, base_url) end
provider_name()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 39 def provider_name @relationship.provider_name end
provider_version_branch_heads()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 85 def provider_version_branch_heads @relationship.provider_version_branch_heads.collect do | branch_head | IndexItemProviderBranchHead.new(branch_head, provider_name) end end
provider_version_latest_tag_names()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 81 def provider_version_latest_tag_names @relationship.latest_verification_latest_tags.collect(&:name) end
provider_version_number()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 55 def provider_version_number @relationship.provider_version_number end
pseudo_branch_verification_status()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 187 def pseudo_branch_verification_status case @relationship.pseudo_branch_verification_status when :success then "success" when :stale then "warning" when :failed then "danger" when :failed_pending then "danger" else "" end end
publication_date_of_latest_pact()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 178 def publication_date_of_latest_pact date = @relationship.latest_pact.created_at PactBroker::DateHelper.distance_of_time_in_words(date, DateTime.now) + " ago" end
publication_date_of_latest_pact_order()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 183 def publication_date_of_latest_pact_order @relationship.latest_pact.created_at.to_time.to_i end
short_version_number(version_number)
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 237 def short_version_number version_number return "" if version_number.nil? if version_number.size > 12 version_number[0..12] + "..." else version_number end end
show_settings?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 151 def show_settings? @relationship.latest? end
show_webhook_status?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 147 def show_webhook_status? @relationship.latest? end
verification_tooltip()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 205 def verification_tooltip case @relationship.pseudo_branch_verification_status when :success "Successfully verified by #{provider_name} (#{short_version_number(@relationship.latest_verification_provider_version_number)})" when :stale # TODO when there are multiple tags/branches, the tag/branch shown may not be the relevant one, but # it shouldn't happen very often. Can change this to "tag a or b" desc = if @relationship.consumer_version_branches.any? "from branch #{@relationship.consumer_version_branches.first} " elsif @relationship.tag_names.any? "with tag #{@relationship.tag_names.first} " else "" end "Pact #{desc}has changed since last successful verification by #{provider_name} (#{short_version_number(@relationship.latest_verification_provider_version_number)})" when :failed_pending "Verification by #{provider_name} (#{short_version_number(@relationship.latest_verification_provider_version_number)}) failed, but did not fail the build as the pact content was in pending state for that provider branch" when :failed "Verification by #{provider_name} (#{short_version_number(@relationship.latest_verification_provider_version_number)}) failed" else nil end end
view_by_environment?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 272 def view_by_environment? @options[:view] == "environment" end
warning?()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 201 def warning? pseudo_branch_verification_status == "warning" end
webhook_label()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 127 def webhook_label return "" unless show_webhook_status? case @relationship.webhook_status when :none then "Create" when :success, :failure then webhook_last_execution_date when :retrying then "Retrying" when :not_run then "Not run" end end
webhook_last_execution_date()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 155 def webhook_last_execution_date PactBroker::DateHelper.distance_of_time_in_words(@relationship.last_webhook_execution_date, DateTime.now) + " ago" end
webhook_status()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 137 def webhook_status return "" unless show_webhook_status? case @relationship.webhook_status when :success then "success" when :failure then "danger" when :retrying then "warning" else "" end end
webhook_url()
click to toggle source
# File lib/pact_broker/ui/view_models/index_item.rb, line 159 def webhook_url url = case @relationship.webhook_status when :none PactBroker::Api::PactBrokerUrls.webhooks_for_consumer_and_provider_url @relationship.latest_pact.consumer, @relationship.latest_pact.provider, base_url else PactBroker::Api::PactBrokerUrls.webhooks_status_url @relationship.latest_pact.consumer, @relationship.latest_pact.provider, base_url end PactBroker::Api::PactBrokerUrls.hal_browser_url(url, base_url) end