diff options
Diffstat (limited to 'lib/gitlab/event_store/event.rb')
-rw-r--r-- | lib/gitlab/event_store/event.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/gitlab/event_store/event.rb b/lib/gitlab/event_store/event.rb index ba82ae6dd6a..aecb4fd17c3 100644 --- a/lib/gitlab/event_store/event.rb +++ b/lib/gitlab/event_store/event.rb @@ -47,7 +47,7 @@ module Gitlab def validate_schema! if self.class.json_schema_valid.nil? - self.class.json_schema_valid = JSONSchemer.schema(self.class.json_schema).valid?(schema) + self.class.json_schema_valid = JSONSchemer.schema(Event.json_schema).valid?(schema) end return if self.class.json_schema_valid == true @@ -60,8 +60,12 @@ module Gitlab raise Gitlab::EventStore::InvalidEvent, "Event data must be a Hash" end - unless JSONSchemer.schema(schema).valid?(data.deep_stringify_keys) - raise Gitlab::EventStore::InvalidEvent, "Data for event #{self.class} does not match the defined schema: #{schema}" + errors = JSONSchemer.schema(schema).validate(data.deep_stringify_keys).map do |error| + JSONSchemer::Errors.pretty(error) + end + + unless errors.empty? + raise Gitlab::EventStore::InvalidEvent, "Data for event #{self.class} does not match the defined schema: #{errors.inspect}" end end |