Class: FmRest::V1::RaiseErrors

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/fmrest/v1/raise_errors.rb

Overview

FM Data API response middleware for raising exceptions on API response errors

https://fmhelp.filemaker.com/help/17/fmp/en/index.html#page/FMP_Help/error-codes.html

Constant Summary collapse

ERROR_RANGES =
{
  -1         => APIError::UnknownError,
  100        => APIError::ResourceMissingError,
  101        => APIError::RecordMissingError,
  102..199   => APIError::ResourceMissingError,
  200..299   => APIError::AccountError,
  300..399   => APIError::LockError,
  400..499   => APIError::ParameterError,
  500..599   => APIError::ValidationError,
  800..899   => APIError::SystemError,
  1200..1299 => APIError::ScriptError,
  1400..1499 => APIError::ODBCError
}

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/fmrest/v1/raise_errors.rb', line 28

def on_complete(env)
  # Sniff for either straight JSON parsing or Spyke's format
  if env.body[:metadata] && env.body[:metadata][:messages]
    check_errors(env.body[:metadata][:messages])
  elsif env.body["messages"]
    check_errors(env.body["messages"])
  end
end