Sha256: d23826a37b3dd8af9b9ad2f20ca1a9ddef47ef83dff14c99ddb0c31de19e7c02

Contents?: true

Size: 1.44 KB

Versions: 5

Compression:

Stored size: 1.44 KB

Contents

require 'reform'
require 'reform/contract'
require 'versionomy'
require 'pact_broker/messages'
require 'pact_broker/constants'
require 'pact_broker/api/contracts/pacticipant_name_contract'
require 'pact_broker/api/contracts/consumer_version_number_validation'

module PactBroker
  module Api
    module Contracts

      class PutPacticipantNameContract < PacticipantNameContract

        validates :name, presence: true, blank: false
        validate :name_in_path_matches_name_in_pact

        def name_in_path_matches_name_in_pact
          if present?(name) && present?(name_in_pact)
            if name != name_in_pact
              errors.add(:name, validation_message('pacticipant_name_mismatch', message_args))
            end
          end
        end

        def present? string
          string && !blank?(string)
        end

      end

      class PutPactParamsContract < Reform::Contract

        include PactBroker::Messages

        property :consumer_version_number
        property :consumer, form: PutPacticipantNameContract
        property :provider, form: PutPacticipantNameContract

        validates :consumer_version_number, presence: true
        validate :consumer_version_number_valid


        include ConsumerVersionNumberValidation

        def consumer_version_number_validation_message
          validation_message('consumer_version_number_invalid', consumer_version_number: consumer_version_number)
        end

      end


    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pact_broker-1.6.0 lib/pact_broker/api/contracts/put_pact_params_contract.rb
pact_broker-1.5.0 lib/pact_broker/api/contracts/put_pact_params_contract.rb
pact_broker-1.4.0 lib/pact_broker/api/contracts/put_pact_params_contract.rb
pact_broker-1.3.2.rc1 lib/pact_broker/api/contracts/put_pact_params_contract.rb
pact_broker-1.3.1 lib/pact_broker/api/contracts/put_pact_params_contract.rb