Sha256: e0847b8ab7a5759780d30e5560db625f7a7762715a0ed1f52e160f7b1a89410d

Contents?: true

Size: 1.15 KB

Versions: 33

Compression:

Stored size: 1.15 KB

Contents

require_relative 'base_decorator'
require_relative 'embedded_version_decorator'
require_relative 'latest_pact_decorator'
require_relative 'representable_pact'

module PactBroker
  module Api
    module Decorators
      class PactCollectionDecorator < BaseDecorator
        include Roar::JSON::HAL
        include PactBroker::Api::PactBrokerUrls

        collection :pacts, exec_context: :decorator, :class => PactBroker::Domain::Pact, :extend => PactBroker::Api::Decorators::LatestPactDecorator

        def pacts
          represented.collect{ | pact | create_representable_pact(pact) }
        end

        def create_representable_pact pact
          PactBroker::Api::Decorators::RepresentablePact.new(pact)
        end

        link :self do | options |
          latest_pacts_url(options[:base_url])
        end

        # This is the LATEST pact URL
        links :pacts do | options |
          represented.collect do | pact |
            {
              :href => latest_pact_url(options[:base_url], pact),
              :title => "Latest pact between #{pact.consumer.name} and #{pact.provider.name}",
            }
          end
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
pact_broker-2.23.4 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.23.3 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.23.2 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.23.1 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.23.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.22.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.21.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.20.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.19.2 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.19.1 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.19.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.18.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.17.1 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.17.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.16.1 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.16.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.15.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.14.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.13.1 lib/pact_broker/api/decorators/pact_collection_decorator.rb
pact_broker-2.13.0 lib/pact_broker/api/decorators/pact_collection_decorator.rb