39 lines
721 B
Ruby
39 lines
721 B
Ruby
require_relative "devops_error"
|
|
class InvalidRecord < ::Devops::Exception::DevopsError
|
|
|
|
# message could be a String or a hash like
|
|
# {
|
|
# error_data: [{:key=>:provider, :message=>"Value can not be undefined"}]
|
|
# }
|
|
def initialize msg
|
|
if msg.is_a?(String)
|
|
super(msg)
|
|
else
|
|
@object = msg
|
|
end
|
|
end
|
|
|
|
def message
|
|
if @object
|
|
messages = @object[:error_data].map do |error_item|
|
|
"#{error_item[:key]}: #{error_item[:message]}"
|
|
end
|
|
"Following errors occured: \n#{messages.join('\n')}"
|
|
else
|
|
super
|
|
end
|
|
end
|
|
|
|
def http_status
|
|
400
|
|
end
|
|
|
|
def http_body
|
|
if @object.nil?
|
|
super
|
|
else
|
|
JSON.pretty_generate(@object)
|
|
end
|
|
end
|
|
end
|