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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2794a34f86aaf4b8893894ad55ee7540b5d2aed7615696b3a4182d1dcdc46ab
4
- data.tar.gz: 3ccf116643c9649630adf9d236b3d265c123688f89872f1454771e5d2189bc5e
3
+ metadata.gz: 7ccd627b64addcd5ce4600e1df832ee931f1e98ff686ab706760cfdbc02f654f
4
+ data.tar.gz: 130cc96ccd064f08341c96b6ede9f06b5f86278d6dd0f3d2cccb8cbc36fb4a57
5
5
  SHA512:
6
- metadata.gz: 00f11f1b2b9dcf445d06f8a5545b9fc2bde79abfdb3f228a14cea0362856d5079fd22ed8befc8af22480bf0c2da83d807a1d9f240d8121ed15eb8589c62b81cd
7
- data.tar.gz: c588a47224828812dec6d1a7371d017159a401feaa31e04bd167160fa0939a583f786733954380f1010b38dbccc77c265fcb64d59068b20f6cd1f149be55b911
6
+ metadata.gz: 3597d97e005cf9ff18df541a96d8a3dd3348847f54fbf111b3999cebd1c7d77aea4df83d7ccfd9f5942278c0960a7267eeb79dd26f9d3e4dbad6414b4fb42360
7
+ data.tar.gz: bb3384d9dc29b08531761d88107695d3b8a79591e23a2d00ef5fa8d06f58597559344cf1689a4b6c4561a647c40d15e3c86524adb7bc0b0ab5beecd970b46d83
@@ -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
- Objects::Return.new(response_data)
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mintsoft
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.10"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mintsoft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Chong