Class: Line::Bot::V2::Webhook::CallbackRequest

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

Overview

The request body contains a JSON object with the user ID of a bot that should receive webhook events and an array of webhook event objects.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(destination:, events:, **dynamic_attributes) ⇒ CallbackRequest

Returns a new instance of CallbackRequest.

Parameters:

  • destination (String)

    User ID of a bot that should receive webhook events. The user ID value is a string that matches the regular expression, ‘U32`.

  • events (Array[Event, Hash[Symbol, untyped]])

    Array of webhook event objects. The LINE Platform may send an empty array that doesn’t include a webhook event object to confirm communication.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 26

def initialize(
  destination:,
  events:,
  **dynamic_attributes
)
  
  @destination = destination
  @events = events.map do |item|
    if item.is_a?(Hash)
      Line::Bot::V2::Webhook::Event.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

#destinationString

Returns User ID of a bot that should receive webhook events. The user ID value is a string that matches the regular expression, ‘U32`.

Returns:

  • (String)

    User ID of a bot that should receive webhook events. The user ID value is a string that matches the regular expression, ‘U32`.



19
20
21
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 19

def destination
  @destination
end

#eventsArray[Event]

Returns Array of webhook event objects. The LINE Platform may send an empty array that doesn’t include a webhook event object to confirm communication.

Returns:

  • (Array[Event])

    Array of webhook event objects. The LINE Platform may send an empty array that doesn’t include a webhook event object to confirm communication.



22
23
24
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 22

def events
  @events
end

Class Method Details

.create(args) ⇒ Line::Bot::V2::Webhook::CallbackRequest

Create an instance of the class from a hash

Parameters:

  • args (Hash)

    Hash containing all the required attributes

Returns:



57
58
59
60
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 57

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

Returns true if the objects are equal, false otherwise.

Parameters:

  • other (Object)

    Object to compare

Returns:

  • (Boolean)

    true if the objects are equal, false otherwise



64
65
66
67
68
69
70
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 64

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

Returns Hash code of the object.

Returns:

  • (Integer)

    Hash code of the object



73
74
75
# File 'lib/line/bot/v2/webhook/model/callback_request.rb', line 73

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