dhl_ecommerce_api 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb0971157608740682c486964b16f74e7c7cb98884f2be276daee0de8e09def8
4
- data.tar.gz: c28f96ead90411021e8ad1b5a70a5ad9d2365a1cc016bf652dfb773461045db4
3
+ metadata.gz: 313e4f0218fc7c15423ff488ebd28927d61f253235e8baf70ea95dacf19dfe0c
4
+ data.tar.gz: 4f9ccb99bad33a08025c15d6d442e86dbbf433e2cd9d19362ab9fd1ee825b362
5
5
  SHA512:
6
- metadata.gz: 7f0cabaaed64860f138759d4432ca14bd93090b88c89c70e32ad92edfd24da4b2be41340cb17f9d0d0442d809c68b66602d433e12c50a2eb20b8aa77032fccfd
7
- data.tar.gz: 8d0c7c7701040ef9b28c51d25d2707f620b32b8e6072b0483ab7c7561e08aace47452a4e3dd2200c96e5098d65f0336f9b59851465aecf7bdf993cf438e765fc
6
+ metadata.gz: f6db6ce2275c4fbf285a9845ac69cd653bc9e1a642872612adb1c74b1d69dcb7c9ab6e63a1305b28516bacd7f272bcda45cdbfd270f7fff2a77286a7aecce998
7
+ data.tar.gz: 93ed8643180a3d55b0cc7573c834ecc6d6c3b73d38418c56a88a8aa2e3bbe9d32debda883e59711df33d136c5be307560a0809dd8231fcbab88890247af6f8ef
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dhl_ecommerce_api (0.1.9)
4
+ dhl_ecommerce_api (0.1.7)
5
5
  activeresource (>= 4.1.0, < 6.0.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.1.5)
11
- activesupport (= 6.1.5)
10
+ activemodel (6.1.4.6)
11
+ activesupport (= 6.1.4.6)
12
12
  activemodel-serializers-xml (1.0.2)
13
13
  activemodel (> 5.x)
14
14
  activesupport (> 5.x)
@@ -17,7 +17,7 @@ GEM
17
17
  activemodel (>= 5.0, < 7)
18
18
  activemodel-serializers-xml (~> 1.0)
19
19
  activesupport (>= 5.0, < 7)
20
- activesupport (6.1.5)
20
+ activesupport (6.1.4.6)
21
21
  concurrent-ruby (~> 1.0, >= 1.0.2)
22
22
  i18n (>= 1.6, < 2)
23
23
  minitest (>= 5.1)
@@ -64,7 +64,7 @@ GEM
64
64
  nenv (~> 0.1)
65
65
  shellany (~> 0.0)
66
66
  parallel (1.21.0)
67
- parser (3.1.1.0)
67
+ parser (3.1.0.0)
68
68
  ast (~> 2.4.1)
69
69
  pry (0.14.1)
70
70
  coderay (~> 1.1)
@@ -90,21 +90,25 @@ GEM
90
90
  diff-lcs (>= 1.2.0, < 2.0)
91
91
  rspec-support (~> 3.11.0)
92
92
  rspec-support (3.11.0)
93
- rubocop (1.26.0)
93
+ rubocop (1.25.1)
94
94
  parallel (~> 1.10)
95
95
  parser (>= 3.1.0.0)
96
96
  rainbow (>= 2.2.2, < 4.0)
97
97
  regexp_parser (>= 1.8, < 3.0)
98
98
  rexml
99
- rubocop-ast (>= 1.16.0, < 2.0)
99
+ rubocop-ast (>= 1.15.1, < 2.0)
100
100
  ruby-progressbar (~> 1.7)
101
101
  unicode-display_width (>= 1.4.0, < 3.0)
102
- rubocop-ast (1.16.0)
103
- parser (>= 3.1.1.0)
102
+ rubocop-ast (1.15.2)
103
+ parser (>= 3.0.1.1)
104
+ rubocop-performance (1.13.2)
105
+ rubocop (>= 1.7.0, < 2.0)
106
+ rubocop-ast (>= 0.4.0)
104
107
  ruby-progressbar (1.11.0)
105
108
  shellany (0.0.1)
106
- standard (0.0.36)
107
- rubocop (>= 0.63)
109
+ standard (1.7.2)
110
+ rubocop (= 1.25.1)
111
+ rubocop-performance (= 1.13.2)
108
112
  thor (1.2.1)
109
113
  tzinfo (2.0.4)
110
114
  concurrent-ruby (~> 1.0)
@@ -116,7 +120,7 @@ GEM
116
120
  zeitwerk (2.5.4)
117
121
 
118
122
  PLATFORMS
119
- -darwin-21
123
+ arm64-darwin-21
120
124
 
121
125
  DEPENDENCIES
122
126
  dhl_ecommerce_api!
@@ -5,11 +5,18 @@ module DHLEcommerceAPI
5
5
  self.include_format_in_path = false
6
6
  self.connection_class = Connection
7
7
 
8
+ # by default convert to lowerCamelcase before sending request
9
+ def to_json(options = {})
10
+ attributes.as_json
11
+ .deep_transform_keys { |k| k.to_s.camelize(:lower) }
12
+ .to_json(include_root_in_json ? { root: self.class.element_name }.merge(options) : options)
13
+ end
14
+
8
15
  # by default convert to snake_case when initializing
9
16
  def load(attributes, remove_root = false, persisted = false)
10
17
  # convert loaded attributes to underscore, then symbolize
11
18
  attributes.deep_transform_keys! { |k| k.to_s.underscore.to_sym }
12
-
19
+
13
20
  # merge default_attrs(symbols) with incoming attributes
14
21
  if defined?(self.class::DEFAULT_ATTRIBUTES)
15
22
  attributes = self.class::DEFAULT_ATTRIBUTES.merge(attributes)
@@ -36,7 +43,7 @@ module DHLEcommerceAPI
36
43
  # We have to write our own method to format the request data
37
44
  def formatted_request_data(request_data)
38
45
  request_data.as_json
39
- .deep_transform_keys {|key| custom_key_format(key)}
46
+ .deep_transform_keys {|key| custom_key_format(key)}.to_json
40
47
  end
41
48
 
42
49
  # custom keys that arent following lowerCamel convention
@@ -68,13 +75,5 @@ module DHLEcommerceAPI
68
75
  key.to_s.camelize(:lower)
69
76
  end
70
77
  end
71
-
72
- # catchall overwrite default to_json method for anything that inherits from Base.
73
- # Not used by anything so far.
74
- def to_json(options = {})
75
- attributes.as_json
76
- .deep_transform_keys { |k| custom_key_format(k) }
77
- .to_json(include_root_in_json ? { root: self.class.element_name }.merge(options) : options)
78
- end
79
78
  end
80
79
  end
@@ -0,0 +1,6 @@
1
+ module DHLEcommerceAPI
2
+ # Component item
3
+ class Shipment::ShipmentItem::ConsigneeAddress < Base
4
+ self.element_name = ""
5
+ end
6
+ end
@@ -20,7 +20,20 @@ module DHLEcommerceAPI
20
20
  currency: "MYR",
21
21
  remarks: nil,
22
22
  is_routing_info_required: "Y",
23
- consignee_address: {}
23
+ consignee_address: {
24
+ company_name: "",
25
+ name: "",
26
+ address1: "",
27
+ address2: nil,
28
+ address3: nil,
29
+ city: "",
30
+ state: "",
31
+ district: nil,
32
+ country: "MY",
33
+ post_code: "",
34
+ phone: "",
35
+ email: nil
36
+ }
24
37
  }
25
38
 
26
39
  def initialize(attributes = {}, persisted = false)
@@ -6,6 +6,8 @@ module DHLEcommerceAPI
6
6
  self.prefix = "/rest/v3/Shipment"
7
7
  self.element_name = ""
8
8
 
9
+ validates_presence_of :handover_method
10
+
9
11
  def create
10
12
  run_callbacks :create do
11
13
  data = formatted_request_data(manifest_request)
@@ -44,7 +46,7 @@ module DHLEcommerceAPI
44
46
  {
45
47
  manifest_request: {
46
48
  hdr: headers,
47
- bd: attributes_with_account_ids
49
+ bd: attributes_with_account_ids.deep_transform_keys {|key| key.to_s.underscore.to_sym }
48
50
  }
49
51
  }
50
52
  end
@@ -60,126 +62,9 @@ module DHLEcommerceAPI
60
62
  end
61
63
  end
62
64
 
63
- =begin
64
65
  # Examples:
65
- shipment_with_pickup_params = {
66
- "handoverMethod": 2,
67
- "shipperAddress": {
68
- "companyName": "Pickup From Company",
69
- "name": "Pickup From Name",
70
- "address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
71
- "address2": "",
72
- "address3": "",
73
- "city": " Kuala Lumpur",
74
- "state": " Kuala Lumpur",
75
- "postCode": "55100",
76
- "country": "MY",
77
- "phone": "0123456789",
78
- "email": "hello@example.com"
79
- },
80
- "pickupDateTime": DateTime.now.to_s,
81
- "pickupAddress": {
82
- "companyName": "Pickup From Company",
83
- "name": "Pickup From Name",
84
- "address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
85
- "address2": "",
86
- "address3": "",
87
- "city": " Kuala Lumpur",
88
- "state": " Kuala Lumpur",
89
- "postCode": "55100",
90
- "country": "MY",
91
- "phone": "0123456789",
92
- "email": "hello@example.com"
93
- },
94
- "shipmentItems": [
95
- {
96
- "shipmentID": "MYPTC0085",
97
- "packageDesc": "Laptop Sleeve",
98
- "totalWeight": 500,
99
- "totalWeightUOM": "G",
100
- "dimensionUOM": "CM",
101
- "height": nil,
102
- "length": nil,
103
- "width": nil,
104
- "productCode": "PDO",
105
- "codValue": nil,
106
- "insuranceValue": nil,
107
- "totalValue": 300,
108
- "currency": "MYR",
109
- "remarks": nil,
110
- "isRoutingInfoRequired": "Y",
111
- "consigneeAddress": {
112
- "companyName": "Sleeve Company",
113
- "name": "Sleeve Sdn Bhd",
114
- "address1": "No. 3, Jalan Bangsar, Kampung Haji Abdullah Hukum",
115
- "address2": nil,
116
- "address3": nil,
117
- "city": "Kuala Lumpur",
118
- "state": "Kuala Lumpur",
119
- "district": nil,
120
- "country": "MY",
121
- "postCode": "59200",
122
- "phone": "0169822645",
123
- "email": nil
124
- }
125
- },
126
- ]
127
- }.deep_transform_keys {|key| key.to_s.underscore }
128
-
129
- shipment_with_dropoff_params = {
130
- "handover_method" => 1,
131
- "shipment_items" => [
132
- {
133
- "consignee_address" => {
134
- "company_name" => "Test",
135
- "name" => "Test1",
136
- "address1" => "NO 3 JALAN PPU 1",
137
- "address2" => "TAMAN PERINDUSTRIAN PUCHONG UTAMA",
138
- "address3" => nil,
139
- "city" => "PUCHONG",
140
- "state" => "SELANGOR",
141
- "district" => nil,
142
- "country" => "MY",
143
- "post_code" => "57000",
144
- "phone" => "0123456798",
145
- "email" => nil
146
- },
147
- "shipment_id" => "MYPTC000102",
148
- "package_desc" => "Bread Materials",
149
- "total_weight" => 2000,
150
- "total_weight_uom" => "G",
151
- "dimension_uom" => "CM",
152
- "height" => nil,
153
- "length" => nil,
154
- "width" => nil,
155
- "product_code" => "PDO",
156
- "cod_value" => nil,
157
- "insurance_value" => nil,
158
- "total_value" => 300,
159
- "currency" => "MYR",
160
- "remarks" => nil,
161
- "is_routing_info_required" => "Y"
162
- }
163
- ],
164
- }
165
- =end
166
-
167
-
168
66
  # shipment_with_pickup_params = {
169
67
  # "handoverMethod": 2,
170
- # "shipperAddress": {
171
- # "companyName": "Pickup From Company",
172
- # "name": "Pickup From Name",
173
- # "address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
174
- # "address2": "",
175
- # "address3": "",
176
- # "city": " Kuala Lumpur",
177
- # "state": " Kuala Lumpur",
178
- # "postCode": "55100",
179
- # "country": "MY",
180
- # "phone": "0123456789",
181
- # "email": "hello@example.com"
182
- # },
183
68
  # "pickupDateTime": DateTime.now.to_s,
184
69
  # "pickupAddress": {
185
70
  # "companyName": "Pickup From Company",
@@ -196,7 +81,7 @@ shipment_with_dropoff_params = {
196
81
  # },
197
82
  # "shipmentItems": [
198
83
  # {
199
- # "shipmentID": "MYPTC0085",
84
+ # "shipmentID": "MYPTC0083",
200
85
  # "packageDesc": "Laptop Sleeve",
201
86
  # "totalWeight": 500,
202
87
  # "totalWeightUOM": "G",
@@ -227,4 +112,41 @@ shipment_with_dropoff_params = {
227
112
  # }
228
113
  # },
229
114
  # ]
230
- # }
115
+ # }
116
+
117
+ # shipment_with_dropoff_params = {
118
+ # "handover_method" => 1,
119
+ # "shipment_items" => [
120
+ # {
121
+ # "consignee_address" => {
122
+ # "company_name" => "Test",
123
+ # "name" => "Test1",
124
+ # "address1" => "NO 3 JALAN PPU 1",
125
+ # "address2" => "TAMAN PERINDUSTRIAN PUCHONG UTAMA",
126
+ # "address3" => nil,
127
+ # "city" => "PUCHONG",
128
+ # "state" => "SELANGOR",
129
+ # "district" => nil,
130
+ # "country" => "MY",
131
+ # "post_code" => "57000",
132
+ # "phone" => "0123456798",
133
+ # "email" => nil
134
+ # },
135
+ # "shipment_id" => "MYPTC000102",
136
+ # "package_desc" => "Bread Materials",
137
+ # "total_weight" => 2000,
138
+ # "total_weight_uom" => "G",
139
+ # "dimension_uom" => "CM",
140
+ # "height" => nil,
141
+ # "length" => nil,
142
+ # "width" => nil,
143
+ # "product_code" => "PDO",
144
+ # "cod_value" => nil,
145
+ # "insurance_value" => nil,
146
+ # "total_value" => 300,
147
+ # "currency" => "MYR",
148
+ # "remarks" => nil,
149
+ # "is_routing_info_required" => "Y"
150
+ # }
151
+ # ],
152
+ # }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DHLEcommerceAPI
4
- VERSION = "0.1.11"
4
+ VERSION = "0.1.12"
5
5
  end
@@ -12,9 +12,12 @@ module DHLEcommerceAPI
12
12
  require "dhl_ecommerce_api/resources/authentication"
13
13
 
14
14
  require "dhl_ecommerce_api/resources/shipment"
15
+ require "dhl_ecommerce_api/resources/shipment_with_pickup"
16
+ require "dhl_ecommerce_api/resources/shipment_with_dropoff"
17
+
15
18
  require "dhl_ecommerce_api/resources/shipment/shipment_item"
16
- require "dhl_ecommerce_api/resources/shipment_test"
17
-
19
+ require "dhl_ecommerce_api/resources/shipment/shipment_item/consignee_address"
20
+
18
21
  require "dhl_ecommerce_api/resources/pickup"
19
22
 
20
23
  require "dhl_ecommerce_api/resources/tracking"
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dhl_ecommerce_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Er Whey
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
11
  date: 2022-03-16 00:00:00.000000000 Z
@@ -123,7 +123,6 @@ extra_rdoc_files: []
123
123
  files:
124
124
  - ".rspec"
125
125
  - ".rubocop.yml"
126
- - ".tool-versions"
127
126
  - CHANGELOG.md
128
127
  - CODE_OF_CONDUCT.md
129
128
  - Gemfile
@@ -144,7 +143,7 @@ files:
144
143
  - lib/dhl_ecommerce_api/resources/pickup/handover_item.rb
145
144
  - lib/dhl_ecommerce_api/resources/shipment.rb
146
145
  - lib/dhl_ecommerce_api/resources/shipment/shipment_item.rb
147
- - lib/dhl_ecommerce_api/resources/shipment_test.rb
146
+ - lib/dhl_ecommerce_api/resources/shipment/shipment_item/consignee_address.rb
148
147
  - lib/dhl_ecommerce_api/resources/shipment_with_dropoff.rb
149
148
  - lib/dhl_ecommerce_api/resources/shipment_with_pickup.rb
150
149
  - lib/dhl_ecommerce_api/resources/tracking.rb
@@ -158,7 +157,7 @@ metadata:
158
157
  homepage_uri: https://github.com/PostCo/dhl_ecommerce_api
159
158
  source_code_uri: https://github.com/PostCo/dhl_ecommerce_api
160
159
  changelog_uri: https://github.com/PostCo/dhl_ecommerce_api/releases
161
- post_install_message:
160
+ post_install_message:
162
161
  rdoc_options: []
163
162
  require_paths:
164
163
  - lib
@@ -173,9 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
172
  - !ruby/object:Gem::Version
174
173
  version: '0'
175
174
  requirements: []
176
- rubyforge_project:
177
- rubygems_version: 2.7.6.2
178
- signing_key:
175
+ rubygems_version: 3.3.3
176
+ signing_key:
179
177
  specification_version: 4
180
178
  summary: Unofficial Ruby object based DHL eCommerce API wrapper.
181
179
  test_files: []
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 2.5.8
@@ -1,157 +0,0 @@
1
- module DHLEcommerceAPI
2
- class ShipmentTest < ActiveResource::Base
3
- self.include_format_in_path = false
4
- self.site = "https://sandbox.dhlecommerce.asia"
5
- self.prefix = "/rest/v3/Shipment"
6
- self.element_name = ""
7
-
8
- def to_json(options = {})
9
- attributes.as_json
10
- .deep_transform_keys { |k| custom_key_format(k) }
11
- .to_json(include_root_in_json ? { root: self.class.element_name }.merge(options) : options)
12
- end
13
-
14
- def custom_key_format(key)
15
- case key
16
- when "shipment_id"
17
- "shipmentID"
18
- when "total_weight_uom"
19
- "totalWeightUOM"
20
- when "dimension_uom"
21
- "dimensionUOM"
22
- when "order_url"
23
- "orderURL"
24
- when "location_id"
25
- "locationID"
26
- when "piece_id"
27
- "pieceID"
28
- when "weight_uom"
29
- "weightUOM"
30
- when "marketplace_url"
31
- "marketplaceURL"
32
- when "handover_id"
33
- "handoverID"
34
- when "email_id"
35
- "emailID"
36
- when "e_pod_required"
37
- "ePODRequired"
38
- else
39
- key.to_s.camelize(:lower)
40
- end
41
- end
42
- end
43
- end
44
-
45
- =begin
46
- def format_data(data)
47
- data.as_json.deep_transform_keys {|key| custom_key_format(key)}
48
- end
49
-
50
- def custom_key_format(key)
51
- case key
52
- when "shipment_id"
53
- "shipmentID"
54
- when "total_weight_uom"
55
- "totalWeightUOM"
56
- when "dimension_uom"
57
- "dimensionUOM"
58
- when "order_url"
59
- "orderURL"
60
- when "location_id"
61
- "locationID"
62
- when "piece_id"
63
- "pieceID"
64
- when "weight_uom"
65
- "weightUOM"
66
- when "marketplace_url"
67
- "marketplaceURL"
68
- when "handover_id"
69
- "handoverID"
70
- when "email_id"
71
- "emailID"
72
- when "e_pod_required"
73
- "ePODRequired"
74
- else
75
- key.to_s.camelize(:lower)
76
- end
77
- end
78
-
79
- params = {
80
- "manifestRequest": {
81
- "hdr": {
82
- "message_type": "SHIPMENT",
83
- "message_date_time": DateTime.now.to_s,
84
- "access_token": DHLEcommerceAPI::Authentication.get_token,
85
- "message_version": "1.0"
86
- },
87
- "bd": {
88
- "pickup_account_id": DHLEcommerceAPI.config.pickup_account_id,
89
- "sold_to_account_id": DHLEcommerceAPI.config.sold_to_account_id,
90
- "handoverMethod": 2,
91
- "shipperAddress": {
92
- "companyName": "Pickup From Company",
93
- "name": "Pickup From Name",
94
- "address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
95
- "address2": "",
96
- "address3": "",
97
- "city": " Kuala Lumpur",
98
- "state": " Kuala Lumpur",
99
- "postCode": "55100",
100
- "country": "MY",
101
- "phone": "0123456789",
102
- "email": "hello@example.com"
103
- },
104
- "pickupDateTime": DateTime.now.to_s,
105
- "pickupAddress": {
106
- "companyName": "Pickup From Company",
107
- "name": "Pickup From Name",
108
- "address1": "Holistic Pharmacy PostCo, 55, Jalan Landak",
109
- "address2": "",
110
- "address3": "",
111
- "city": " Kuala Lumpur",
112
- "state": " Kuala Lumpur",
113
- "postCode": "55100",
114
- "country": "MY",
115
- "phone": "0123456789",
116
- "email": "hello@example.com"
117
- },
118
- "shipmentItems": [
119
- {
120
- "shipmentID": "MYPTC0085",
121
- "packageDesc": "Laptop Sleeve",
122
- "totalWeight": 500,
123
- "totalWeightUOM": "G",
124
- "dimensionUOM": "CM",
125
- "height": nil,
126
- "length": nil,
127
- "width": nil,
128
- "productCode": "PDO",
129
- "codValue": nil,
130
- "insuranceValue": nil,
131
- "totalValue": 300,
132
- "currency": "MYR",
133
- "remarks": nil,
134
- "isRoutingInfoRequired": "Y",
135
- "consigneeAddress": {
136
- "companyName": "Sleeve Company",
137
- "name": "Sleeve Sdn Bhd",
138
- "address1": "No. 3, Jalan Bangsar, Kampung Haji Abdullah Hukum",
139
- "address2": nil,
140
- "address3": nil,
141
- "city": "Kuala Lumpur",
142
- "state": "Kuala Lumpur",
143
- "district": nil,
144
- "country": "MY",
145
- "postCode": "59200",
146
- "phone": "0169822645",
147
- "email": nil
148
- }
149
- },
150
- ]
151
- }
152
- }
153
- }.deep_transform_keys {|key| key.to_s.underscore }
154
-
155
- formatted_data = format_data(params)
156
-
157
- =end