Class: PactBroker::DB::DataMigrations::MigratePactVersionProviderTagSuccessfulVerifications

Inherits:
Object
  • Object
show all
Extended by:
Helpers
Defined in:
lib/pact_broker/db/data_migrations/migrate_pact_version_provider_tag_successful_verifications.rb

Class Method Summary collapse

Methods included from Helpers

column_exists?, columns_exist?

Class Method Details

.call(connection) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/pact_broker/db/data_migrations/migrate_pact_version_provider_tag_successful_verifications.rb', line 9

def self.call(connection)
  successful_verifications_join = {
    Sequel[:sv][:pact_version_id] => Sequel[:verifications][:pact_version_id],
    Sequel[:sv][:provider_version_tag_name] => Sequel[:tags][:name],
    Sequel[:sv][:wip] => Sequel[:verifications][:wip]
  }

  missing_verifications = connection
                            .select(
                              Sequel[:verifications][:pact_version_id],
                              Sequel[:tags][:name],
                              Sequel[:verifications][:wip],
                              Sequel[:verifications][:id],
                              Sequel[:verifications][:execution_date]
                            )
                            .order(Sequel[:verifications][:execution_date], Sequel[:verifications][:id])
                            .from(:verifications)
                            .join(:tags, { Sequel[:verifications][:provider_version_id] => Sequel[:tags][:version_id] })
                            .left_outer_join(:pact_version_provider_tag_successful_verifications, successful_verifications_join, { table_alias: :sv })
                            .where(Sequel[:sv][:pact_version_id] => nil)
                            .where(Sequel[:verifications][:success] => true)

  connection[:pact_version_provider_tag_successful_verifications]
    .insert_ignore
    .insert([:pact_version_id, :provider_version_tag_name, :wip, :verification_id, :execution_date], missing_verifications)
end