Exception: FaithTeams::API::V2::Error::Request

Inherits:
StandardError
  • Object
show all
Defined in:
lib/faithteams/api/v2/error/request.rb

Overview

A request failed to complete successfully.

Constant Summary collapse

UNAUTHORIZED_ERROR_MESSAGE =

Custom faithteams error about invalid API key

"Unauthorized"
NOT_FOUND_ERROR_MESSAGE =

Custom faithteams error when a resource is not found

"Not Found"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response:, message: "Request failed", skip_failure_message: false) ⇒ Request

Returns a new instance of Request.

Parameters:

  • response (HTTP::Response)
  • message (String) (defaults to: "Request failed")


19
20
21
22
23
# File 'lib/faithteams/api/v2/error/request.rb', line 19

def initialize(response:, message: "Request failed", skip_failure_message: false)
  @response = response
  message += ": #{failure_message}" unless failure_message.blank? || skip_failure_message
  super(message)
end

Instance Attribute Details

#responseObject (readonly)

Returns the value of attribute response.



9
10
11
# File 'lib/faithteams/api/v2/error/request.rb', line 9

def response
  @response
end

Instance Method Details

#failure_messageString

Returns:

  • (String)


26
27
28
29
30
31
# File 'lib/faithteams/api/v2/error/request.rb', line 26

def failure_message
  @failure_message ||= response.parse(:json).dig("message") rescue ""
rescue JSON::ParserError => e
  e.capture
  response.to_s
end

#not_found?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/faithteams/api/v2/error/request.rb', line 39

def not_found?
  failure_message == NOT_FOUND_ERROR_MESSAGE
end

#unauthorized?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/faithteams/api/v2/error/request.rb', line 34

def unauthorized?
  failure_message == UNAUTHORIZED_ERROR_MESSAGE
end