Class: PactBroker::Api::Contracts::PactsForVerificationQueryStringSchema

Inherits:
Object
  • Object
show all
Extended by:
DryValidationWorkarounds
Defined in:
lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema.rb

Constant Summary collapse

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

Class Method Summary collapse

Methods included from DryValidationWorkarounds

flatten_array_of_hashes, flatten_indexed_messages, is_indexed_structure?, select_first_message

Class Method Details

.call(params) ⇒ Object



30
31
32
# File 'lib/pact_broker/api/contracts/pacts_for_verification_query_string_schema.rb', line 30

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