Module: RailVerdict::SchemaValidator

Defined in:
lib/rail_verdict/schema_validator.rb

Constant Summary collapse

CONFIGURATION_SCHEMA =
"configuration-v1.schema.json"
CONFIGURATION_V11_SCHEMA =
"configuration-v1.1.schema.json"
CONFIGURATION_V12_SCHEMA =
"configuration-v1.2.schema.json"
CONFIGURATION_V13_SCHEMA =
"configuration-v1.3.schema.json"
CONFIGURATION_V14_SCHEMA =
"configuration-v1.4.schema.json"
CONFIGURATION_V15_SCHEMA =
"configuration-v1.5.schema.json"
AI_ANALYSIS_SCHEMA =
"ai-analysis-v1.schema.json"
FINDING_SCHEMA =
"finding-v1.schema.json"
RESULT_SCHEMA =
"result-v1.schema.json"
BASELINE_SCHEMA =
"baseline-v1.schema.json"
WAIVER_SCHEMA =
"waiver-v1.schema.json"
WAIVERS_SCHEMA =
"waivers-v1.schema.json"
REPAIR_PACKET_SCHEMA =
"repair-packet-v1.schema.json"
PR_INTELLIGENCE_SCHEMA =
"pr-intelligence-v1.schema.json"
VERIFICATION_RECEIPT_SCHEMA =
"verification-receipt-v1.schema.json"
RECEIPT_VALIDATION_SCHEMA =
"receipt-validation-v1.schema.json"
VERIFICATION_HANDOFF_SCHEMA =
"verification-handoff-v1.schema.json"

Class Method Summary collapse

Class Method Details

.schema_dirObject



26
27
28
# File 'lib/rail_verdict/schema_validator.rb', line 26

def self.schema_dir
  File.expand_path("../../schemas", __dir__)
end

.validate(data, schema_name) ⇒ Object



91
92
93
94
# File 'lib/rail_verdict/schema_validator.rb', line 91

def self.validate(data, schema_name)
  schema = load_schema(schema_name)
  JSONSchemer.schema(schema).validate(data).map { |error| format_error(error) }
end

.validate_ai_analysis(data) ⇒ Object



47
48
49
# File 'lib/rail_verdict/schema_validator.rb', line 47

def self.validate_ai_analysis(data)
  validate(data, AI_ANALYSIS_SCHEMA)
end

.validate_baseline(data) ⇒ Object



59
60
61
# File 'lib/rail_verdict/schema_validator.rb', line 59

def self.validate_baseline(data)
  validate(data, BASELINE_SCHEMA)
end

.validate_configuration(data) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rail_verdict/schema_validator.rb', line 30

def self.validate_configuration(data)
  schema_name = if data.is_a?(Hash) && data["version"] == 1.5
                  CONFIGURATION_V15_SCHEMA
                elsif data.is_a?(Hash) && data["version"] == 1.4
                  CONFIGURATION_V14_SCHEMA
                elsif data.is_a?(Hash) && data["version"] == 1.3
                  CONFIGURATION_V13_SCHEMA
                elsif data.is_a?(Hash) && data["version"] == 1.2
                  CONFIGURATION_V12_SCHEMA
                elsif data.is_a?(Hash) && data["version"] == 1.1
                  CONFIGURATION_V11_SCHEMA
                else
                  CONFIGURATION_SCHEMA
                end
  validate(data, schema_name)
end

.validate_finding(data) ⇒ Object



51
52
53
# File 'lib/rail_verdict/schema_validator.rb', line 51

def self.validate_finding(data)
  validate(data, FINDING_SCHEMA)
end

.validate_handoff(data) ⇒ Object



87
88
89
# File 'lib/rail_verdict/schema_validator.rb', line 87

def self.validate_handoff(data)
  validate(data, VERIFICATION_HANDOFF_SCHEMA)
end

.validate_pr_intelligence(data) ⇒ Object



75
76
77
# File 'lib/rail_verdict/schema_validator.rb', line 75

def self.validate_pr_intelligence(data)
  validate(data, PR_INTELLIGENCE_SCHEMA)
end

.validate_receipt(data) ⇒ Object



79
80
81
# File 'lib/rail_verdict/schema_validator.rb', line 79

def self.validate_receipt(data)
  validate(data, VERIFICATION_RECEIPT_SCHEMA)
end

.validate_receipt_validation(data) ⇒ Object



83
84
85
# File 'lib/rail_verdict/schema_validator.rb', line 83

def self.validate_receipt_validation(data)
  validate(data, RECEIPT_VALIDATION_SCHEMA)
end

.validate_repair_packet(data) ⇒ Object



71
72
73
# File 'lib/rail_verdict/schema_validator.rb', line 71

def self.validate_repair_packet(data)
  validate(data, REPAIR_PACKET_SCHEMA)
end

.validate_result(data) ⇒ Object



55
56
57
# File 'lib/rail_verdict/schema_validator.rb', line 55

def self.validate_result(data)
  validate(data, RESULT_SCHEMA)
end

.validate_waiver(data) ⇒ Object



63
64
65
# File 'lib/rail_verdict/schema_validator.rb', line 63

def self.validate_waiver(data)
  validate(data, WAIVER_SCHEMA)
end

.validate_waivers(data) ⇒ Object



67
68
69
# File 'lib/rail_verdict/schema_validator.rb', line 67

def self.validate_waivers(data)
  validate(data, WAIVERS_SCHEMA)
end