Sha256: 754663f7aea720d912dbd97a3540b40516d29df963d181d5ce95d6543902a49b

Contents?: true

Size: 939 Bytes

Versions: 7

Compression:

Stored size: 939 Bytes

Contents

require "pact_broker/api/contracts/pacticipant_schema"

module PactBroker
  module Api
    module Contracts
      class PacticipantCreateSchema
        extend DryValidationWorkarounds
        extend PactBroker::Messages
        using PactBroker::HashRefinements

        SCHEMA = Dry::Validation.Schema do
          configure do
            predicates(DryValidationPredicates)
            config.messages_file = File.expand_path("../../../locale/en.yml", __FILE__)
          end
          required(:name).filled(:str?, :single_line?)
        end

        def self.call(params_with_string_keys)
          params = params_with_string_keys&.symbolize_keys
          update_errors = PacticipantSchema::SCHEMA.call(params).messages(full: true)
          create_errors = SCHEMA.call(params).messages(full: true)
          select_first_message(flatten_indexed_messages(update_errors.merge(create_errors)))
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pact_broker-2.106.0 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.105.0 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.104.0 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.103.0 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.102.2 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.102.1 lib/pact_broker/api/contracts/pacticipant_create_schema.rb
pact_broker-2.102.0 lib/pact_broker/api/contracts/pacticipant_create_schema.rb