Sha256: 90ca0a0a8fb6e4afb8ae023f6ca0ec1955a60d10b118e4ad8790495b4e211697

Contents?: true

Size: 1.25 KB

Versions: 34

Compression:

Stored size: 1.25 KB

Contents

require "dry-validation"
require "pact_broker/messages"
require "pact_broker/api/contracts/dry_validation_predicates"
require "pact_broker/project_root"

module PactBroker
  module Api
    module Contracts
      class CanIDeployQuerySchema
        extend PactBroker::Messages

        SCHEMA = Dry::Validation.Schema do
          configure do
            predicates(DryValidationPredicates)
            config.messages_file = PactBroker.project_root.join("lib", "pact_broker", "locale", "en.yml")
          end
          required(:pacticipant).filled(:str?)
          required(:version).filled(:str?)
          optional(:to).filled(:str?)
          optional(:environment).filled(:str?, :environment_with_name_exists?)
        end

        def self.call(params)
          result = select_first_message(SCHEMA.call(params).messages(full: true))
          if params[:to] && params[:environment]
            result[:to] ||= []
            result[:to] << message("errors.validation.cannot_specify_tag_and_environment")
          end
          result
        end

        def self.select_first_message(messages)
          messages.each_with_object({}) do | (key, value), new_messages |
            new_messages[key] = [value.first]
          end
        end
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
pact_broker-2.104.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.103.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.102.2 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.102.1 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.102.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.101.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.100.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.99.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.98.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.97.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.96.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.95.1 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.95.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.94.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.93.4 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.93.3 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.93.2 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.93.1 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.93.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb
pact_broker-2.92.0 lib/pact_broker/matrix/can_i_deploy_query_schema.rb