class Messenger::Parameters::Messaging

Attributes

callback[RW]
recipient_id[RW]
sender_id[RW]

Public Class Methods

new(sender:, recipient:, timestamp: nil, message: nil, delivery: nil, postback: nil, optin: nil, read: nil, account_linking: nil) click to toggle source
# File lib/messenger/parameters/messaging.rb, line 6
def initialize(sender:, recipient:, timestamp: nil, message: nil, delivery: nil, postback: nil, optin: nil, read: nil, account_linking: nil)
  @sender_id    = sender['id']
  @recipient_id = recipient['id']
  @callback     = set_callback(message: message, delivery: delivery, postback: postback, optin: optin, read: read, account_linking: account_linking)
end

Public Instance Methods

set_callback(callbacks) click to toggle source
# File lib/messenger/parameters/messaging.rb, line 12
def set_callback(callbacks)
  type = callbacks.select { |_, v| v.present? }.keys.first
  @callback = constant(type).new(callbacks[type].transform_keys(&:to_sym))
end

Private Instance Methods

constant(symbol) click to toggle source
# File lib/messenger/parameters/messaging.rb, line 19
def constant(symbol)
  "Messenger::Parameters::#{symbol.to_s.camelize}".constantize
end