lib/pact_broker/matrix/row.rb in pact_broker-2.19.1 vs lib/pact_broker/matrix/row.rb in pact_broker-2.19.2

- old
+ new

@@ -1,22 +1,29 @@ require 'pact_broker/repositories/helpers' require 'pact_broker/webhooks/latest_triggered_webhook' require 'pact_broker/tags/tag_with_latest_flag' require 'pact_broker/logging' +require 'pact_broker/verifications/latest_verification_for_consumer_version_tag' +require 'pact_broker/verifications/latest_verification_for_consumer_and_provider' module PactBroker module Matrix + class Row < Sequel::Model(:materialized_matrix) # Used when using table_print to output query results TP_COLS = [ :consumer_version_number, :pact_revision_number, :provider_version_number, :verification_number] associate(:one_to_many, :latest_triggered_webhooks, :class => "PactBroker::Webhooks::LatestTriggeredWebhook", primary_key: :pact_publication_id, key: :pact_publication_id) associate(:one_to_many, :webhooks, :class => "PactBroker::Webhooks::Webhook", primary_key: [:consumer_id, :provider_id], key: [:consumer_id, :provider_id]) associate(:one_to_many, :consumer_version_tags, :class => "PactBroker::Tags::TagWithLatestFlag", primary_key: :consumer_version_id, key: :version_id) associate(:one_to_many, :provider_version_tags, :class => "PactBroker::Tags::TagWithLatestFlag", primary_key: :provider_version_id, key: :version_id) + many_to_one :latest_verification_for_consumer_and_provider, + :class => "PactBroker::Verifications::LatestVerificationForConsumerAndProvider", + primary_key: [:provider_id, :consumer_id], key: [:provider_id, :consumer_id] + dataset_module do include PactBroker::Repositories::Helpers include PactBroker::Logging def refresh ids @@ -109,24 +116,10 @@ else super end end - # tags for which this pact publication is the latest of that tag - # this is set in the code rather than the database - def consumer_head_tag_names - @consumer_head_tag_names ||= [] - end - - def consumer_head_tag_names= consumer_head_tag_names - @consumer_head_tag_names = consumer_head_tag_names - end - - # def latest_triggered_webhooks - # @latest_triggered_webhooks ||= [] - # end - def summary "#{consumer_name}#{consumer_version_number} #{provider_name}#{provider_version_number || '?'} (r#{pact_revision_number}n#{verification_number || '?'})" end def consumer @@ -136,43 +129,46 @@ def provider @provider ||= OpenStruct.new(name: provider_name, id: provider_id) end def consumer_version - @consumer_version ||= OpenStruct.new(number: consumer_version_number, id: consumer_version_id, pacticipant: consumer) + @consumer_version ||= OpenStruct.new(number: consumer_version_number, order: consumer_version_order, id: consumer_version_id, pacticipant: consumer) end def provider_version if provider_version_number - @provider_version ||= OpenStruct.new(number: provider_version_number, id: provider_version_id, pacticipant: provider) + @provider_version ||= OpenStruct.new(number: provider_version_number, order: provider_version_order, id: provider_version_id, pacticipant: provider) end end def pact - @pact ||= OpenStruct.new(consumer: consumer, + @pact ||= OpenStruct.new( + consumer: consumer, provider: provider, consumer_version: consumer_version, consumer_version_number: consumer_version_number, created_at: pact_created_at, revision_number: pact_revision_number, pact_version_sha: pact_version_sha ) end - def latest_verification + def verification if verification_executed_at @latest_verification ||= OpenStruct.new( id: verification_id, success: success, number: verification_number, execution_date: verification_executed_at, created_at: verification_executed_at, provider_version_number: provider_version_number, + provider_version_order: provider_version_order, build_url: verification_build_url, provider_version: provider_version, consumer_name: consumer_name, - provider_name: provider_name + provider_name: provider_name, + pact_version_sha: pact_version_sha ) end end # Add logic for ignoring case @@ -185,10 +181,9 @@ compare_number_desc(provider_version_order, other.provider_version_order), compare_number_desc(verification_id, other.verification_id) ] comparisons.find{|c| c != 0 } || 0 - end def compare_name_asc name1, name2 name1 <=> name2 end