module Datacentred::Errors
Behaviours and exceptions for recoverable errors.
Public Class Methods
raise_unless_successful(status, body)
click to toggle source
Test server response and raise appropriate error if an error has been returned.
@raise [Error] Appropriate error for server response code. @return [nil] Returns nil on success
# File lib/datacentred/error.rb, line 8 def self.raise_unless_successful(status, body) return if status.to_s.start_with? "2" # 2xx err = errors[status] message = body&.fetch("errors")&.first&.fetch("detail") if err raise err, message || status.to_s else raise Error, "Error #{status}: #{message}" end end
Private Class Methods
errors()
click to toggle source
# File lib/datacentred/error.rb, line 42 def self.errors { 401 => Datacentred::Errors::Unauthorized, 404 => Datacentred::Errors::NotFound, 422 => Datacentred::Errors::UnprocessableEntity } end