require_relative 'base_decorator' require_relative 'pact_version_decorator' module PactBroker module Api module Decorators class PactVersionsDecorator < BaseDecorator collection :entries, as: :pacts, embedded: true, :extend => PactBroker::Api::Decorators::PactVersionDecorator link :self do | context | { href: context[:resource_url], title: "All versions of the pact between #{context[:consumer_name]} and #{context[:provider_name]}" } end link :consumer do | context | { href: pacticipant_url(context[:base_url], OpenStruct.new(name: context[:consumer_name])), title: "Consumer", name: context[:consumer_name] } end link :provider do | context | { href: pacticipant_url(context[:base_url], OpenStruct.new(name: context[:provider_name])), title: "Provider", name: context[:provider_name] } end links :'pact-versions' do | context | represented.collect do | pact | { :href => pact_url(context[:base_url], pact), :title => "Pact", :name => pact.version_and_updated_date } end end end end end end