Sha256: d8758cb6735e06e54419eaa50f00bf1908a26eaa539693c325960fc7fcc22056

Contents?: true

Size: 854 Bytes

Versions: 1

Compression:

Stored size: 854 Bytes

Contents

require 'webmachine'
require 'json'

require 'pact_broker/services'
require 'pact_broker/resources/json_resource'

module PactBroker

  module Resources

    class LatestPact < Webmachine::Resource

      include PactBroker::Services
      include PactBroker::Resources::PathInfo

      def content_types_provided
        [["application/json", :to_json]]
      end

      def allowed_methods
        ["GET"]
      end

      def resource_exists?
        @pact = pact_service.find_pact(identifier_from_path.merge(:consumer_version_number => 'last'))
        @pact != nil
      end

      def to_json
        response.headers['X-Pact-Consumer-Version'] = @pact.consumer_version_number
        @pact.json_content
      end

      def handle_exception e
        PactBroker::Resources::ErrorHandler.handle_exception(e, response)
      end

    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pact_broker-0.0.5 lib/pact_broker/resources/latest_pact.rb