Sha256: a35d521213f6a4dcf20a955e1df953f8f3fd6ec15c7bd056d9f6286695bd8256
Contents?: true
Size: 1.3 KB
Versions: 2
Compression:
Stored size: 1.3 KB
Contents
require 'dry-validation' module PactBroker module Api module Contracts class VerifiablePactsQuerySchema SCHEMA = Dry::Validation.Schema do optional(:provider_version_tags).maybe(:array?) # optional(:exclude_other_pending).filled(included_in?: ["true", "false"]) optional(:consumer_version_selectors).each do schema do required(:tag).filled(:str?) optional(:latest).filled(included_in?: ["true", "false"]) end end end def self.call(params) select_first_message(flatten_index_messages(SCHEMA.call(params).messages(full: true))) end def self.select_first_message(messages) messages.each_with_object({}) do | (key, value), new_messages | new_messages[key] = [value.first] end end def self.flatten_index_messages(messages) if messages[:consumer_version_selectors] new_messages = messages[:consumer_version_selectors].collect do | index, value | value.values.flatten.collect { | text | "#{text} at index #{index}"} end.flatten messages.merge(consumer_version_selectors: new_messages) else messages end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pact_broker-2.40.0 | lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb |
pact_broker-2.39.0 | lib/pact_broker/api/contracts/verifiable_pacts_query_schema.rb |