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