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
 | 
