module Goliath::Rack::Validator

def safely(env, headers={})

Parameters:
  • headers (Hash) -- Response headers to preserve in an error response
  • env (Goliath::Env) -- The current request env
def safely(env, headers={})
  begin
    yield
  rescue Goliath::Validation::Error => e
    validation_error(e.status_code, e.message, headers)
  rescue Exception => e
    env.logger.error(e.message)
    env.logger.error(e.backtrace.join("\n"))
    validation_error(500, e.message, headers)
  end
end

def validation_error(status_code, msg, headers={})

Parameters:
  • headers (Hash) -- Response headers to preserve in an error response;
  • msg (String) -- message to inject into the response body.
  • status_code (Integer) -- HTTP status code for this error.
def validation_error(status_code, msg, headers={})
  headers.delete('Content-Length')
  [status_code, headers, {:error => msg}]
end