class FmRest::V1::RaiseErrors
FM Data API response middleware for raising exceptions on API response errors
fmhelp.filemaker.com/help/17/fmp/en/index.html#page/FMP_Help/error-codes.html
Constants
Public Instance Methods
on_complete(env)
click to toggle source
# File lib/fmrest/v1/raise_errors.rb, line 30 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
Private Instance Methods
check_errors(messages)
click to toggle source
# File lib/fmrest/v1/raise_errors.rb, line 41 def check_errors(messages) messages.each do |message| error_code = (message["code"] || message[:code]).to_i # Code 0 means "No Error" next if error_code.zero? error_message = message["message"] || message[:message] *, exception_class = ERROR_RANGES.find { |k, v| k === error_code } raise (exception_class || APIError).new(error_code, error_message) end end