torque_api 0.1.0 → 0.1.1
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/CHANGELOG.md +10 -0
- data/README.md +17 -8
- data/lib/torque_api/client.rb +1 -1
- data/lib/torque_api/objects/{return_rma.rb → pre_advice_response.rb} +1 -1
- data/lib/torque_api/objects/return_rma_response.rb +5 -0
- data/lib/torque_api/resource.rb +12 -2
- data/lib/torque_api/resources/pre_advice_resource.rb +2 -1
- data/lib/torque_api/resources/return_rma_resource.rb +2 -2
- data/lib/torque_api/version.rb +1 -1
- data/lib/torque_api.rb +2 -1
- metadata +18 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22a5374be86c7a02fd3c7f2db69a57865b23de47f3484dd31786733b1db3c86c
|
|
4
|
+
data.tar.gz: c7da24784777edf7b2bedd777d154e67df1d8b8d1c094ac932f67983cfc0bba1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d431077df1a840bb0850a9b788ba66ecfdd3302f870a8280b4bf1febc889ecaea0b93c0c45c36f3716af7a3eef4b2f8e7b8294a55e648e67b3ef99a5bdeaa468
|
|
7
|
+
data.tar.gz: f81a05a9e3101dc48c20e3a98f562aa200563b40ca526937db3796c00f7257f1f19768cdc0779fcb758953426eb64fbd76d3d2cb50c26832f2108bd267eb2ad4
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.1] - 2026-03-09
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- JSON response parsing now works regardless of Torque's Content-Type header (fallback parser)
|
|
7
|
+
- Return RMA list returns the full response object instead of extracting only nested items
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Both `pre_advice.create` and `return_rma.list` now return typed response objects (`Objects::PreAdviceResponse`, `Objects::ReturnRmaResponse`) instead of generic `Base`
|
|
11
|
+
- Response objects provide snake_case accessors and `.raw` for the original response
|
|
12
|
+
|
|
3
13
|
## [0.1.0] - 2025-03-04
|
|
4
14
|
|
|
5
15
|
### Added
|
data/README.md
CHANGED
|
@@ -50,20 +50,29 @@ payload = [
|
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
response = client.pre_advice.create(payload)
|
|
53
|
+
# Returns a TorqueAPI::Objects::PreAdviceResponse
|
|
54
|
+
|
|
55
|
+
response.api_message # snake_case accessors
|
|
56
|
+
response.pre_advice_success_response
|
|
57
|
+
response.raw # Access original (frozen) response data
|
|
53
58
|
```
|
|
54
59
|
|
|
55
60
|
### Poll Return RMA items
|
|
56
61
|
|
|
57
62
|
```ruby
|
|
58
|
-
|
|
59
|
-
# Returns
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
puts
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
response = client.return_rma.list
|
|
64
|
+
# Returns a TorqueAPI::Objects::ReturnRmaResponse
|
|
65
|
+
|
|
66
|
+
response.api_message
|
|
67
|
+
response.return_response.each do |order|
|
|
68
|
+
puts order.orderid
|
|
69
|
+
order.returns.each do |item|
|
|
70
|
+
puts item.sku
|
|
71
|
+
puts item.sampling_type
|
|
72
|
+
puts item.condition
|
|
73
|
+
end
|
|
66
74
|
end
|
|
75
|
+
response.raw # Access original (frozen) response data
|
|
67
76
|
```
|
|
68
77
|
|
|
69
78
|
### Error handling
|
data/lib/torque_api/client.rb
CHANGED
|
@@ -29,7 +29,7 @@ module TorqueAPI
|
|
|
29
29
|
conn.headers["Accept"] = "application/json"
|
|
30
30
|
client_defaults.each { |key, value| conn.headers[key.to_s] = value.to_s }
|
|
31
31
|
conn.request :json
|
|
32
|
-
conn.response :json, content_type:
|
|
32
|
+
conn.response :json, content_type: /\bjson/
|
|
33
33
|
conn.adapter adapter
|
|
34
34
|
end
|
|
35
35
|
end
|
data/lib/torque_api/resource.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
1
3
|
module TorqueAPI
|
|
2
4
|
class Resource
|
|
3
5
|
attr_reader :client
|
|
@@ -21,13 +23,21 @@ module TorqueAPI
|
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def handle_response(response)
|
|
24
|
-
|
|
26
|
+
body = parse_body(response.body)
|
|
27
|
+
return body if response.status.between?(200, 299)
|
|
25
28
|
|
|
26
29
|
error_class, prefix = error_mapping(response.status)
|
|
27
|
-
message = "#{prefix} (HTTP #{response.status}): #{extract_error_message(
|
|
30
|
+
message = "#{prefix} (HTTP #{response.status}): #{extract_error_message(body)}"
|
|
28
31
|
raise error_class.new(message, response: response, status_code: response.status)
|
|
29
32
|
end
|
|
30
33
|
|
|
34
|
+
def parse_body(body)
|
|
35
|
+
return body unless body.is_a?(String)
|
|
36
|
+
JSON.parse(body)
|
|
37
|
+
rescue JSON::ParserError
|
|
38
|
+
body
|
|
39
|
+
end
|
|
40
|
+
|
|
31
41
|
def error_mapping(status)
|
|
32
42
|
case status
|
|
33
43
|
when 400 then [ValidationError, "Bad request"]
|
data/lib/torque_api/version.rb
CHANGED
data/lib/torque_api.rb
CHANGED
|
@@ -15,6 +15,7 @@ module TorqueAPI
|
|
|
15
15
|
autoload :ReturnRmaResource, "torque_api/resources/return_rma_resource"
|
|
16
16
|
|
|
17
17
|
module Objects
|
|
18
|
-
autoload :
|
|
18
|
+
autoload :PreAdviceResponse, "torque_api/objects/pre_advice_response"
|
|
19
|
+
autoload :ReturnRmaResponse, "torque_api/objects/return_rma_response"
|
|
19
20
|
end
|
|
20
21
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: torque_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- PostCo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-03-
|
|
11
|
+
date: 2026-03-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '7.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rspec
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -109,7 +123,8 @@ files:
|
|
|
109
123
|
- lib/torque_api/client.rb
|
|
110
124
|
- lib/torque_api/errors.rb
|
|
111
125
|
- lib/torque_api/object.rb
|
|
112
|
-
- lib/torque_api/objects/
|
|
126
|
+
- lib/torque_api/objects/pre_advice_response.rb
|
|
127
|
+
- lib/torque_api/objects/return_rma_response.rb
|
|
113
128
|
- lib/torque_api/resource.rb
|
|
114
129
|
- lib/torque_api/resources/pre_advice_resource.rb
|
|
115
130
|
- lib/torque_api/resources/return_rma_resource.rb
|