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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a216d635ef659ea2f23c07ba8ce670693edc8a6b8358048eb921b2c6a1739af0
4
- data.tar.gz: c80a94e86e03fe9cc7829ba2e077c177d61de5c42bebf5f2899af13f27f49520
3
+ metadata.gz: 22a5374be86c7a02fd3c7f2db69a57865b23de47f3484dd31786733b1db3c86c
4
+ data.tar.gz: c7da24784777edf7b2bedd777d154e67df1d8b8d1c094ac932f67983cfc0bba1
5
5
  SHA512:
6
- metadata.gz: 00b9dafb12806bf974976e9194269d003c426a91292d0c41923fcaea6ff92545726ecf9c6ebc4650fe5f7dda91bb883d27ca26aa0e12cb1723548abc3e37ec8a
7
- data.tar.gz: 6637619950bcecee7e8164d3351bff9b3eddc24505a3569fdbd403a4b2cb82d36a9e0c69bb053667c73ed559b65c1174dade3117dc8bec7a8bac79db6fccb7c1
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
- items = client.return_rma.list
59
- # Returns an array of TorqueAPI::Objects::ReturnRma
60
-
61
- items.each do |item|
62
- puts item.orderid # snake_case accessors
63
- puts item.sku_id
64
- puts item.sampling_type
65
- puts item.raw # Access original (frozen) response data
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
@@ -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: "application/json"
32
+ conn.response :json, content_type: /\bjson/
33
33
  conn.adapter adapter
34
34
  end
35
35
  end
@@ -1,5 +1,5 @@
1
1
  module TorqueAPI
2
2
  module Objects
3
- class ReturnRma < Base; end
3
+ class PreAdviceResponse < Base; end
4
4
  end
5
5
  end
@@ -0,0 +1,5 @@
1
+ module TorqueAPI
2
+ module Objects
3
+ class ReturnRmaResponse < Base; end
4
+ end
5
+ end
@@ -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
- return response.body if response.status.between?(200, 299)
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(response.body)}"
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"]
@@ -1,7 +1,8 @@
1
1
  module TorqueAPI
2
2
  class PreAdviceResource < Resource
3
3
  def create(payload)
4
- post_request("preAdvice", body: payload)
4
+ data = post_request("preAdvice", body: payload)
5
+ Objects::PreAdviceResponse.new(data)
5
6
  end
6
7
  end
7
8
  end
@@ -1,8 +1,8 @@
1
1
  module TorqueAPI
2
2
  class ReturnRmaResource < Resource
3
3
  def list
4
- data = get_request("returnRma")
5
- Array(data).map { |item| Objects::ReturnRma.new(item) }
4
+ data = get_request("returnRma/100")
5
+ Objects::ReturnRmaResponse.new(data)
6
6
  end
7
7
  end
8
8
  end
@@ -1,3 +1,3 @@
1
1
  module TorqueAPI
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
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 :ReturnRma, "torque_api/objects/return_rma"
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.0
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-04 00:00:00.000000000 Z
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/return_rma.rb
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