Class: AgentClientProtocol::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_client_protocol/validator.rb

Defined Under Namespace

Classes: ValidationError

Class Method Summary collapse

Class Method Details

.validate(definition_name, payload, unstable: false) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/agent_client_protocol/validator.rb', line 15

def validate(definition_name, payload, unstable: false)
  definitions = SchemaRegistry.defs(unstable: unstable)
  definition_key = definition_name.to_s
  schema = definitions.fetch(definition_key) do
    raise ValidationError.new("$", "unknown schema definition #{definition_key}")
  end

  validate_schema(schema, payload, definitions, "$")
  true
rescue ValidationError => e
  raise Error.invalid_params("invalid payload for #{definition_name} at #{e.path}: #{e.message}")
end