class Apipie::Params::Descriptor::JsonSchema

Public Class Methods

build(*args) click to toggle source
# File lib/apipie/params/descriptor.rb, line 62
def self.build(*args)
  # this is an abstract class
  nil
end
inherited(subclass) click to toggle source
# File lib/apipie/params/descriptor.rb, line 58
def self.inherited(subclass)
  Base.inherited(subclass)
end

Public Instance Methods

json_schema() click to toggle source
# File lib/apipie/params/descriptor.rb, line 67
def json_schema
  {'description' => description}
end
validate!(param_description, value) click to toggle source
# File lib/apipie/params/descriptor.rb, line 72
def validate!(param_description, value)
  encapsulated_value = {'root' => value}
  encapsulated_schema = {
    'type' => 'object',
    'properties' => {'root' => json_schema}
  }
  require 'json-schema'
  errors = JSON::Validator.fully_validate(encapsulated_schema,
                                          encapsulated_value,
                                          :errors_as_objects => true)

  if errors.any?
    raise invalid_param_error(param_description, value, errors)
  else
    return true
  end
end