Sha256: 6134451d2854503eb089a3e2951903ccca109ea65bb3193df1f0d373cb1b2e2a

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

# typed: strict
# frozen_string_literal: true

module WhatsappSdk
  # This module allows client instantiating the client as a singleton like the following example:
  # WhatsappSdk.configure do |config|
  #   config.access_token = ACCESS_TOKEN
  #   config.api_version = API_VERSION
  # end
  #
  # The gem have access to the client through WhatsappSdk.configuration.client
  class Configuration
    extend T::Sig

    logger_or_subclass_or_nil = T.nilable(T.any(Logger, T.class_of(Logger)))

    sig { returns(String) }
    attr_accessor :access_token

    sig { returns(String) }
    attr_accessor :api_version

    # loggers like ActiveSupport::Logger (Rails.logger) is a subclass of Logger
    sig { returns(logger_or_subclass_or_nil) }
    attr_accessor :logger

    sig { returns(Hash) }
    attr_accessor :logger_options

    sig do
      params(
        access_token: String,
        api_version: String,
        logger: logger_or_subclass_or_nil,
        logger_options: Hash
      ).void
    end
    def initialize(
      access_token = "",
      api_version = Api::ApiConfiguration::DEFAULT_API_VERSION,
      logger = nil,
      logger_options = {}
    )
      @access_token = access_token
      @api_version = api_version
      @logger = logger
      @logger_options = logger_options
    end

    sig { returns(Api::Client) }
    def client
      Api::Client.new(access_token, api_version, logger, logger_options)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
whatsapp_sdk-0.12.1 lib/whatsapp_sdk/configuration.rb
whatsapp_sdk-0.12.0 lib/whatsapp_sdk/configuration.rb