module PactBroker::Pacts::PactPublicationWipDatasetModule

Public Instance Methods

join_branch_versions_excluding_branch(branch_name) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 26
def join_branch_versions_excluding_branch(branch_name)
  branch_versions_join = {
    Sequel[:provider_versions][:id] => Sequel[:branch_versions][:version_id]
  }
  join(:branch_versions, branch_versions_join) do
    Sequel.lit("branch_versions.branch_name != ?", branch_name)
  end
end
successfully_verified_by_provider_another_branch_before_this_branch_first_created(provider_id, provider_version_branch) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 13
def successfully_verified_by_provider_another_branch_before_this_branch_first_created(provider_id, provider_version_branch)
  first_version_for_branch = PactBroker::Domain::Version.first_for_pacticipant_id_and_branch(provider_id, provider_version_branch)

  from_self(alias: :pp)
    .select(Sequel[:pp].*)
    .join_successful_non_wip_verifications_for_provider_id(provider_id)
    .join_provider_versions_for_provider_id(provider_id)
    .join_branch_versions_excluding_branch(provider_version_branch)
    .where(Sequel[:pp][:provider_id] => provider_id)
    .verified_before_creation_date_of(first_version_for_branch)
    .distinct
end
successfully_verified_by_provider_another_tag_before_this_tag_first_created(provider_id, provider_tag) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 44
def successfully_verified_by_provider_another_tag_before_this_tag_first_created(provider_id, provider_tag)
  first_tag_with_name = PactBroker::Domain::Tag.where(pacticipant_id: provider_id, name: provider_tag).order(:created_at).first
  from_self(alias: :pp)
    .select(Sequel[:pp].*)
    .where(Sequel[:pp][:provider_id] => provider_id)
    .join_successful_non_wip_verifications_for_provider_id(provider_id)
    .join_provider_version_tags do
      Sequel.lit("provider_tags.name != ?", provider_tag)
    end
    .verified_before_creation_date_of(first_tag_with_name)
    .distinct
end
successfully_verified_by_provider_branch_when_not_wip(provider_id, provider_version_branch) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 4
def successfully_verified_by_provider_branch_when_not_wip(provider_id, provider_version_branch)
  from_self(alias: :pp)
    .select(Sequel[:pp].*)
    .where(Sequel[:pp][:provider_id] => provider_id)
    .join_successful_non_wip_verifications_for_provider_id(provider_id)
    .join_provider_versions_for_provider_id_and_branch(provider_id, provider_version_branch)
    .distinct
end
successfully_verified_by_provider_tag_when_not_wip(provider_id, provider_tag) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 35
def successfully_verified_by_provider_tag_when_not_wip(provider_id, provider_tag)
  from_self(alias: :pp)
    .select(Sequel[:pp].*)
    .where(Sequel[:pp][:provider_id] => provider_id)
    .join_successful_non_wip_verifications_for_provider_id(provider_id)
    .join_provider_version_tags_for_tag(provider_tag)
    .distinct
end

Protected Instance Methods

join_provider_version_tags(&block) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 73
def join_provider_version_tags &block
  tags_join = {
    Sequel[:verifications][:provider_version_id] => Sequel[:provider_tags][:version_id],
  }
  join(:tags, tags_join, { table_alias: :provider_tags }, &block)
end
join_provider_version_tags_for_tag(tag) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 80
def join_provider_version_tags_for_tag(tag)
  tags_join = {
    Sequel[:verifications][:provider_version_id] => Sequel[:provider_tags][:version_id],
    Sequel[:provider_tags][:name] => tag
  }
  join(:tags, tags_join, { table_alias: :provider_tags } )
end
join_provider_versions_for_provider_id(provider_id, &block) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 101
def join_provider_versions_for_provider_id(provider_id, &block)
  versions_join = {
    Sequel[:verifications][:provider_version_id] => Sequel[:provider_versions][:id],
    Sequel[:provider_versions][:pacticipant_id] => provider_id
  }
  join(:versions, versions_join, { table_alias: :provider_versions }, &block)
end
join_provider_versions_for_provider_id_and_branch(provider_id, provider_version_branch) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 88
def join_provider_versions_for_provider_id_and_branch(provider_id, provider_version_branch)
  versions_join = {
    Sequel[:verifications][:provider_version_id] => Sequel[:provider_versions][:id],
    Sequel[:provider_versions][:pacticipant_id] => provider_id
  }
  branch_versions_join = {
    Sequel[:provider_versions][:id] => Sequel[:branch_versions][:version_id],
    Sequel[:branch_versions][:branch_name] => provider_version_branch
  }
  join(:versions, versions_join, { table_alias: :provider_versions } )
    .join(:branch_versions, branch_versions_join)
end
join_successful_non_wip_verifications_for_provider_id(provider_id, &block) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 63
def join_successful_non_wip_verifications_for_provider_id(provider_id, &block)
  verifications_join = {
    pact_version_id: :pact_version_id,
    Sequel[:verifications][:success] => true,
    Sequel[:verifications][:wip] => false,
    Sequel[:verifications][:provider_id] => provider_id
  }
  join(:verifications, verifications_join, {}, &block)
end
verified_before_creation_date_of(record) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 109
def verified_before_creation_date_of(record)
  if record
    verified_before_date(record.created_at)
  else
    self
  end
end
verified_before_date(date) click to toggle source
# File lib/pact_broker/pacts/pact_publication_wip_dataset_module.rb, line 59
def verified_before_date(date)
  where { Sequel[:verifications][:execution_date] < date }
end