Sha256: 42479713f99c1eb3871114934eedf4a5cafc32f36eecd3bd19c7dc94968facbb
Contents?: true
Size: 1014 Bytes
Versions: 21
Compression:
Stored size: 1014 Bytes
Contents
require 'bobot/events/common' require 'bobot/events/message' require 'bobot/events/message_echo' require 'bobot/events/delivery' require 'bobot/events/postback' require 'bobot/events/optin' require 'bobot/events/read' require 'bobot/events/account_linking' require 'bobot/events/referral' module Bobot module Event EVENTS = { 'message' => Message, 'delivery' => Delivery, 'postback' => Postback, 'optin' => Optin, 'read' => Read, 'account_linking' => AccountLinking, 'referral' => Referral, 'message_echo' => MessageEcho, }.freeze def self.parse(payload) return MessageEcho.new(payload) if payload_is_echo?(payload) EVENTS.each do |event, klass| return klass.new(payload) if payload.key?(event) end raise UnknownPayload.new(payload) end def self.payload_is_echo?(payload) payload.key?('message') && payload['message']['is_echo'] == true end class UnknownPayload < Bobot::Error; end end end
Version data entries
21 entries across 21 versions & 1 rubygems