Sha256: 1007cf240f4898585868fb212395fbc82348e0ce25a125623b1dc3d5343546a2

Contents?: true

Size: 732 Bytes

Versions: 6

Compression:

Stored size: 732 Bytes

Contents

class MessengerPlatform::WebhookController < ActionController::Base

  def subscribe
    if params["hub.verify_token"] == MessengerPlatform.verify_token
      render plain: params["hub.challenge"], status: 200
    else
      head 400
    end
  end

  def message
    params.fetch(:entry, []).each do |entry|
      entry.fetch(:messaging, []).each do |message|
        process_message(message)
      end
    end

    head 200
  end

  private

  delegate :processor_class, :processor_method, to: :platform

  def process_message(message)
    inbound_message = MessengerPlatform::InboundMessage.new(message)
    processor_class.new(inbound_message).public_send(processor_method)
  end

  def platform
    MessengerPlatform
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
messenger_platform_rails-0.5.1 app/controllers/messenger_platform/webhook_controller.rb
messenger_platform_rails-0.5.0 app/controllers/messenger_platform/webhook_controller.rb
messenger_platform_rails-0.4.0 app/controllers/messenger_platform/webhook_controller.rb
messenger_platform_rails-0.3.0 app/controllers/messenger_platform/webhook_controller.rb
messenger_platform_rails-0.2.0 app/controllers/messenger_platform/webhook_controller.rb
messenger_platform_rails-0.1.0 app/controllers/messenger_platform/webhook_controller.rb