ding_sdk 0.11.58 → 0.11.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c80eb891584541334a3bf3bc6bae0786fe213990ff0e081a42d6d35eefdae1a
4
- data.tar.gz: b5aeee51853065f002916f5ff6fa7195aa63be06d9108c3ebd85120e4ec3626b
3
+ metadata.gz: 425bc436b8c775332e5cae324e1e9f38a70a9f41c70cab02320ac13e638241cd
4
+ data.tar.gz: 6a007e2538a1f80c4af0278d11b1090761b8512132a3189aa1e1fc2f52b0eb4b
5
5
  SHA512:
6
- metadata.gz: '08001a7cb7cd3949c68c97cefe76dd12282ba90e51594ecf6556ac3ec09bc310f943164f205af237e9c7bcb10607ea8c5465708b45e6bc2452e8f7bc83e1dce1'
7
- data.tar.gz: 983476e0e3aeadaf197732b3c347b67749661e832a10c426b61bec5122ac5882886c9e55b89b062f7a276db66c0450860ff771c0594010264bb5d75722fa5d94
6
+ metadata.gz: 8cdd4b59a855a10cc2e7e73efd8715cc11ecd6c1a4a32bb347a09c77bde44bc68a62a41d79f38859d4bbb2aae8df37b3017e66196ba5943c7d51fc293cfa22f0
7
+ data.tar.gz: 4a26210faaf7d8217a5d516ebc9ab78afd98b92d6fd823bd4bb77bf97c4e9788dea7ac5890a9af0738f612d5c390dee8a4ee7c3efb92a7c557388710b138b92f
data/lib/ding_sdk/ding.rb CHANGED
@@ -5,7 +5,9 @@
5
5
 
6
6
  require 'faraday'
7
7
  require 'faraday/multipart'
8
+ require 'faraday/retry'
8
9
  require 'sorbet-runtime'
10
+ require_relative 'utils/retries'
9
11
 
10
12
  module DingSDK
11
13
  extend T::Sig
@@ -17,7 +19,8 @@ module DingSDK
17
19
 
18
20
  sig do
19
21
  params(
20
- client: T.nilable(Faraday::Request),
22
+ client: T.nilable(Faraday::Connection),
23
+ retry_config: T.nilable(::DingSDK::Utils::RetryConfig),
21
24
  security: T.nilable(::DingSDK::Shared::Security),
22
25
  security_source: T.nilable(T.proc.returns(::DingSDK::Shared::Security)),
23
26
  server_idx: T.nilable(Integer),
@@ -25,9 +28,10 @@ module DingSDK
25
28
  url_params: T.nilable(T::Hash[Symbol, String])
26
29
  ).void
27
30
  end
28
- def initialize(client: nil, security: nil, security_source: nil, server_idx: nil, server_url: nil, url_params: nil)
31
+ def initialize(client: nil, retry_config: nil, security: nil, security_source: nil, server_idx: nil, server_url: nil, url_params: nil)
29
32
  ## Instantiates the SDK configuring it with the provided parameters.
30
- # @param [T.nilable(Faraday::Request)] client The faraday HTTP client to use for all operations
33
+ # @param [T.nilable(Faraday::Connection)] client The faraday HTTP client to use for all operations
34
+ # @param [T.nilable(::DingSDK::Utils::RetryConfig)] retry_config The retry configuration to use for all operations
31
35
  # @param [T.nilable(::DingSDK::Shared::Security)] security: The security details required for authentication
32
36
  # @param [T.proc.returns(T.nilable(::DingSDK::Shared::Security))] security_source: A function that returns security details required for authentication
33
37
  # @param [T.nilable(::Integer)] server_idx The index of the server to use for all operations
@@ -52,6 +56,7 @@ module DingSDK
52
56
  server_idx = 0 if server_idx.nil?
53
57
  @sdk_configuration = SDKConfiguration.new(
54
58
  client,
59
+ retry_config,
55
60
  security,
56
61
  security_source,
57
62
  server_url,
@@ -5,7 +5,9 @@
5
5
 
6
6
  require 'faraday'
7
7
  require 'faraday/multipart'
8
+ require 'faraday/retry'
8
9
  require 'sorbet-runtime'
10
+ require_relative 'utils/retries'
9
11
 
10
12
  module DingSDK
11
13
  extend T::Sig
@@ -41,7 +43,9 @@ module DingSDK
41
43
  headers['Accept'] = 'application/json'
42
44
  headers['user-agent'] = @sdk_configuration.user_agent
43
45
 
44
- r = @sdk_configuration.client.get(url) do |req|
46
+ connection = @sdk_configuration.client
47
+
48
+ r = connection.get(url) do |req|
45
49
  req.headers = headers
46
50
  req.params = query_params
47
51
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
data/lib/ding_sdk/otp.rb CHANGED
@@ -5,7 +5,9 @@
5
5
 
6
6
  require 'faraday'
7
7
  require 'faraday/multipart'
8
+ require 'faraday/retry'
8
9
  require 'sorbet-runtime'
10
+ require_relative 'utils/retries'
9
11
 
10
12
  module DingSDK
11
13
  extend T::Sig
@@ -31,7 +33,9 @@ module DingSDK
31
33
  headers['Accept'] = 'application/json'
32
34
  headers['user-agent'] = @sdk_configuration.user_agent
33
35
 
34
- r = @sdk_configuration.client.post(url) do |req|
36
+ connection = @sdk_configuration.client
37
+
38
+ r = connection.post(url) do |req|
35
39
  req.headers = headers
36
40
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
37
41
  Utils.configure_request_security(req, security) if !security.nil?
@@ -77,7 +81,9 @@ module DingSDK
77
81
  headers['Accept'] = 'application/json'
78
82
  headers['user-agent'] = @sdk_configuration.user_agent
79
83
 
80
- r = @sdk_configuration.client.post(url) do |req|
84
+ connection = @sdk_configuration.client
85
+
86
+ r = connection.post(url) do |req|
81
87
  req.headers = headers
82
88
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
83
89
  Utils.configure_request_security(req, security) if !security.nil?
@@ -123,7 +129,9 @@ module DingSDK
123
129
  headers['Accept'] = 'application/json'
124
130
  headers['user-agent'] = @sdk_configuration.user_agent
125
131
 
126
- r = @sdk_configuration.client.post(url) do |req|
132
+ connection = @sdk_configuration.client
133
+
134
+ r = connection.post(url) do |req|
127
135
  req.headers = headers
128
136
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
129
137
  Utils.configure_request_security(req, security) if !security.nil?
@@ -176,7 +184,9 @@ module DingSDK
176
184
  headers['Accept'] = 'application/json'
177
185
  headers['user-agent'] = @sdk_configuration.user_agent
178
186
 
179
- r = @sdk_configuration.client.get(url) do |req|
187
+ connection = @sdk_configuration.client
188
+
189
+ r = connection.get(url) do |req|
180
190
  req.headers = headers
181
191
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
182
192
  Utils.configure_request_security(req, security) if !security.nil?
@@ -215,7 +225,9 @@ module DingSDK
215
225
  headers['Accept'] = 'application/json'
216
226
  headers['user-agent'] = @sdk_configuration.user_agent
217
227
 
218
- r = @sdk_configuration.client.post(url) do |req|
228
+ connection = @sdk_configuration.client
229
+
230
+ r = connection.post(url) do |req|
219
231
  req.headers = headers
220
232
  security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
221
233
  Utils.configure_request_security(req, security) if !security.nil?
@@ -5,7 +5,9 @@
5
5
 
6
6
  require 'faraday'
7
7
  require 'faraday/multipart'
8
+ require 'faraday/retry'
8
9
  require 'sorbet-runtime'
10
+ require_relative 'utils/retries'
9
11
 
10
12
  module DingSDK
11
13
  extend T::Sig
@@ -19,6 +21,7 @@ module DingSDK
19
21
  extend T::Sig
20
22
 
21
23
  field :client, T.nilable(Faraday::Connection)
24
+ field :retry_config, T.nilable(::DingSDK::Utils::RetryConfig)
22
25
  field :security_source, T.nilable(T.proc.returns(T.nilable(::DingSDK::Shared::Security)))
23
26
  field :server_url, T.nilable(String)
24
27
  field :server_idx, T.nilable(Integer)
@@ -28,11 +31,19 @@ module DingSDK
28
31
  field :gen_version, String
29
32
  field :user_agent, String
30
33
 
31
-
32
-
33
- sig { params(client: T.nilable(Faraday::Connection), security: T.nilable(::DingSDK::Shared::Security), security_source: T.nilable(T.proc.returns(::DingSDK::Shared::Security)), server_url: T.nilable(String), server_idx: T.nilable(Integer)).void }
34
- def initialize(client, security, security_source, server_url, server_idx)
34
+ sig do
35
+ params(
36
+ client: T.nilable(Faraday::Connection),
37
+ retry_config: T.nilable(::DingSDK::Utils::RetryConfig),
38
+ security: T.nilable(::DingSDK::Shared::Security),
39
+ security_source: T.nilable(T.proc.returns(::DingSDK::Shared::Security)),
40
+ server_url: T.nilable(String),
41
+ server_idx: T.nilable(Integer)
42
+ ).void
43
+ end
44
+ def initialize(client, retry_config, security, security_source, server_url, server_idx)
35
45
  @client = client
46
+ @retry_config = retry_config
36
47
  @server_url = server_url
37
48
  @server_idx = server_idx.nil? ? 0 : server_idx
38
49
  raise StandardError, "Invalid server index #{server_idx}" if @server_idx.negative? || @server_idx >= SERVERS.length
@@ -43,9 +54,9 @@ module DingSDK
43
54
  end
44
55
  @language = 'ruby'
45
56
  @openapi_doc_version = '1.0.0'
46
- @sdk_version = '0.11.58'
47
- @gen_version = '2.545.4'
48
- @user_agent = 'speakeasy-sdk/ruby 0.11.58 2.545.4 1.0.0 ding_sdk'
57
+ @sdk_version = '0.11.60'
58
+ @gen_version = '2.548.1'
59
+ @user_agent = 'speakeasy-sdk/ruby 0.11.60 2.548.1 1.0.0 ding_sdk'
49
60
  end
50
61
 
51
62
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -0,0 +1,95 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday/retry'
7
+ require 'sorbet-runtime'
8
+
9
+ module DingSDK
10
+ module Utils
11
+ class BackoffStrategy
12
+ extend T::Sig
13
+
14
+ sig { returns(T.nilable(::Float)) }
15
+ attr_accessor :exponent
16
+
17
+ sig { returns(T.nilable(::Integer)) }
18
+ attr_accessor :initial_interval
19
+
20
+ sig { returns(T.nilable(::Integer)) }
21
+ attr_accessor :max_elapsed_time
22
+
23
+ sig { returns(T.nilable(::Integer)) }
24
+ attr_accessor :max_interval
25
+
26
+ sig do
27
+ params(
28
+ exponent: T.nilable(::Float),
29
+ initial_interval: T.nilable(::Integer),
30
+ max_elapsed_time: T.nilable(::Integer),
31
+ max_interval: T.nilable(::Integer)
32
+ ).void
33
+ end
34
+ def initialize(exponent: nil, initial_interval: nil, max_elapsed_time: nil, max_interval: nil)
35
+ @exponent = T.let(exponent, T.nilable(::Float))
36
+ @initial_interval = T.let(initial_interval, T.nilable(::Integer))
37
+ @max_elapsed_time = T.let(max_elapsed_time, T.nilable(::Integer))
38
+ @max_interval = T.let(max_interval, T.nilable(::Integer))
39
+ end
40
+ end
41
+
42
+ class RetryConfig
43
+ extend T::Sig
44
+
45
+ sig { returns(T.nilable(BackoffStrategy)) }
46
+ attr_accessor :backoff
47
+
48
+ sig { returns(T.nilable(T::Boolean)) }
49
+ attr_accessor :retry_connection_errors
50
+
51
+ sig { returns(T.nilable(::String)) }
52
+ attr_accessor :strategy
53
+
54
+ sig do
55
+ params(
56
+ backoff: T.nilable(BackoffStrategy),
57
+ retry_connection_errors: T.nilable(T::Boolean),
58
+ strategy: T.nilable(::String)
59
+ ).void
60
+ end
61
+ def initialize(backoff: nil, retry_connection_errors: nil, strategy: nil)
62
+ @backoff = T.let(backoff, T.nilable(BackoffStrategy))
63
+ @retry_connection_errors = T.let(retry_connection_errors, T.nilable(T::Boolean))
64
+ @strategy = T.let(strategy, T.nilable(::String))
65
+ end
66
+
67
+ sig { params(initial_time: ::Time).returns(::Hash) }
68
+ def to_faraday_retry_options(initial_time:)
69
+ retry_options = {
70
+ # must overwrite default max of 2 retries and it must be positive
71
+ max: 1_000_000_000,
72
+ # ensure all HTTP methods are retried, especially via retry_if
73
+ methods: [],
74
+ }
75
+
76
+ if @retry_connection_errors
77
+ retry_options[:exceptions] = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed]
78
+ end
79
+
80
+ if @strategy == 'backoff' && @backoff
81
+ retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
82
+ retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
83
+ retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
84
+
85
+ unless @backoff.max_elapsed_time.nil?
86
+ stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
87
+ retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
88
+ end
89
+ end
90
+
91
+ retry_options
92
+ end
93
+ end
94
+ end
95
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ding_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.58
4
+ version: 0.11.60
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ding
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-10 00:00:00.000000000 Z
11
+ date: 2025-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: faraday-retry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.2.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.2.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rack
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +128,28 @@ dependencies:
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: 1.60.2
131
+ version: 1.73.2
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.73.2
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-minitest
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.37.1
118
146
  type: :development
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 1.60.2
152
+ version: 0.37.1
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: sorbet
127
155
  requirement: !ruby/object:Gem::Requirement
@@ -197,6 +225,7 @@ files:
197
225
  - lib/ding_sdk/models/shared/status.rb
198
226
  - lib/ding_sdk/otp.rb
199
227
  - lib/ding_sdk/sdkconfiguration.rb
228
+ - lib/ding_sdk/utils/retries.rb
200
229
  - lib/ding_sdk/utils/utils.rb
201
230
  homepage: https://github.com/ding-live/ding-ruby.git
202
231
  licenses: