class Esplanade::Response::Validation
Public Class Methods
new(request, doc, raw)
click to toggle source
# File lib/esplanade/response/validation.rb, line 6 def initialize(request, doc, raw) @request = request @doc = doc @raw = raw end
Public Instance Methods
valid!()
click to toggle source
# File lib/esplanade/response/validation.rb, line 12 def valid! @error ||= if @doc.json_schemas.size == 1 one_json_schema else more_than_one_json_schema end raise Invalid.new(**message) if @error != [] end
Private Instance Methods
message()
click to toggle source
# File lib/esplanade/response/validation.rb, line 39 def message { request: { method: @request.raw.method, path: @request.raw.path, raw_path: @request.raw.raw_path }, status: @raw.status, body: @raw.body.to_string, error: @error } end
more_than_one_json_schema()
click to toggle source
# File lib/esplanade/response/validation.rb, line 27 def more_than_one_json_schema main_res = @doc.json_schemas.each do |json_schema| res = JSON::Validator.fully_validate(json_schema, @raw.body.to_hash) break res if res == [] end if main_res != [] ['invalid'] else [] end end
one_json_schema()
click to toggle source
# File lib/esplanade/response/validation.rb, line 23 def one_json_schema JSON::Validator.fully_validate(@doc.json_schemas.first, @raw.body.to_hash) end