smartsend-ruby 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|