Class: PactBroker::Api::Contracts::EnvironmentSchema
- Inherits:
-
Object
- Object
- PactBroker::Api::Contracts::EnvironmentSchema
- Extended by:
- DryValidationWorkarounds, Messages
- Defined in:
- lib/pact_broker/api/contracts/environment_schema.rb
Constant Summary collapse
- SCHEMA =
Dry::Validation.Schema do configure do predicates(DryValidationPredicates) config. = File.("../../../locale/en.yml", __FILE__) end required(:name).filled(:str?, :single_line?, :no_spaces?) optional(:displayName).maybe(:str?, :single_line?) required(:production).filled(included_in?: [true, false]) optional(:contacts).each do schema do required(:name).filled(:str?, :single_line?) optional(:details).schema do end end end end
Class Method Summary collapse
Methods included from DryValidationWorkarounds
flatten_array_of_hashes, flatten_indexed_messages, is_indexed_structure?, select_first_message
Methods included from Messages
message, pluralize, potential_duplicate_pacticipant_message, validation_message
Class Method Details
.call(params_with_string_keys) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/pact_broker/api/contracts/environment_schema.rb', line 31 def self.call(params_with_string_keys) params = params_with_string_keys&.symbolize_keys results = ((SCHEMA.call(params).(full: true))) validate_name(params, results) results end |
.validate_name(params, results) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/pact_broker/api/contracts/environment_schema.rb', line 38 def self.validate_name(params, results) if (environment_with_same_name = PactBroker::Deployments::EnvironmentService.find_by_name(params[:name])) if environment_with_same_name.uuid != params[:uuid] results[:name] ||= [] results[:name] << ("errors.validation.environment_name_must_be_unique", name: params[:name]) end end end |