Sha256: 2820797aa578ef6fabee79bb8dde37ed9f1a882b3751bc91151c381d7b18f83f

Contents?: true

Size: 1.12 KB

Versions: 10

Compression:

Stored size: 1.12 KB

Contents

require 'pact_broker/db/data_migrations/helpers'

module PactBroker
  module DB
    module DataMigrations
      class MigrateWebhookHeaders
        extend Helpers

        def self.call(connection)
          if columns_exist?(connection)
            connection[:webhook_headers].for_update.each do | webhook_header |
              webhook = connection[:webhooks].for_update.where(id: webhook_header[:webhook_id]).first
              new_headers = webhook[:headers] ? JSON.parse(webhook[:headers]) : {}
              new_headers.merge!(webhook_header[:name] => webhook_header[:value])
              connection[:webhooks].where(id: webhook[:id]).update(headers: new_headers.to_json)
              connection[:webhook_headers].where(webhook_header).delete
            end
          end
        end

        def self.columns_exist?(connection)
          column_exists?(connection, :webhooks, :headers) &&
            column_exists?(connection, :webhook_headers, :name) &&
            column_exists?(connection, :webhook_headers, :value) &&
            column_exists?(connection, :webhook_headers, :webhook_id)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pact_broker-2.40.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.39.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.38.1 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.38.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.37.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.36.1 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.36.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.35.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.34.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb
pact_broker-2.33.0 lib/pact_broker/db/data_migrations/migrate_webhook_headers.rb