Module: PactBroker::Pacts::PactVersionAssociationLoaders

Included in:
PactVersion
Defined in:
lib/pact_broker/pacts/pact_version_association_loaders.rb

Constant Summary collapse

LATEST_MAIN_BRANCH_VERIFICATION =
lambda {
  providers_join = {
    Sequel[:providers][:id] => Sequel[:latest_verification_id_for_pact_version_and_provider_version][:provider_id]
  }

  branch_versions_join = {
    Sequel[:latest_verification_id_for_pact_version_and_provider_version][:provider_version_id] => Sequel[:branch_versions][:version_id],
    Sequel[:providers][:main_branch] => Sequel[:branch_versions][:branch_name]
  }
  max_verification_id_for_pact_version =  PactBroker::Verifications::LatestVerificationIdForPactVersionAndProviderVersion
                                            .join(:pacticipants, providers_join, { table_alias: :providers })
                                            .join(:branch_versions, branch_versions_join)
                                            .select(Sequel.function(:max, :verification_id))
                                            .where(pact_version_id: id)
  PactBroker::Domain::Verification.where(id: max_verification_id_for_pact_version)
}
LATEST_VERIFICATION_DATASET =
lambda {
  PactBroker::Domain::Verification
    .where(
      id: PactBroker::Verifications::LatestVerificationIdForPactVersionAndProviderVersion.select(
        Sequel.function(:max, :verification_id)
      ).where(pact_version_id: id)
    )
}
LATEST_CONSUMER_VERSION_LAZY_LOADER =
lambda { | ds | ds.unlimited.order(Sequel.desc(:order)).limit(1) }