Module: PactBroker::Matrix

Defined in:
lib/pact_broker/matrix/row.rb,
lib/pact_broker/matrix/reason.rb,
lib/pact_broker/matrix/service.rb,
lib/pact_broker/matrix/head_row.rb,
lib/pact_broker/matrix/quick_row.rb,
lib/pact_broker/matrix/repository.rb,
lib/pact_broker/matrix/integration.rb,
lib/pact_broker/matrix/parse_query.rb,
lib/pact_broker/matrix/query_results.rb,
lib/pact_broker/matrix/aggregated_row.rb,
lib/pact_broker/matrix/resolved_selector.rb,
lib/pact_broker/matrix/parse_can_i_deploy_query.rb,
lib/pact_broker/matrix/deployment_status_summary.rb,
lib/pact_broker/matrix/query_results_with_deployment_status_summary.rb

Defined Under Namespace

Modules: Service Classes: AggregatedRow, DeploymentStatusSummary, Error, ErrorReason, ErrorReasonWithTwoSelectors, HeadRow, Integration, NoDependenciesMissing, PactNotEverVerifiedByProvider, PactNotVerifiedByRequiredProviderVersion, ParseCanIDeployQuery, ParseQuery, QueryResults, QueryResultsWithDeploymentStatusSummary, QuickRow, Reason, Repository, ResolvedSelector, Row, SpecifiedVersionDoesNotExist, Successful, VerificationFailed, VerificationFailedWithRow

Constant Summary collapse

LV =
:latest_verification_id_for_pact_version_and_provider_version
LP =
:latest_pact_publication_ids_for_consumer_versions
CONSUMER_COLUMNS =
[Sequel[:lp][:consumer_id], Sequel[:consumers][:name].as(:consumer_name), Sequel[:lp][:pact_publication_id], Sequel[:lp][:pact_version_id]]
PROVIDER_COLUMNS =
[Sequel[:lp][:provider_id], Sequel[:providers][:name].as(:provider_name), Sequel[:lv][:verification_id]]
CONSUMER_VERSION_COLUMNS =
[Sequel[:lp][:consumer_version_id], Sequel[:cv][:number].as(:consumer_version_number), Sequel[:cv][:order].as(:consumer_version_order)]
PROVIDER_VERSION_COLUMNS =
[Sequel[:lv][:provider_version_id], Sequel[:pv][:number].as(:provider_version_number), Sequel[:pv][:order].as(:provider_version_order)]
ALL_COLUMNS =
CONSUMER_COLUMNS + CONSUMER_VERSION_COLUMNS + PROVIDER_COLUMNS + PROVIDER_VERSION_COLUMNS
LP_LV_JOIN =
{ Sequel[:lp][:pact_version_id] => Sequel[:lv][:pact_version_id] }
CONSUMER_JOIN =
{ Sequel[:lp][:consumer_id] => Sequel[:consumers][:id] }
PROVIDER_JOIN =
{ Sequel[:lp][:provider_id] => Sequel[:providers][:id] }
CONSUMER_VERSION_JOIN =
{ Sequel[:lp][:consumer_version_id] => Sequel[:cv][:id] }
PROVIDER_VERSION_JOIN =
{ Sequel[:lv][:provider_version_id] => Sequel[:pv][:id] }
RAW_QUERY =
Sequel::Model.db[Sequel.as(LP, :lp)]
.select(*ALL_COLUMNS)
.left_outer_join(LV, LP_LV_JOIN, { table_alias: :lv } )
.join(:pacticipants, CONSUMER_JOIN, { table_alias: :consumers })
.join(:pacticipants, PROVIDER_JOIN, { table_alias: :providers })
.join(:versions, CONSUMER_VERSION_JOIN, { table_alias: :cv })
.left_outer_join(:versions, PROVIDER_VERSION_JOIN, { table_alias: :pv } )
ALIASED_QUERY =
Sequel.as(RAW_QUERY, :smart_rows)