smartsend-ruby 0.1.1 → 0.2.0
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 +5 -5
- data/Gemfile.lock +8 -2
- data/README.md +53 -86
- data/lib/smartsend/account.rb +4 -10
- data/lib/smartsend/address.rb +15 -11
- data/lib/smartsend/agent.rb +23 -7
- data/lib/smartsend/client.rb +33 -26
- data/lib/smartsend/parcel.rb +18 -17
- data/lib/smartsend/parcel_item.rb +20 -7
- data/lib/smartsend/receiver.rb +0 -3
- data/lib/smartsend/request_error.rb +13 -0
- data/lib/smartsend/sender.rb +0 -3
- data/lib/smartsend/services.rb +18 -0
- data/lib/smartsend/shipment.rb +56 -0
- data/lib/smartsend/version.rb +1 -1
- data/lib/smartsend.rb +11 -42
- data/test/test_shipment.rb +199 -0
- data/test/test_smartsend.rb +2 -6
- metadata +7 -17
- data/lib/smartsend/order.rb +0 -62
- data/lib/smartsend/orders.rb +0 -43
- data/lib/smartsend/service.rb +0 -17
- data/test/test_addresses.rb +0 -80
- data/test/test_client.rb +0 -9
- data/test/test_orders.rb +0 -64
- data/test/test_parcel_items.rb +0 -26
- data/test/test_parcels.rb +0 -42
- data/test/test_service.rb +0 -15
data/lib/smartsend.rb
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
module Smartsend
|
2
2
|
|
3
|
-
@@
|
4
|
-
@@email = nil
|
5
|
-
@@license = nil
|
6
|
-
@@cms_system = nil
|
7
|
-
@@cms_version = nil
|
8
|
-
@@test_mode = false
|
3
|
+
@@api_token = nil
|
9
4
|
|
10
5
|
def self.configure(args={})
|
11
6
|
args.each do |k, v|
|
@@ -14,62 +9,36 @@ module Smartsend
|
|
14
9
|
end
|
15
10
|
|
16
11
|
def self.account
|
17
|
-
Smartsend::Account.new(
|
12
|
+
Smartsend::Account.new(api_token: @@api_token)
|
18
13
|
end
|
19
14
|
|
20
|
-
def self.
|
21
|
-
@@
|
15
|
+
def self.api_token
|
16
|
+
@@api_token
|
22
17
|
end
|
23
18
|
|
24
|
-
|
25
|
-
@@email
|
26
|
-
end
|
27
|
-
|
28
|
-
def self.license
|
29
|
-
@@license
|
30
|
-
end
|
31
|
-
|
32
|
-
def self.cms_system
|
33
|
-
@@cms_system
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.cms_version
|
37
|
-
@@cms_version
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.app_version
|
41
|
-
Smartsend::VERSION
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.test_mode
|
45
|
-
@@test_mode
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.test?
|
49
|
-
test_mode
|
19
|
+
class MissingConfigError < StandardError
|
50
20
|
end
|
51
21
|
|
52
|
-
|
53
|
-
class TooManyOrdersError < StandardError
|
22
|
+
class AuthorizationError < StandardError
|
54
23
|
end
|
55
24
|
|
56
|
-
class
|
25
|
+
class UnknownError < StandardError
|
57
26
|
end
|
58
27
|
|
59
|
-
class
|
28
|
+
class NotFoundError < StandardError
|
60
29
|
end
|
61
30
|
|
62
31
|
end
|
63
32
|
|
64
|
-
require_relative 'smartsend/
|
65
|
-
require_relative 'smartsend/orders'
|
33
|
+
require_relative 'smartsend/shipment'
|
66
34
|
require_relative 'smartsend/address'
|
67
35
|
require_relative 'smartsend/receiver'
|
68
36
|
require_relative 'smartsend/sender'
|
69
37
|
require_relative 'smartsend/agent'
|
70
|
-
require_relative 'smartsend/
|
38
|
+
require_relative 'smartsend/services'
|
71
39
|
require_relative 'smartsend/parcel'
|
72
40
|
require_relative 'smartsend/parcel_item'
|
73
41
|
require_relative 'smartsend/client'
|
74
42
|
require_relative 'smartsend/account'
|
75
43
|
require_relative 'smartsend/version'
|
44
|
+
require_relative 'smartsend/request_error'
|
@@ -0,0 +1,199 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'smartsend'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
class ShipmentTest < Minitest::Test
|
6
|
+
|
7
|
+
def test_successful_label
|
8
|
+
Smartsend.configure(
|
9
|
+
api_token: 'test_token',
|
10
|
+
)
|
11
|
+
|
12
|
+
shipment = Smartsend::Shipment.new(
|
13
|
+
internal_id: "123123123", # your internal order id
|
14
|
+
internal_reference: "AC12345789", # your order number
|
15
|
+
shipping_carrier: "postnord", # postnord/gls/bring/dao
|
16
|
+
shipping_method: "agent",
|
17
|
+
shipping_date: Date.today.strftime('%Y-%m-%d'),
|
18
|
+
currency: "DKK"
|
19
|
+
)
|
20
|
+
|
21
|
+
shipment.services = Smartsend::Services.new(
|
22
|
+
email_notification: 'contact@smartsend.io'
|
23
|
+
)
|
24
|
+
|
25
|
+
# set the receiver of the shipment
|
26
|
+
shipment.receiver = Smartsend::Receiver.new(
|
27
|
+
internal_id: "123456", # your internal customer id
|
28
|
+
internal_reference: "123456",
|
29
|
+
company: "Smart Send",
|
30
|
+
name_line1: "Henrik Hansen",
|
31
|
+
name_line2: "C/O Vivian Hansen",
|
32
|
+
address_line1: "Willemoesgade 42",
|
33
|
+
address_line2: "3.th.",
|
34
|
+
postal_code: "2100",
|
35
|
+
city: "Copenhagen",
|
36
|
+
country: "DK",
|
37
|
+
sms: "12345678",
|
38
|
+
email: "contact@smartsend.io"
|
39
|
+
)
|
40
|
+
|
41
|
+
# optionally set the sender of the shipment
|
42
|
+
shipment.sender = Smartsend::Sender.new(
|
43
|
+
internal_id: "123456",
|
44
|
+
internal_reference: "123456",
|
45
|
+
company: "Smart Send",
|
46
|
+
name_line1: "Henrik Hansen",
|
47
|
+
name_line2: "C/O Vivian Hansen",
|
48
|
+
address_line1: "Willemoesgade 42",
|
49
|
+
address_line2: "3.th.",
|
50
|
+
postal_code: "2100",
|
51
|
+
city: "Copenhagen",
|
52
|
+
country: "DK",
|
53
|
+
sms: "12345678",
|
54
|
+
email: "contact@smartsend.io"
|
55
|
+
)
|
56
|
+
|
57
|
+
# # optionally ship to a droppoint by setting an agent
|
58
|
+
# shipment.agent = Smartsend::Agent.new(
|
59
|
+
# internal_id: "123456",
|
60
|
+
# internal_reference: "123457",
|
61
|
+
# agent_no: "2103", # droppoint id
|
62
|
+
# company: "Smart Send",
|
63
|
+
# name_line1: "Henrik Hansen",
|
64
|
+
# name_line2: "C/O Vivian Hansen",
|
65
|
+
# address_line1: "Willemoesgade 42",
|
66
|
+
# address_line2: "3.th.",
|
67
|
+
# postal_code: "2100",
|
68
|
+
# city: "Copenhagen",
|
69
|
+
# country: "DK"
|
70
|
+
# )
|
71
|
+
|
72
|
+
# add one or more parcels/fulfillments to the shipment
|
73
|
+
parcel = Smartsend::Parcel.new(
|
74
|
+
internal_id: "123456789", # your internal parcel id
|
75
|
+
internal_reference: "123456789",
|
76
|
+
weight: 1.25,
|
77
|
+
height: 21,
|
78
|
+
width: 27,
|
79
|
+
length: 35,
|
80
|
+
freetext1: "Brians birthday gift",
|
81
|
+
freetext2: "Don't open this before your birthday Brian",
|
82
|
+
freetext3: "We look forward to seeing you soon Brian",
|
83
|
+
)
|
84
|
+
|
85
|
+
# add items to the parcel
|
86
|
+
parcel_item = Smartsend::ParcelItem.new(
|
87
|
+
internal_id: "ABC123",
|
88
|
+
internal_reference: "ABC123",
|
89
|
+
sku: "ABC123",
|
90
|
+
name: "Product name",
|
91
|
+
quantity: 2,
|
92
|
+
unit_weight: 1.25
|
93
|
+
)
|
94
|
+
|
95
|
+
parcel.items << parcel_item
|
96
|
+
shipment.parcels << parcel
|
97
|
+
|
98
|
+
# send the shipment to Smartsend.io
|
99
|
+
shipment.save!
|
100
|
+
|
101
|
+
assert shipment.success?
|
102
|
+
assert shipment.label_url
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_invalid_request
|
106
|
+
Smartsend.configure(
|
107
|
+
api_token: 'test_token',
|
108
|
+
)
|
109
|
+
|
110
|
+
shipment = Smartsend::Shipment.new(
|
111
|
+
internal_id: "123123123", # your internal order id
|
112
|
+
internal_reference: "AC12345789", # your order number
|
113
|
+
# shipping_carrier: "postnord", # postnord/gls/bring/dao
|
114
|
+
# shipping_method: "agent",
|
115
|
+
shipping_date: Date.today.strftime('%Y-%m-%d'),
|
116
|
+
currency: 'invalid'
|
117
|
+
)
|
118
|
+
|
119
|
+
# set the receiver of the shipment
|
120
|
+
shipment.receiver = Smartsend::Receiver.new(
|
121
|
+
internal_id: "123456", # your internal customer id
|
122
|
+
internal_reference: "123456",
|
123
|
+
company: "Smart Send",
|
124
|
+
name_line1: "Henrik Hansen",
|
125
|
+
name_line2: "C/O Vivian Hansen",
|
126
|
+
address_line1: "Willemoesgade 42",
|
127
|
+
address_line2: "3.th.",
|
128
|
+
postal_code: "2100",
|
129
|
+
city: "Copenhagen",
|
130
|
+
country: "invalid",
|
131
|
+
sms: "12345678",
|
132
|
+
email: "contact@smartsend.io"
|
133
|
+
)
|
134
|
+
|
135
|
+
# optionally set the sender of the shipment
|
136
|
+
shipment.sender = Smartsend::Sender.new(
|
137
|
+
internal_id: "123456",
|
138
|
+
internal_reference: "123456",
|
139
|
+
company: "Smart Send",
|
140
|
+
name_line1: "Henrik Hansen",
|
141
|
+
name_line2: "C/O Vivian Hansen",
|
142
|
+
address_line1: "Willemoesgade 42",
|
143
|
+
address_line2: "3.th.",
|
144
|
+
postal_code: "2100",
|
145
|
+
city: "Copenhagen",
|
146
|
+
country: "DK",
|
147
|
+
sms: "12345678",
|
148
|
+
email: "contact@smartsend.io"
|
149
|
+
)
|
150
|
+
|
151
|
+
# optionally ship to a droppoint by setting an agent
|
152
|
+
shipment.agent = Smartsend::Agent.new(
|
153
|
+
internal_id: "123456",
|
154
|
+
internal_reference: "123457",
|
155
|
+
agent_no: "2103", # droppoint id
|
156
|
+
company: "Smart Send",
|
157
|
+
name_line1: "Henrik Hansen",
|
158
|
+
name_line2: "C/O Vivian Hansen",
|
159
|
+
address_line1: "Willemoesgade 42",
|
160
|
+
address_line2: "3.th.",
|
161
|
+
postal_code: "2100",
|
162
|
+
city: "Copenhagen",
|
163
|
+
country: "invalid"
|
164
|
+
)
|
165
|
+
|
166
|
+
# add one or more parcels/fulfillments to the shipment
|
167
|
+
parcel = Smartsend::Parcel.new(
|
168
|
+
internal_id: "123456789", # your internal parcel id
|
169
|
+
internal_reference: "123456789",
|
170
|
+
weight: 1.25,
|
171
|
+
height: 21,
|
172
|
+
width: 27,
|
173
|
+
length: 35,
|
174
|
+
freetext1: "Brians birthday gift",
|
175
|
+
freetext2: "Don't open this before your birthday Brian",
|
176
|
+
freetext3: "We look forward to seeing you soon Brian",
|
177
|
+
)
|
178
|
+
|
179
|
+
# add items to the parcel
|
180
|
+
parcel_item = Smartsend::ParcelItem.new(
|
181
|
+
internal_id: "ABC123",
|
182
|
+
internal_reference: "ABC123",
|
183
|
+
sku: "ABC123",
|
184
|
+
name: "Product name",
|
185
|
+
quantity: 2,
|
186
|
+
unit_weight: 1.25
|
187
|
+
)
|
188
|
+
|
189
|
+
parcel.items << parcel_item
|
190
|
+
shipment.parcels << parcel
|
191
|
+
|
192
|
+
# send the shipment to Smartsend.io
|
193
|
+
shipment.save!
|
194
|
+
|
195
|
+
assert !shipment.success?
|
196
|
+
assert_equal 5, shipment.error.errors.count
|
197
|
+
end
|
198
|
+
|
199
|
+
end
|
data/test/test_smartsend.rb
CHANGED
@@ -5,14 +5,10 @@ class SmartsendTest < Minitest::Test
|
|
5
5
|
|
6
6
|
def test_configuration
|
7
7
|
Smartsend.configure(
|
8
|
-
|
9
|
-
email: 'test@test.com',
|
10
|
-
license: 'test_license'
|
8
|
+
api_token: 'test_token',
|
11
9
|
)
|
12
10
|
|
13
|
-
assert_equal Smartsend.
|
14
|
-
assert_equal Smartsend.email, 'test@test.com'
|
15
|
-
assert_equal Smartsend.license, 'test_license'
|
11
|
+
assert_equal Smartsend.api_token, 'test_token'
|
16
12
|
end
|
17
13
|
|
18
14
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartsend-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aske Hansen
|
@@ -42,21 +42,16 @@ files:
|
|
42
42
|
- lib/smartsend/address.rb
|
43
43
|
- lib/smartsend/agent.rb
|
44
44
|
- lib/smartsend/client.rb
|
45
|
-
- lib/smartsend/order.rb
|
46
|
-
- lib/smartsend/orders.rb
|
47
45
|
- lib/smartsend/parcel.rb
|
48
46
|
- lib/smartsend/parcel_item.rb
|
49
47
|
- lib/smartsend/receiver.rb
|
48
|
+
- lib/smartsend/request_error.rb
|
50
49
|
- lib/smartsend/sender.rb
|
51
|
-
- lib/smartsend/
|
50
|
+
- lib/smartsend/services.rb
|
51
|
+
- lib/smartsend/shipment.rb
|
52
52
|
- lib/smartsend/version.rb
|
53
53
|
- smartsend-ruby.gemspec
|
54
|
-
- test/
|
55
|
-
- test/test_client.rb
|
56
|
-
- test/test_orders.rb
|
57
|
-
- test/test_parcel_items.rb
|
58
|
-
- test/test_parcels.rb
|
59
|
-
- test/test_service.rb
|
54
|
+
- test/test_shipment.rb
|
60
55
|
- test/test_smartsend.rb
|
61
56
|
homepage: https://github.com/smartsendio/smartsend-ruby
|
62
57
|
licenses:
|
@@ -78,15 +73,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
73
|
version: '0'
|
79
74
|
requirements: []
|
80
75
|
rubyforge_project:
|
81
|
-
rubygems_version: 2.
|
76
|
+
rubygems_version: 2.7.3
|
82
77
|
signing_key:
|
83
78
|
specification_version: 4
|
84
79
|
summary: Smartsend.io api client
|
85
80
|
test_files:
|
86
|
-
- test/
|
87
|
-
- test/test_client.rb
|
88
|
-
- test/test_orders.rb
|
89
|
-
- test/test_parcel_items.rb
|
90
|
-
- test/test_parcels.rb
|
91
|
-
- test/test_service.rb
|
81
|
+
- test/test_shipment.rb
|
92
82
|
- test/test_smartsend.rb
|
data/lib/smartsend/order.rb
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
class Smartsend::Order
|
2
|
-
attr_accessor :id, :label_url, :order_number, :carrier, :method, :return, :total_price, :shipping_price, :currency,
|
3
|
-
:sender, :receiver, :agent, :parcels, :sms_notification, :email_notification
|
4
|
-
|
5
|
-
def initialize(args={})
|
6
|
-
args.each do |k, v|
|
7
|
-
instance_variable_set "@#{k}", v
|
8
|
-
end
|
9
|
-
|
10
|
-
@parcels ||= []
|
11
|
-
end
|
12
|
-
|
13
|
-
def save!(account: nil)
|
14
|
-
response = Smartsend::Client.new(account).post('booking/order', self.serialize)
|
15
|
-
|
16
|
-
if response.success?
|
17
|
-
update_label_url_tracking_codes(response)
|
18
|
-
self
|
19
|
-
else
|
20
|
-
response
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def update_label_url_tracking_codes(response)
|
25
|
-
@label_url = response['pdflink']
|
26
|
-
|
27
|
-
response['parcels'].each do |parcel_response|
|
28
|
-
if parcel = @parcels.select { |x| x.reference.to_s == parcel_response['reference'].to_s }.first
|
29
|
-
parcel.tracking_code = parcel_response['tracecode']
|
30
|
-
parcel.tracking_url = parcel_response['tracelink']
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
|
36
|
-
def serialize
|
37
|
-
{
|
38
|
-
orderno: @order_number,
|
39
|
-
reference: @id,
|
40
|
-
carrier: @carrier,
|
41
|
-
method: @method,
|
42
|
-
return: @return,
|
43
|
-
totalprice: @total_price,
|
44
|
-
shipprice: @shipping_price,
|
45
|
-
currency: @currency,
|
46
|
-
test: false,
|
47
|
-
type: 'pdf',
|
48
|
-
sender: @sender&.serialize,
|
49
|
-
receiver: @receiver&.serialize,
|
50
|
-
agent: @agent&.serialize,
|
51
|
-
parcels: @parcels.map(&:serialize),
|
52
|
-
service: service.serialize
|
53
|
-
}
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def service
|
59
|
-
Smartsend::Service.new(phone: @sms_notification, email: @email_notification)
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
data/lib/smartsend/orders.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
class Smartsend::Orders
|
2
|
-
include Enumerable
|
3
|
-
attr_accessor :labels_url
|
4
|
-
|
5
|
-
def initialize(*orders)
|
6
|
-
@orders = orders
|
7
|
-
end
|
8
|
-
|
9
|
-
def save_all!(account: nil)
|
10
|
-
raise Smartsend::TooManyOrdersError, "You can save a maximum of 10 orders in batch" if count > 10
|
11
|
-
|
12
|
-
response = Smartsend::Client.new(account).post('booking/orders', self.serialize)
|
13
|
-
|
14
|
-
update_label_url_tracking_codes(response)
|
15
|
-
|
16
|
-
self
|
17
|
-
end
|
18
|
-
|
19
|
-
def update_label_url_tracking_codes(response)
|
20
|
-
@labels_url = response['combine_pdf']
|
21
|
-
|
22
|
-
response['orders'].each do |response_order|
|
23
|
-
if order = @orders.select { |x| x.id.to_s == response_order['reference'].to_s }.first
|
24
|
-
order.update_label_url_tracking_codes(response_order)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def <<(order)
|
30
|
-
@orders << order
|
31
|
-
end
|
32
|
-
|
33
|
-
def serialize
|
34
|
-
@orders.map(&:serialize)
|
35
|
-
end
|
36
|
-
|
37
|
-
def each(&block)
|
38
|
-
@orders.each do |order|
|
39
|
-
block.call(order)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
data/lib/smartsend/service.rb
DELETED
data/test/test_addresses.rb
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'smartsend'
|
3
|
-
|
4
|
-
class AddressesTest < Minitest::Test
|
5
|
-
|
6
|
-
def test_sender_serializing
|
7
|
-
sender = Smartsend::Sender.new(address)
|
8
|
-
|
9
|
-
assert_equal({
|
10
|
-
"senderid": 1,
|
11
|
-
"company": "Smart Send",
|
12
|
-
"name1": "Henrik Hansen",
|
13
|
-
"name2": "C/O Vivian Hansen",
|
14
|
-
"address1": "Willemoesgade 42",
|
15
|
-
"address2": "3.th.",
|
16
|
-
"zip": 2100,
|
17
|
-
"city": "Copenhagen",
|
18
|
-
"country": "DK",
|
19
|
-
"sms": 12345678,
|
20
|
-
"mail": "contact@smartsend.io"
|
21
|
-
}, sender.serialize)
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_reciver_serializing
|
25
|
-
receiver = Smartsend::Receiver.new(address)
|
26
|
-
|
27
|
-
assert_equal({
|
28
|
-
"receiverid": 1,
|
29
|
-
"company": "Smart Send",
|
30
|
-
"name1": "Henrik Hansen",
|
31
|
-
"name2": "C/O Vivian Hansen",
|
32
|
-
"address1": "Willemoesgade 42",
|
33
|
-
"address2": "3.th.",
|
34
|
-
"zip": 2100,
|
35
|
-
"city": "Copenhagen",
|
36
|
-
"country": "DK",
|
37
|
-
"sms": 12345678,
|
38
|
-
"mail": "contact@smartsend.io"
|
39
|
-
}, receiver.serialize)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_agent_serializing
|
43
|
-
receiver = Smartsend::Agent.new(address.merge(type: 'PDK'))
|
44
|
-
|
45
|
-
assert_equal({
|
46
|
-
"id": 1,
|
47
|
-
"agentno": 1,
|
48
|
-
"agenttype": "PDK",
|
49
|
-
"company": "Smart Send",
|
50
|
-
"name1": "Henrik Hansen",
|
51
|
-
"name2": "C/O Vivian Hansen",
|
52
|
-
"address1": "Willemoesgade 42",
|
53
|
-
"address2": "3.th.",
|
54
|
-
"zip": 2100,
|
55
|
-
"city": "Copenhagen",
|
56
|
-
"country": "DK",
|
57
|
-
"sms": 12345678,
|
58
|
-
"mail": "contact@smartsend.io"
|
59
|
-
}, receiver.serialize)
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
|
64
|
-
def address
|
65
|
-
{
|
66
|
-
:id => 1,
|
67
|
-
:company => "Smart Send",
|
68
|
-
:name1 => "Henrik Hansen",
|
69
|
-
:name2 => "C/O Vivian Hansen",
|
70
|
-
:address1 => "Willemoesgade 42",
|
71
|
-
:address2 => "3.th.",
|
72
|
-
:zip => 2100,
|
73
|
-
:city => "Copenhagen",
|
74
|
-
:country => "DK",
|
75
|
-
:phone => 12345678,
|
76
|
-
:mail => "contact@smartsend.io"
|
77
|
-
}
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
data/test/test_client.rb
DELETED
data/test/test_orders.rb
DELETED
@@ -1,64 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'smartsend'
|
3
|
-
|
4
|
-
class OrdersTest < Minitest::Test
|
5
|
-
|
6
|
-
def test_serializing
|
7
|
-
assert_equal(params, order.serialize)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_collection_serializing
|
11
|
-
orders = Smartsend::Orders.new(order, order)
|
12
|
-
|
13
|
-
assert_equal 2, orders.count
|
14
|
-
assert_equal [params, params], orders.serialize
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_too_many_orders_errors
|
18
|
-
assert_raises Smartsend::TooManyOrdersError do
|
19
|
-
Smartsend::Orders.new(*(0..10).to_a).save_all!
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def params
|
26
|
-
{
|
27
|
-
orderno: 'AC12345789',
|
28
|
-
reference: '1234567',
|
29
|
-
carrier: 'postdanmark',
|
30
|
-
method: 'private',
|
31
|
-
return: false,
|
32
|
-
totalprice: 199.75,
|
33
|
-
shipprice: 49,
|
34
|
-
currency: 'DKK',
|
35
|
-
test: false,
|
36
|
-
type: 'pdf',
|
37
|
-
sender: nil,
|
38
|
-
receiver: nil,
|
39
|
-
agent: nil,
|
40
|
-
parcels: [],
|
41
|
-
service: { :notemail=>"contact@smartsend.io", :notesms=>"12345678" }
|
42
|
-
}
|
43
|
-
end
|
44
|
-
|
45
|
-
def order
|
46
|
-
Smartsend::Order.new(
|
47
|
-
:id => "1234567",
|
48
|
-
:order_number => "AC12345789",
|
49
|
-
:carrier => "postdanmark",
|
50
|
-
:method => "private",
|
51
|
-
:return => false,
|
52
|
-
:total_price => 199.75,
|
53
|
-
:shipping_price => 49,
|
54
|
-
:currency => "DKK",
|
55
|
-
:sms_notification => '12345678',
|
56
|
-
:email_notification => 'contact@smartsend.io',
|
57
|
-
sender: nil,
|
58
|
-
receiver: nil,
|
59
|
-
agent: nil,
|
60
|
-
parcels: []
|
61
|
-
)
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
data/test/test_parcel_items.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'minitest/autorun'
|
2
|
-
require 'smartsend'
|
3
|
-
|
4
|
-
class ParcelItemsTest < Minitest::Test
|
5
|
-
|
6
|
-
def test_serializing
|
7
|
-
parcel_item = Smartsend::ParcelItem.new(
|
8
|
-
sku: 'ABC123',
|
9
|
-
title: 'ABC123',
|
10
|
-
quantity: 2,
|
11
|
-
unit_weight: 1.25,
|
12
|
-
unit_price: 144.5,
|
13
|
-
currency: 'DKK'
|
14
|
-
)
|
15
|
-
|
16
|
-
assert_equal({
|
17
|
-
"sku": "ABC123",
|
18
|
-
"title": "ABC123",
|
19
|
-
"quantity": 2,
|
20
|
-
"unitweight": 1.25,
|
21
|
-
"unitprice": 144.5,
|
22
|
-
"currency": "DKK"
|
23
|
-
}, parcel_item.serialize)
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|