Class: Rethinker::QueryRunner::WriteError
- Inherits:
-
Middleware
- Object
- Middleware
- Rethinker::QueryRunner::WriteError
- Defined in:
- lib/rethinker/query_runner/write_error.rb
Instance Method Summary collapse
Methods inherited from Middleware
Constructor Details
This class inherits a constructor from Rethinker::QueryRunner::Middleware
Instance Method Details
#call(env) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rethinker/query_runner/write_error.rb', line 2 def call(env) @runner.call(env).tap do |result| # TODO Fix rethinkdb driver: Their classes Term, Query, Response are # not scoped to the RethinkDB module! (that would prevent a user from # creating a Response model for example). if is_write_query?(env) && (result['errors'].to_i != 0 || result['skipped'].to_i != 0) raise_write_error(env, result['first_error']) end end rescue RethinkDB::RqlRuntimeError => e raise unless is_write_query?(env) error_msg = e..split("\nBacktrace").first error_msg = "Non existent document" if e. =~ /Expected type OBJECT but found NULL/ raise_write_error(env, error_msg) end |