lib/elastic/app-search/exceptions.rb in elastic-app-search-7.3.0 vs lib/elastic/app-search/exceptions.rb in elastic-app-search-7.3.1
- old
+ new
@@ -1,16 +1,19 @@
module Elastic
module AppSearch
class ClientException < StandardError
attr_reader :errors
+ def extract_messages(response)
+ errors_value = response['errors']
+ return errors_value if errors_value && errors_value.is_a?(Array)
+ return [errors_value] if errors_value && !errors_value.is_a?(Array)
+ [response]
+ end
+
def initialize(response)
- @errors = if response.is_a?(Array)
- response.flat_map { |r| r['errors'] }
- else
- response['errors'] || [response]
- end
- message = (errors.count == 1) ? "Error: #{errors.first}" : "Errors: #{errors.inspect}"
+ @errors = response.is_a?(Array) ? response.flat_map { |r| extract_messages(r) } : extract_messages(response)
+ message = (errors.size == 1) ? "Error: #{errors.first}" : "Errors: #{errors.inspect}"
super(message)
end
end
class NonExistentRecord < ClientException; end