axhub-sdk 0.7.0 → 0.8.0
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/axhub_sdk/version.rb +1 -1
- data/lib/axhub_sdk.rb +22 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b05fc409d0332a6e77331fa9b8d893fde93d99b022b6209f9159faabf3d2d38e
|
|
4
|
+
data.tar.gz: a8fcbda4d4ec7be14156c3f70e605100e0d372f267826e77d7fe969f986661cf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1b8e7c144ad7949bbb4eef4453e67f6786b21d5596e2a432aeef7455eee6f6d8424587a971ac1f930718684a1bf0cb1f6d14153b137042fe174dd97b4c1af5a9
|
|
7
|
+
data.tar.gz: 74b8bca75475ba90f5fb9aed68a1151633dab2a3981990abbd5cff81a41d979b0c79db912e3a63158851aa292b5a4135f2b3884986a821275a1a6b4cc2f7a86e
|
data/lib/axhub_sdk/version.rb
CHANGED
data/lib/axhub_sdk.rb
CHANGED
|
@@ -355,6 +355,22 @@ module AxHub
|
|
|
355
355
|
authPostOauthRevoke
|
|
356
356
|
authPostOauthToken
|
|
357
357
|
].freeze
|
|
358
|
+
# Token-style OAuth responses keep RFC 6749/8628 standard keys in snake_case.
|
|
359
|
+
# Must match the python SDK's _OAUTH_RESPONSE_SNAKE_CASE_OPERATIONS / _OAUTH_RESPONSE_SNAKE_KEYS.
|
|
360
|
+
OAUTH_RESPONSE_SNAKE_CASE_OPERATIONS = %w[
|
|
361
|
+
authPostOauthDeviceAuthorization
|
|
362
|
+
authPostOauthToken
|
|
363
|
+
].freeze
|
|
364
|
+
OAUTH_RESPONSE_SNAKE_KEYS = %w[
|
|
365
|
+
access_token token_type expires_in refresh_token id_token scope resource tenant
|
|
366
|
+
].freeze
|
|
367
|
+
def self.camelize_oauth_response(value)
|
|
368
|
+
case value
|
|
369
|
+
when Hash then value.map { |k, v| [OAUTH_RESPONSE_SNAKE_KEYS.include?(k.to_s) ? k.to_s : camel(k), camelize_oauth_response(v)] }.to_h
|
|
370
|
+
when Array then value.map { |v| camelize_oauth_response(v) }
|
|
371
|
+
else value
|
|
372
|
+
end
|
|
373
|
+
end
|
|
358
374
|
class Client
|
|
359
375
|
attr_reader :base_url, :apps
|
|
360
376
|
def initialize(base_url: DEFAULT_BASE_URL, token: nil, token_type: nil, default_tenant_id: nil, default_tenant_slug: nil, timeout_seconds: 30)
|
|
@@ -376,7 +392,7 @@ module AxHub
|
|
|
376
392
|
req.body = JSON.generate(body)
|
|
377
393
|
end
|
|
378
394
|
end
|
|
379
|
-
_send(req, uri, camelize: true)
|
|
395
|
+
_send(req, uri, camelize: OAUTH_RESPONSE_SNAKE_CASE_OPERATIONS.include?(operation_id) ? :oauth_snake : true)
|
|
380
396
|
end
|
|
381
397
|
|
|
382
398
|
private
|
|
@@ -414,7 +430,11 @@ module AxHub
|
|
|
414
430
|
retryable = err.key?('retryable') ? !!err['retryable'] : !!info&.retryable
|
|
415
431
|
raise Error.new(category: err['category'] || info&.category || 'unknown', code: err['code'] || "http_#{res.code}", message: err['message'], status: res.code.to_i, retryable: retryable, request_id: err['request_id'] || err['requestId'])
|
|
416
432
|
end
|
|
417
|
-
|
|
433
|
+
case camelize
|
|
434
|
+
when :oauth_snake then AxHub.camelize_oauth_response(parsed)
|
|
435
|
+
when true then AxHub.camelize(parsed)
|
|
436
|
+
else parsed
|
|
437
|
+
end
|
|
418
438
|
end
|
|
419
439
|
|
|
420
440
|
def request_id
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: axhub-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jocoding AX Partners
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|