Sha256: 5d616a3568641f13a3fd3c2b0ce7e56d4aed388c53bab043654b81f526693852

Contents?: true

Size: 1.25 KB

Versions: 25

Compression:

Stored size: 1.25 KB

Contents

require 'dry-validation'
require 'pact_broker/api/contracts/dry_validation_workarounds'
require 'pact_broker/api/contracts/dry_validation_predicates'

module PactBroker
  module Api
    module Contracts
      class VerifiablePactsQuerySchema
        extend DryValidationWorkarounds
        using PactBroker::HashRefinements

        SCHEMA = Dry::Validation.Schema do
          configure do
            predicates(DryValidationPredicates)
            config.messages_file = File.expand_path("../../../locale/en.yml", __FILE__)
          end
          optional(:provider_version_tags).maybe(:array?)
          optional(:consumer_version_selectors).each do
            schema do
              required(:tag).filled(:str?)
              optional(:latest).filled(included_in?: ["true", "false"])
              optional(:fallback_tag).filled(:str?)
              optional(:consumer).filled(:str?, :not_blank?)
            end
          end
          optional(:include_pending_status).filled(included_in?: ["true", "false"])
          optional(:include_wip_pacts_since).filled(:date?)
        end

        def self.call(params)
          select_first_message(flatten_indexed_messages(SCHEMA.call(params&.symbolize_keys).messages(full: true)))
        end

      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
pact_broker-2.79.1 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.79.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.78.1 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.78.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.77.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.76.2 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.76.1 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.76.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.75.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.74.1 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.74.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.73.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.72.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.71.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.70.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.69.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.68.1 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.68.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.67.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb
pact_broker-2.66.0 lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb