Sha256: 9657690e175b3d30ec1e358972d9a8172e956d6a19249c7e053a6b6b05bbe783

Contents?: true

Size: 738 Bytes

Versions: 5

Compression:

Stored size: 738 Bytes

Contents

# frozen_string_literal: true

module SlackBot
  module Events
    module Schematize
      def self.message(parsed_data)
        case parsed_data["type"]
        when "events_api"
          return SlackBot::Events::Schemas::SocketPayload
        when "app_rate_limited"
        when "hello"
        end
      end

      def self.call(data:)
        parsed_data = JSON.parse(data)
        return { parsed_data: parsed_data } unless schema_klass = message(parsed_data)

        if schema_klass.respond_to?(:call)
          { schema: schema_klass.call(parsed_data).new(parsed_data), parsed_data: parsed_data }
        else
          { schema: schema_klass.new(parsed_data), parsed_data: parsed_data }
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
slack_bot-events-0.4.4 lib/slack_bot/events/schematize.rb
slack_bot-events-0.4.2 lib/slack_bot/events/schematize.rb
slack_bot-events-0.4.1 lib/slack_bot/events/schematize.rb
slack_bot-events-0.4.0 lib/slack_bot/events/schematize.rb
slack_bot-events-0.3.0 lib/slack_bot/events/schematize.rb