Sha256: 5849aee08e1ab10626daf83047ce2b1e8028abb65aaf077afdf867d51722c9c2
Contents?: true
Size: 1.69 KB
Versions: 5
Compression:
Stored size: 1.69 KB
Contents
require_relative 'base_decorator' require_relative 'verifiable_pact_decorator' require 'pact_broker/api/pact_broker_urls' require 'pact_broker/hash_refinements' require 'pact_broker/pacts/selector' require 'pact_broker/pacts/selectors' module PactBroker module Api module Decorators class VerifiablePactsQueryDecorator < BaseDecorator using PactBroker::HashRefinements collection :provider_version_tags, default: [] collection :consumer_version_selectors, default: PactBroker::Pacts::Selectors.new, class: PactBroker::Pacts::Selector do property :tag property :latest, setter: ->(fragment:, represented:, **) { represented.latest = (fragment == 'true' || fragment == true) } property :fallback_tag end property :include_pending_status, default: false, setter: ->(fragment:, represented:, **) { represented.include_pending_status = (fragment == 'true' || fragment == true) } property :include_wip_pacts_since, default: nil, setter: ->(fragment:, represented:, **) { represented.include_wip_pacts_since = fragment ? DateTime.parse(fragment) : nil } def from_hash(hash) # This handles both the snakecase keys from the GET query and the camelcase JSON POST body result = super(hash&.snakecase_keys) if result.consumer_version_selectors && !result.consumer_version_selectors.is_a?(PactBroker::Pacts::Selectors) result.consumer_version_selectors = PactBroker::Pacts::Selectors.new(result.consumer_version_selectors) end result end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems