fulfil_api 0.1.0 → 0.1.2

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: 2a26b32a0feab8bd7e697b27db519ac3945fefcd00159aa714742c40ac5abffe
4
- data.tar.gz: e8e5c494d57360d1cacbbea096c6c4cac3d70d504d04f4478a5f5508db658a63
3
+ metadata.gz: 10fcad8a31843f9c7c15e2c0d7e9ed00331fbc665091f088f6fd7794fae7159a
4
+ data.tar.gz: 367ed1508c804dc8fffc4da5089683702ca18d35433c5d6ae8744a06fae7bde7
5
5
  SHA512:
6
- metadata.gz: 1d4b7f5ca1a4bc4e8449cc3b235fd9f3b467e7977d76feaa52fa11dac18a6a34ba1ab6b4a8280183e798e45f4ddfda00e0e2d27534ca467110a3cdec203adc49
7
- data.tar.gz: 63ce6d7793de383098af74f7ca3c81ef8730351d7483390f8256f2dcd5cecc5cb3385ff46e9046fe7ed51f62e66f183b3b4abbf7b11f92a8322abe1ef44eeec9
6
+ metadata.gz: 84f5db4b17bb3c6e0011f30dd5b9a8d9472199a49f2562ad1e2646540e0d08f1d89372e42fc3f4492731c6df52e4343cda4547b20dbdcafc48c388aa176780f1
7
+ data.tar.gz: fa251dcc692380fa34543b6ae0d82338cc09b9cadd5d2d8875d02a02ee6c49168017808607a7508996f61ab10dc1d389b5915c7269b24792997ba65113071c44
@@ -10,20 +10,17 @@ module FulfilApi
10
10
  # Sets the fulfillment status of the customer shipment on hold
11
11
  #
12
12
  # @param id_or_ids [String, Integer, Array[String], Array[Integer]] The ID(s) of the customer shipment(s) to hold.
13
- # @param note [String] A note to define the reason for holding. (Optional)
14
- # @param hold_reason [String] An hold reason ID. (Optional)
13
+ # @param note [String] A note to define the reason for holding.
15
14
  # @return [Boolean] Returns true if hold successfully.
16
15
  # @raise [FulfilApi::Error] If an error occurs during holding the customer shipment.
17
16
  #
18
17
  # @example Hold a customer shipment
19
- # FulfilApi::CustomerShipment.hold(123, note: "Double booking", hold_reason: hold_reason_id)
18
+ # FulfilApi::CustomerShipment.hold(123, note: "Double booking")
20
19
  #
21
20
  # @example Hold multipe customer shipments
22
- # FulfilApi::CustomerShipment.hold([123, 456], note: "Double booking", hold_reason: hold_reason_id)
23
- def hold!(id_or_ids, note: nil, hold_reason: nil)
24
- FulfilApi.client.put("/model/#{MODEL_NAME}/hold",
25
- body: [[*id_or_ids].flatten, { note: note, hold_reason: hold_reason }.compact_blank])
26
-
21
+ # FulfilApi::CustomerShipment.hold([123, 456], note: "Double booking")
22
+ def hold!(id_or_ids, note:)
23
+ FulfilApi.client.put("/model/#{MODEL_NAME}/hold", body: [[*id_or_ids].flatten, note])
27
24
  true
28
25
  end
29
26
 
@@ -40,25 +37,23 @@ module FulfilApi
40
37
  #
41
38
  # @example Unhold a customer shipment
42
39
  # FulfilApi::CustomerShipment.unhold([123, 456], note: "All clear")
43
- def unhold!(id_or_ids, note: nil)
44
- FulfilApi.client.put("/model/#{MODEL_NAME}/unhold", body: [[*id_or_ids].flatten, { note: note }.compact_blank])
45
-
40
+ def unhold!(id_or_ids, note:)
41
+ FulfilApi.client.put("/model/#{MODEL_NAME}/unhold", body: [[*id_or_ids].flatten, note])
46
42
  true
47
43
  end
48
44
  end
49
45
 
50
46
  # Sets the current customer shipment on hold, rescuing any errors that occur and handling them based on error type.
51
47
  #
52
- # @param note [String] A note to define the reason for holding. (Optional)
53
- # @param hold_reason [String] An hold reason ID. (Optional)
48
+ # @param note [String] A note to define the reason for holding.
54
49
  # @return [Boolean] Returns true if hold successfully, otherwise false.
55
50
  #
56
51
  # @example Holds a customer_shipment
57
- # customer_shipment.hold(note: "Double booking", hold_reason: hold_reason_id)
58
- def hold(note: nil, hold_reason: nil)
59
- self.class.hold!(id, note: note, hold_reason: hold_reason)
52
+ # customer_shipment.hold("Holding the shipment for 30 minutes to allow edits to the order")
53
+ def hold(note)
54
+ self.class.hold!(id, note: note)
60
55
  rescue FulfilApi::Error => e
61
- handle_error(e)
56
+ handle_exception(e)
62
57
  false
63
58
  end
64
59
 
@@ -68,18 +63,12 @@ module FulfilApi
68
63
  # @return [Boolean] Returns true if unhold successfully, otherwise false.
69
64
  #
70
65
  # @example Unholds a customer_shipment
71
- # customer_shipment.unhold(note: "Double booking")
72
- def unhold(note: nil)
66
+ # customer_shipment.unhold("Ship out these items to the customer")
67
+ def unhold(note)
73
68
  self.class.unhold!(id, note: note)
74
69
  rescue FulfilApi::Error => e
75
- handle_error(e)
70
+ handle_exception(e)
76
71
  false
77
72
  end
78
-
79
- private
80
-
81
- def handle_error(err)
82
- errors.add(code: err.details[:response_status], type: :system, message: err.details[:response_body])
83
- end
84
73
  end
85
74
  end
@@ -52,14 +52,7 @@ module FulfilApi
52
52
  def save
53
53
  save!
54
54
  rescue FulfilApi::Error => e
55
- case (error = JSON.parse(e.details[:response_body]).deep_symbolize_keys!)
56
- in { type: "UserError" }
57
- errors.add(code: error[:code], type: :user, message: error[:message])
58
- in { code: Integer, name: String, description: String }
59
- errors.add(code: error[:code], type: :authorization, message: error[:description])
60
- end
61
-
62
- self
55
+ handle_exception(e)
63
56
  end
64
57
 
65
58
  # Saves the current resource, raising an error if it cannot be saved.
@@ -67,7 +67,7 @@ module FulfilApi
67
67
  # @return [FulfilApi::Resource::Relation] A new {Relation} instance with the conditions applied.
68
68
  def where(conditions)
69
69
  clone.tap do |relation|
70
- relation.conditions << conditions.flatten
70
+ relation.conditions << conditions
71
71
  relation.conditions.uniq!
72
72
  end
73
73
  end
@@ -72,5 +72,18 @@ module FulfilApi
72
72
  private
73
73
 
74
74
  attr_reader :model_name
75
+
76
+ def handle_exception(exception) # rubocop:disable Metrics/AbcSize
77
+ case (error = JSON.parse(exception.details[:response_body]).deep_symbolize_keys!)
78
+ in { type: "UserError" }
79
+ errors.add(code: error[:code], type: :user, message: error[:message])
80
+ in { code: Integer, name: String, description: String }
81
+ errors.add(code: error[:code], type: :authorization, message: error[:description])
82
+ else
83
+ errors.add(code: exception.details[:response_status], type: :system, message: exception.details[:response_body])
84
+ end
85
+
86
+ self
87
+ end
75
88
  end
76
89
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FulfilApi
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fulfil_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Vermaas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-17 00:00:00.000000000 Z
11
+ date: 2024-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport