Sha256: 99ce6e16149a142ce69be22c204e3b020b6453ad866906b1fad169925fb21154

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

require 'sequel'
require 'pact_broker/domain/verification'

module PactBroker
  module Verifications
    class Repository

      include PactBroker::Repositories::Helpers

      class LatestVerifications < PactBroker::Domain::Verification
        set_dataset(:latest_verifications)
      end

      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_latest_verifications_for_consumer_version consumer_name, consumer_version_number
        LatestVerifications
          .join(PactBroker::Pacts::LatestPactPublicationsByConsumerVersion, pact_version_id: :pact_version_id)
          .where(name_like(:consumer_name, consumer_name))
          .where(consumer_version_number: consumer_version_number)
          .order(:provider_name)
      end

      def find_latest_verification_for consumer_name, provider_name
        query = LatestVerifications
          .join(PactBroker::Pacts::AllPactPublications, 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

3 entries across 3 versions & 1 rubygems

Version Path
pact_broker-2.0.0.beta.3 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.0.beta.2 lib/pact_broker/verifications/repository.rb
pact_broker-2.0.0.beta.1 lib/pact_broker/verifications/repository.rb