Class: DingSDK::Ding

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/ding_sdk/ding.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client: nil, retry_config: nil, timeout_ms: nil, security: nil, security_source: nil, server_idx: nil, server_url: nil, url_params: nil) ⇒ Ding

Returns a new instance of Ding.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/ding_sdk/ding.rb', line 33

def initialize(client: nil, retry_config: nil, timeout_ms: nil, security: nil, security_source: nil, server_idx: nil, server_url: nil, url_params: nil)
  ## Instantiates the SDK configuring it with the provided parameters.
  # @param [T.nilable(Faraday::Connection)] client The faraday HTTP client to use for all operations
  # @param [T.nilable(::DingSDK::Utils::RetryConfig)] retry_config The retry configuration to use for all operations
  # @param [T.nilable(Integer)] timeout_ms Request timeout in milliseconds for all operations
  # @param [T.nilable(Models::Shared::Security)] security: The security details required for authentication
  # @param [T.proc.returns(T.nilable(Models::Shared::Security))] security_source: A function that returns security details required for authentication
  # @param [T.nilable(::Integer)] server_idx The index of the server to use for all operations
  # @param [T.nilable(::String)] server_url The server URL to use for all operations
  # @param [T.nilable(::Hash<::Symbol, ::String>)] url_params Parameters to optionally template the server URL with

  connection_options = {
    request: {
      params_encoder: Faraday::FlatParamsEncoder
    }
  }
  connection_options[:request][:timeout] = (timeout_ms.to_f / 1000) unless timeout_ms.nil?

  client ||= Faraday.new(**connection_options) do |f|
    f.request :multipart, {}
    # f.response :logger, nil, { headers: true, bodies: true, errors: true }
  end

  if !server_url.nil?
    if !url_params.nil?
      server_url = Utils.template_url(server_url, url_params)
    end
  end

  server_idx = 0 if server_idx.nil?
  hooks = SDKHooks::Hooks.new
  @sdk_configuration = SDKConfiguration.new(
    client,
    hooks,
    retry_config,
    timeout_ms,
    security,
    security_source,
    server_url,
    server_idx
  )

  original_server_url = @sdk_configuration.get_server_details.first
  new_server_url, @sdk_configuration.client = hooks.sdk_init(base_url: original_server_url, client: client)
  @sdk_configuration.server_url = new_server_url if new_server_url != original_server_url

  init_sdks
end

Instance Attribute Details

#lookupObject

Returns the value of attribute lookup.



19
20
21
# File 'lib/ding_sdk/ding.rb', line 19

def lookup
  @lookup
end

#otpObject

Returns the value of attribute otp.



19
20
21
# File 'lib/ding_sdk/ding.rb', line 19

def otp
  @otp
end

Instance Method Details

#init_sdksObject



83
84
85
86
# File 'lib/ding_sdk/ding.rb', line 83

def init_sdks
  @otp = Otp.new(@sdk_configuration)
  @lookup = Lookup.new(@sdk_configuration)
end