ding_sdk 0.11.58 → 0.11.59
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 +4 -4
- data/lib/ding_sdk/ding.rb +8 -3
- data/lib/ding_sdk/lookup.rb +5 -1
- data/lib/ding_sdk/otp.rb +17 -5
- data/lib/ding_sdk/sdkconfiguration.rb +18 -7
- data/lib/ding_sdk/utils/retries.rb +95 -0
- metadata +33 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebbaf136698461ab77830e39a50563076a8f9c1c5b9131ca0e97e1645182e470
|
4
|
+
data.tar.gz: bd8f1303aec8d4e7282cdc94a56525b906a7a1c83f0472bdcfb7f703c3d4063c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f29bbede152b4b38738719542f74d93fe87bd9e857e5b5af1ba3fc5e7c1ec57f93ed41eccecfbfaa33299d06258506feef6b84a6eeaea221240a5f6aa8753a1d
|
7
|
+
data.tar.gz: 11b94c3f4ad5c5e7f3e060e49da4ec36f4124454fe19aabff6ffa988afa8c74326c48add9bc20bc15127d28ef4e7ee34e2398447cc141aefd4e34a492b965bf2
|
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::
|
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::
|
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,
|
data/lib/ding_sdk/lookup.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
|
@@ -41,7 +43,9 @@ module DingSDK
|
|
41
43
|
headers['Accept'] = 'application/json'
|
42
44
|
headers['user-agent'] = @sdk_configuration.user_agent
|
43
45
|
|
44
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
34
|
-
|
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.
|
47
|
-
@gen_version = '2.
|
48
|
-
@user_agent = 'speakeasy-sdk/ruby 0.11.
|
57
|
+
@sdk_version = '0.11.59'
|
58
|
+
@gen_version = '2.546.3'
|
59
|
+
@user_agent = 'speakeasy-sdk/ruby 0.11.59 2.546.3 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 OpenApiSDK
|
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.
|
4
|
+
version: 0.11.59
|
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-
|
11
|
+
date: 2025-03-11 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.
|
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:
|
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:
|