mintsoft 0.1.8 → 0.1.10
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/mintsoft/errors.rb +0 -4
- data/lib/mintsoft/resources/base_resource.rb +0 -3
- data/lib/mintsoft/resources/orders.rb +22 -0
- data/lib/mintsoft/resources/returns.rb +6 -2
- data/lib/mintsoft/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ccd627b64addcd5ce4600e1df832ee931f1e98ff686ab706760cfdbc02f654f
|
4
|
+
data.tar.gz: 130cc96ccd064f08341c96b6ede9f06b5f86278d6dd0f3d2cccb8cbc36fb4a57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3597d97e005cf9ff18df541a96d8a3dd3348847f54fbf111b3999cebd1c7d77aea4df83d7ccfd9f5942278c0960a7267eeb79dd26f9d3e4dbad6414b4fb42360
|
7
|
+
data.tar.gz: bb3384d9dc29b08531761d88107695d3b8a79591e23a2d00ef5fa8d06f58597559344cf1689a4b6c4561a647c40d15e3c86524adb7bc0b0ab5beecd970b46d83
|
data/lib/mintsoft/errors.rb
CHANGED
@@ -15,13 +15,9 @@ module Mintsoft
|
|
15
15
|
# General API-related errors
|
16
16
|
class APIError < Error; end
|
17
17
|
|
18
|
-
|
19
18
|
# Authentication and authorization errors
|
20
19
|
class AuthenticationError < APIError; end
|
21
20
|
|
22
|
-
# Resource not found errors
|
23
|
-
class NotFoundError < APIError; end
|
24
|
-
|
25
21
|
# Request validation errors
|
26
22
|
class ValidationError < APIError; end
|
27
23
|
end
|
@@ -36,7 +36,6 @@ module Mintsoft
|
|
36
36
|
error_class = case response.status
|
37
37
|
when 400 then ValidationError
|
38
38
|
when 401 then AuthenticationError
|
39
|
-
when 404 then NotFoundError
|
40
39
|
else APIError
|
41
40
|
end
|
42
41
|
|
@@ -50,8 +49,6 @@ module Mintsoft
|
|
50
49
|
"Invalid or expired token"
|
51
50
|
when 400
|
52
51
|
"Invalid request data: #{error_message}"
|
53
|
-
when 404
|
54
|
-
"Resource not found"
|
55
52
|
else
|
56
53
|
"API error: #{status} - #{error_message}"
|
57
54
|
end
|
@@ -15,17 +15,39 @@ module Mintsoft
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
def retrieve(id)
|
19
|
+
validate_id!(id)
|
20
|
+
response = get_request("/api/Order/#{id}")
|
21
|
+
|
22
|
+
if response.status == 404
|
23
|
+
nil # Return nil for not found orders
|
24
|
+
else
|
25
|
+
response_data = handle_response(response)
|
26
|
+
parse_order(response_data)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
18
30
|
private
|
19
31
|
|
20
32
|
def validate_order_number!(order_number)
|
21
33
|
raise ValidationError, "Order number required" if order_number.nil? || order_number.empty?
|
22
34
|
end
|
23
35
|
|
36
|
+
def validate_id!(id)
|
37
|
+
raise ValidationError, "ID must be present" if id.nil? || (id.respond_to?(:empty?) && id.empty?)
|
38
|
+
end
|
39
|
+
|
24
40
|
def parse_orders(data)
|
25
41
|
return [] unless data.is_a?(Array)
|
26
42
|
|
27
43
|
data.map { |order_data| Objects::Order.new(order_data) }
|
28
44
|
end
|
45
|
+
|
46
|
+
def parse_order(data)
|
47
|
+
return nil unless data.is_a?(Hash)
|
48
|
+
|
49
|
+
Objects::Order.new(data)
|
50
|
+
end
|
29
51
|
end
|
30
52
|
end
|
31
53
|
end
|
@@ -35,9 +35,13 @@ module Mintsoft
|
|
35
35
|
validate_return_id!(return_id)
|
36
36
|
|
37
37
|
response = get_request("/api/Return/#{return_id}")
|
38
|
-
response_data = handle_response(response)
|
39
38
|
|
40
|
-
|
39
|
+
if response.status == 404
|
40
|
+
nil # Return nil for not found returns
|
41
|
+
else
|
42
|
+
response_data = handle_response(response)
|
43
|
+
Objects::Return.new(response_data)
|
44
|
+
end
|
41
45
|
end
|
42
46
|
|
43
47
|
private
|
data/lib/mintsoft/version.rb
CHANGED