Class: Spatio::ApiError

Inherits:
ApiModelBase show all
Defined in:
lib/spatio-sdk/models/api_error.rb,
lib/spatio-sdk/api_error.rb

Overview

Standard error envelope returned by 4xx and 5xx responses across the SpatioAPI. Some endpoints attach extra machine-readable fields (‘code`, `accounts`, `requiresPassword`, etc.) — those are documented on the individual operation.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ApiModelBase

_deserialize, #_to_hash, #to_body

Constructor Details

#initialize(attributes = {}) ⇒ ApiError

Initializes the object

Parameters:

  • attributes (Hash) (defaults to: {})

    Model attributes in the form of hash



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/spatio-sdk/api_error.rb', line 22

def initialize(arg = nil)
  if arg.is_a? Hash
    if arg.key?(:message) || arg.key?('message')
      super(arg[:message] || arg['message'])
    else
      super arg
    end

    arg.each do |k, v|
      instance_variable_set "@#{k}", v
    end
  else
    super arg
    @message = arg
  end
end

Instance Attribute Details

#codeObject

Machine-readable error code. Stable across releases for the canonical codes (‘ambiguous_account`, `no_notes_provider`, `note_not_found`). Absent for generic errors.



23
24
25
# File 'lib/spatio-sdk/models/api_error.rb', line 23

def code
  @code
end

#errorObject

Human-readable error message.



20
21
22
# File 'lib/spatio-sdk/models/api_error.rb', line 20

def error
  @error
end

#response_bodyObject (readonly)

Returns the value of attribute response_body.



15
16
17
# File 'lib/spatio-sdk/api_error.rb', line 15

def response_body
  @response_body
end

#response_headersObject (readonly)

Returns the value of attribute response_headers.



15
16
17
# File 'lib/spatio-sdk/api_error.rb', line 15

def response_headers
  @response_headers
end

Class Method Details

.acceptable_attribute_mapObject

Returns attribute mapping this model knows about



34
35
36
# File 'lib/spatio-sdk/models/api_error.rb', line 34

def self.acceptable_attribute_map
  attribute_map
end

.acceptable_attributesObject

Returns all the JSON keys this model knows about



39
40
41
# File 'lib/spatio-sdk/models/api_error.rb', line 39

def self.acceptable_attributes
  acceptable_attribute_map.values
end

.attribute_mapObject

Attribute mapping from ruby-style variable name to JSON key.



26
27
28
29
30
31
# File 'lib/spatio-sdk/models/api_error.rb', line 26

def self.attribute_map
  {
    :'error' => :'error',
    :'code' => :'code'
  }
end

.build_from_hash(attributes) ⇒ Object

Builds the object from hash

Parameters:

  • attributes (Hash)

    Model attributes in the form of hash

Returns:

  • (Object)

    Returns the model itself



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/spatio-sdk/models/api_error.rb', line 138

def self.build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  attributes = attributes.transform_keys(&:to_sym)
  transformed_hash = {}
  openapi_types.each_pair do |key, type|
    if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
      transformed_hash["#{key}"] = nil
    elsif type =~ /\AArray<(.*)>/i
      # check to ensure the input is an array given that the attribute
      # is documented as an array but the input is not
      if attributes[attribute_map[key]].is_a?(Array)
        transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
      end
    elsif !attributes[attribute_map[key]].nil?
      transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
    end
  end
  new(transformed_hash)
end

.openapi_nullableObject

List of attributes with nullable: true



52
53
54
55
# File 'lib/spatio-sdk/models/api_error.rb', line 52

def self.openapi_nullable
  Set.new([
  ])
end

.openapi_typesObject

Attribute type mapping.



44
45
46
47
48
49
# File 'lib/spatio-sdk/models/api_error.rb', line 44

def self.openapi_types
  {
    :'error' => :'String',
    :'code' => :'String'
  }
end

Instance Method Details

#==(o) ⇒ Object

Checks equality by comparing each attribute.

Parameters:

  • Object (Object)

    to be compared



116
117
118
119
120
121
# File 'lib/spatio-sdk/models/api_error.rb', line 116

def ==(o)
  return true if self.equal?(o)
  self.class == o.class &&
      error == o.error &&
      code == o.code
end

#eql?(o) ⇒ Boolean

Parameters:

  • Object (Object)

    to be compared

Returns:

  • (Boolean)

See Also:

  • `==` method


125
126
127
# File 'lib/spatio-sdk/models/api_error.rb', line 125

def eql?(o)
  self == o
end

#hashInteger

Calculates hash code according to all attributes.

Returns:

  • (Integer)

    Hash code



131
132
133
# File 'lib/spatio-sdk/models/api_error.rb', line 131

def hash
  [error, code].hash
end

#list_invalid_propertiesObject

Show invalid properties with the reasons. Usually used together with valid?

Returns:

  • Array for valid properties with the reasons



86
87
88
89
90
91
92
93
94
# File 'lib/spatio-sdk/models/api_error.rb', line 86

def list_invalid_properties
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
  invalid_properties = Array.new
  if @error.nil?
    invalid_properties.push('invalid value for "error", error cannot be nil.')
  end

  invalid_properties
end

#messageObject



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/spatio-sdk/api_error.rb', line 44

def message
  if @message.nil?
    msg = "Error message: the server returns an error"
  else
    msg = @message
  end

  msg += "\nHTTP status code: #{code}" if code
  msg += "\nResponse headers: #{response_headers}" if response_headers
  msg += "\nResponse body: #{response_body}" if response_body

  msg
end

#to_hashHash

Returns the object in the form of hash

Returns:

  • (Hash)

    Returns the object in the form of hash



160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/spatio-sdk/models/api_error.rb', line 160

def to_hash
  hash = {}
  self.class.attribute_map.each_pair do |attr, param|
    value = self.send(attr)
    if value.nil?
      is_nullable = self.class.openapi_nullable.include?(attr)
      next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
    end

    hash[param] = _to_hash(value)
  end
  hash
end

#to_sObject

Override to_s to display a friendly error message



40
41
42
# File 'lib/spatio-sdk/api_error.rb', line 40

def to_s
  message
end

#valid?Boolean

Check to see if the all the properties in the model are valid

Returns:

  • (Boolean)

    true if the model is valid



98
99
100
101
102
# File 'lib/spatio-sdk/models/api_error.rb', line 98

def valid?
  warn '[DEPRECATED] the `valid?` method is obsolete'
  return false if @error.nil?
  true
end