Sha256: 1aca7093d15099c1f67b026cf7ee739a5aa21c58a6ec7ade0367ada1d0ff5a33

Contents?: true

Size: 1.91 KB

Versions: 11

Compression:

Stored size: 1.91 KB

Contents

require 'sequel'
require 'pact_broker/domain/verification'
require 'pact_broker/verifications/latest_verifications_by_consumer_version'

module PactBroker
  module Verifications
    class Repository

      include PactBroker::Repositories::Helpers

      def create verification, pact
        verification.pact_version_id = pact_version_id_for(pact)
        verification.save
      end

      def verification_count_for_pact pact
        PactBroker::Domain::Verification.where(pact_version_id: pact_version_id_for(pact)).count
      end

      def find consumer_name, provider_name, pact_version_sha, verification_number
        PactBroker::Domain::Verification
          .join(:all_pact_publications, pact_version_id: :pact_version_id)
          .consumer(consumer_name)
          .provider(provider_name)
          .pact_version_sha(pact_version_sha)
          .verification_number(verification_number).first
      end

      def find_latest_verifications_for_consumer_version consumer_name, consumer_version_number
        # Use LatestPactPublicationsByConsumerVersion not AllPactPublcations because we don't
        # want verifications for shadowed revisions as it would be misleading.
        LatestVerificationsByConsumerVersion
          .join(:latest_pact_publications_by_consumer_versions, pact_version_id: :pact_version_id)
          .consumer(consumer_name)
          .consumer_version_number(consumer_version_number)
          .order(:provider_name)
          .all
      end

      def find_latest_verification_for consumer_name, provider_name
        query = LatestVerificationsByConsumerVersion
          .join(:all_pact_publications, pact_version_id: :pact_version_id)
          .consumer(consumer_name)
          .provider(provider_name)
          .latest
          query.first
      end

      def pact_version_id_for pact
        PactBroker::Pacts::PactPublication.select(:pact_version_id).where(id: pact.id)
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
pact_broker-2.2.0 lib/pact_broker/verifications/repository.rb
pact_broker-2.1.1 lib/pact_broker/verifications/repository.rb
pact_broker-2.1.0 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.5 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.4 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.3 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.2 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.1 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.0 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.0.beta.8 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.0.beta.7 lib/pact_broker/verifications/repository.rb