Class: Line::Bot::V2::MessagingApi::ErrorResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/line/bot/v2/messaging_api/model/error_response.rb

Overview

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message:, details: nil, sent_messages: nil, **dynamic_attributes) ⇒ ErrorResponse



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 29

def initialize(
  message:,
  details: nil,
  sent_messages: nil,
  **dynamic_attributes
)
  
  @message = message
  @details = details&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::MessagingApi::ErrorDetail.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end
  @sent_messages = sent_messages&.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::MessagingApi::SentMessage.create(**item) # steep:ignore InsufficientKeywordArguments
    else
      item
    end
  end

  dynamic_attributes.each do |key, value|
    self.class.attr_accessor key

    if value.is_a?(Hash)
      struct_klass = Struct.new(*value.keys.map(&:to_sym))
      struct_values = value.map { |_k, v| v.is_a?(Hash) ? Line::Bot::V2::Utils.hash_to_struct(v) : v }
      instance_variable_set("@#{key}", struct_klass.new(*struct_values))
    else
      instance_variable_set("@#{key}", value)
    end
  end
end

Instance Attribute Details

#detailsArray[ErrorDetail]?



21
22
23
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 21

def details
  @details
end

#messageString



18
19
20
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 18

def message
  @message
end

#sent_messagesArray[SentMessage]?



24
25
26
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 24

def sent_messages
  @sent_messages
end

Class Method Details

.create(args) ⇒ Line::Bot::V2::MessagingApi::ErrorResponse

Create an instance of the class from a hash



68
69
70
71
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 68

def self.create(args) # steep:ignore
  symbolized_args = Line::Bot::V2::Utils.deep_symbolize(args)
  return new(**symbolized_args) # steep:ignore
end

Instance Method Details

#==(other) ⇒ Boolean



75
76
77
78
79
80
81
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 75

def ==(other)
  return false unless self.class == other.class

  instance_variables.all? do |var|
      instance_variable_get(var) == other.instance_variable_get(var)
  end
end

#hashInteger



84
85
86
# File 'lib/line/bot/v2/messaging_api/model/error_response.rb', line 84

def hash
  [self.class, *instance_variables.map { |var| instance_variable_get(var) }].hash
end