Sha256: 956d31e5cdbcff4b5f654b44509a7db30003186a644610ec4ac3efad6efd0d2e

Contents?: true

Size: 965 Bytes

Versions: 2

Compression:

Stored size: 965 Bytes

Contents

# frozen_string_literal: true

require "json_schematize"
require "json_schematize/generator"

require "slack_bot/events/schemas/data_payload"

module SlackBot
  module Events
    module Schemas
      class SocketPayload < JsonSchematize::Generator
        schema_default option: :dig_type, value: :string

        add_field name: :envelope_id, type: String

        add_field name: :payload, type: SlackBot::Events::Schemas::DataPayload

        add_field name: :type, type: String
        add_field name: :accepts_response_payload, type: JsonSchematize::Boolean
        add_field name: :retry_attempt, type: Integer
        add_field name: :retry_reason, type: String


        def type
          payload.event.type
        end

        def tldr
          retry_language = "#{retry_attempt}"
          retry_language += ":#{retry_reason}" if retry_attempt > 0
          "tldr:#{payload.event.tldr}; retry:#{retry_language}"
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slack_bot-events-0.2.0 lib/slack_bot/events/schemas/socket_payload.rb
slack_bot-events-0.1.0 lib/slack_bot/events/schemas/socket_payload.rb