Class: PactBroker::Api::Contracts::CanIDeployQuerySchema

Inherits:
Object
  • Object
show all
Extended by:
Messages
Defined in:
lib/pact_broker/matrix/can_i_deploy_query_schema.rb

Constant Summary collapse

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

Class Method Summary collapse

Methods included from Messages

message, pluralize, potential_duplicate_pacticipant_message, validation_message

Class Method Details

.call(params) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/pact_broker/matrix/can_i_deploy_query_schema.rb', line 23

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

.select_first_message(messages) ⇒ Object



32
33
34
35
36
# File 'lib/pact_broker/matrix/can_i_deploy_query_schema.rb', line 32

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