Class: PaypalServerSdk::SearchErrorException

Inherits:
APIException
  • Object
show all
Defined in:
lib/paypal_server_sdk/exceptions/search_error_exception.rb

Overview

The error details.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reason, response) ⇒ SearchErrorException

The constructor.



49
50
51
52
53
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 49

def initialize(reason, response)
  super(reason, response)
  hash = APIHelper.json_deserialize(@response.raw_body)
  unbox(hash)
end

Instance Attribute Details

#debug_idString

The PayPal internal ID. Used for correlation purposes.



22
23
24
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 22

def debug_id
  @debug_id
end

#detailsArray[TransactionSearchErrorDetails]

An array of additional details about the error.



31
32
33
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 31

def details
  @details
end

The information link, or URI, that shows detailed information about this error for the developer.



27
28
29
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 27

def information_link
  @information_link
end

An array of request-related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links).



36
37
38
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 36

def links
  @links
end

#maximum_itemsInteger

The maximum number of transactions. Valid only for ‘RESULTSET_TOO_LARGE`.



44
45
46
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 44

def maximum_items
  @maximum_items
end

#messageString

The message that describes the error.



18
19
20
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 18

def message
  @message
end

#nameString

The human-readable, unique name of the error.



14
15
16
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 14

def name
  @name
end

#total_itemsInteger

The total number of transactions. Valid only for ‘RESULTSET_TOO_LARGE`.



40
41
42
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 40

def total_items
  @total_items
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



99
100
101
102
103
104
105
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 99

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} name: #{@name.inspect}, message: #{@message.inspect}, debug_id:"\
  " #{@debug_id.inspect}, information_link: #{@information_link.inspect}, details:"\
  " #{@details.inspect}, links: #{@links.inspect}, total_items: #{@total_items.inspect},"\
  " maximum_items: #{@maximum_items.inspect}>"
end

#to_sObject

Provides a human-readable string representation of the object.



91
92
93
94
95
96
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 91

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} name: #{@name}, message: #{@message}, debug_id: #{@debug_id},"\
  " information_link: #{@information_link}, details: #{@details}, links: #{@links},"\
  " total_items: #{@total_items}, maximum_items: #{@maximum_items}>"
end

#unbox(hash) ⇒ Object

Populates this object by extracting properties from a hash. response body.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/paypal_server_sdk/exceptions/search_error_exception.rb', line 58

def unbox(hash)
  return nil unless hash

  @name = hash.key?('name') ? hash['name'] : nil
  @message = hash.key?('message') ? hash['message'] : nil
  @debug_id = hash.key?('debug_id') ? hash['debug_id'] : nil
  @information_link =
    hash.key?('information_link') ? hash['information_link'] : SKIP
  # Parameter is an array, so we need to iterate through it
  @details = nil
  unless hash['details'].nil?
    @details = []
    hash['details'].each do |structure|
      @details << (TransactionSearchErrorDetails.from_hash(structure) if structure)
    end
  end

  @details = SKIP unless hash.key?('details')
  # Parameter is an array, so we need to iterate through it
  @links = nil
  unless hash['links'].nil?
    @links = []
    hash['links'].each do |structure|
      @links << (LinkDescription.from_hash(structure) if structure)
    end
  end

  @links = SKIP unless hash.key?('links')
  @total_items = hash.key?('total_items') ? hash['total_items'] : SKIP
  @maximum_items = hash.key?('maximum_items') ? hash['maximum_items'] : SKIP
end