34 lines
696 B
Ruby
34 lines
696 B
Ruby
require_relative 'devops_error'
|
|
module Devops
|
|
module Exception
|
|
class ValidationError < DevopsError
|
|
|
|
attr_accessor :body
|
|
|
|
def self.create_from_db_exception e
|
|
msgs = e.document.errors.messages
|
|
create_from_messages(msgs)
|
|
end
|
|
|
|
def self.create_from_messages msgs
|
|
msgs.keys.each{|k| msgs[k] = msgs[k][0]}
|
|
Devops::Exception::ValidationError.new(nil, msgs)
|
|
end
|
|
|
|
def initialize msg, body={}
|
|
super(msg || "Validation error")
|
|
self.body = body
|
|
end
|
|
|
|
def http_status
|
|
422
|
|
end
|
|
|
|
def http_body
|
|
JSON.pretty_generate(self.body.merge(message: self.message))
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|