purolator_ruby 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/purolator_ruby/create_shipment_request.rb +8 -5
- data/lib/purolator_ruby/version.rb +1 -1
- data/purolator_ruby.gemspec +2 -0
- data/spec/fixtures/vcr_cassettes/shipping_service_integration.yml +9 -9
- data/spec/purolator_ruby/create_shipment_request_spec.rb +4 -4
- data/spec/spec_helper.rb +2 -0
- metadata +30 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8050c49b95ac96e1b0e9e17214d989cb559649c
|
4
|
+
data.tar.gz: 858fd25b68c2c9fc9e63cb345a3ec453be0b4557
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3d2ce23fd8c99f2f56966da09661dfb0fa93e96183041fbcb2849564ca292e4aaada0184884dcc1ad6b0a76d8cfbd23bdab21f9d5d08c5b8cb5690eaef1d1cc
|
7
|
+
data.tar.gz: 1de879eab2f59e2d1869d5dd98cfd0303ebcc80fb66238ef75144028aae88142015440b41803b6f92ba353b44bd816bac2c03af46939689ed86e55ff65bf4e35
|
@@ -16,7 +16,7 @@ module PurolatorRuby
|
|
16
16
|
def send!
|
17
17
|
send.tap do |resp|
|
18
18
|
if resp.status == :error
|
19
|
-
raise ArgumentError, resp.
|
19
|
+
raise ArgumentError, resp.errors
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -25,13 +25,16 @@ module PurolatorRuby
|
|
25
25
|
payload = shipment_payload
|
26
26
|
|
27
27
|
if payload.valid?
|
28
|
-
|
28
|
+
response = client.call(:create_shipment, message: payload.to_h)
|
29
29
|
.body
|
30
30
|
.fetch(:create_shipment_response)
|
31
|
-
.fetch(:shipment_pin)
|
32
|
-
.fetch(:value)
|
33
31
|
|
34
|
-
|
32
|
+
if response[:shipment_pin]
|
33
|
+
CreateShipmentResponse.new(:ok, response[:shipment_pin][:value], payload, nil)
|
34
|
+
else
|
35
|
+
errors = response[:response_information][:errors].map {|k, v| v[:description]}
|
36
|
+
CreateShipmentResponse.new(:error, nil, payload, errors)
|
37
|
+
end
|
35
38
|
else
|
36
39
|
CreateShipmentResponse.new(:error, nil, payload, payload.errors)
|
37
40
|
end
|
data/purolator_ruby.gemspec
CHANGED
@@ -26,4 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rspec", "~> 3.3.0"
|
27
27
|
spec.add_development_dependency "vcr", "~> 2.9.3"
|
28
28
|
spec.add_development_dependency "webmock", "~> 1.20.4"
|
29
|
+
spec.add_development_dependency "awesome_print"
|
30
|
+
spec.add_development_dependency "pry"
|
29
31
|
end
|
@@ -10,23 +10,23 @@ http_interactions:
|
|
10
10
|
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ins0="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation"
|
11
11
|
xmlns:ins1="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF"><SOAP-ENV:Header><ns1:RequestContext><ns1:Version>1.5</ns1:Version><ns1:Language>en</ns1:Language><ns1:GroupID>xxx</ns1:GroupID><ns1:RequestReference>Rating
|
12
12
|
Example</ns1:RequestReference><ns1:UserToken>9999999999</ns1:UserToken></ns1:RequestContext></SOAP-ENV:Header><SOAP-ENV:Body><ns1:CreateShipmentRequest><ns1:Shipment><ns1:SenderInformation><ns1:Address><ns1:Name>Thehydropothecary</ns1:Name><ns1:StreetNumber>120</ns1:StreetNumber><ns1:StreetName>Chemin
|
13
|
-
de la Rive</ns1:StreetName><ns1:City>Gatineau</ns1:City><ns1:Province>QC</ns1:Province><ns1:Country>CA</ns1:Country><ns1:PostalCode>J8M1V2</ns1:PostalCode><ns1:PhoneNumber><ns1:CountryCode>1</ns1:CountryCode><ns1:AreaCode>905</ns1:AreaCode><ns1:Phone>5555555</ns1:Phone></ns1:PhoneNumber></ns1:Address></ns1:SenderInformation><ns1:ReceiverInformation><ns1:Address><ns1:Name>
|
14
|
-
|
15
|
-
Road</ns1:StreetName><ns1:City>Burnaby</ns1:City><ns1:Province>BC</ns1:Province><ns1:Country>CA</ns1:Country><ns1:PostalCode>V5C1A1</ns1:PostalCode><ns1:PhoneNumber><ns1:CountryCode>1</ns1:CountryCode><ns1:AreaCode>604</ns1:AreaCode><ns1:Phone>2982181</ns1:Phone></ns1:PhoneNumber></ns1:Address></ns1:ReceiverInformation><ns1:ShipmentDate>2015-
|
16
|
-
|
13
|
+
de la Rive</ns1:StreetName><ns1:City>Gatineau</ns1:City><ns1:Province>QC</ns1:Province><ns1:Country>CA</ns1:Country><ns1:PostalCode>J8M1V2</ns1:PostalCode><ns1:PhoneNumber><ns1:CountryCode>1</ns1:CountryCode><ns1:AreaCode>905</ns1:AreaCode><ns1:Phone>5555555</ns1:Phone></ns1:PhoneNumber></ns1:Address></ns1:SenderInformation><ns1:ReceiverInformation><ns1:Address><ns1:Name>Fake
|
14
|
+
Name</ns1:Name><ns1:StreetNumber>5</ns1:StreetNumber><ns1:StreetName>Douglas
|
15
|
+
Road</ns1:StreetName><ns1:City>Burnaby</ns1:City><ns1:Province>BC</ns1:Province><ns1:Country>CA</ns1:Country><ns1:PostalCode>V5C1A1</ns1:PostalCode><ns1:PhoneNumber><ns1:CountryCode>1</ns1:CountryCode><ns1:AreaCode>604</ns1:AreaCode><ns1:Phone>2982181</ns1:Phone></ns1:PhoneNumber></ns1:Address></ns1:ReceiverInformation><ns1:ShipmentDate>2015-07-22</ns1:ShipmentDate><ns1:PackageInformation><ns1:ServiceID>PurolatorExpress</ns1:ServiceID><ns1:TotalWeight><ns1:Value>10</ns1:Value><ns1:WeightUnit>lb</ns1:WeightUnit></ns1:TotalWeight><ns1:TotalPieces>1</ns1:TotalPieces><ns1:OptionsInformation><ns1:Options><ns1:OptionIDValuePair><ns1:ID>ResidentialSignatureDomestic</ns1:ID><ns1:Value>true</ns1:Value></ns1:OptionIDValuePair></ns1:Options></ns1:OptionsInformation></ns1:PackageInformation><ns1:PaymentInformation><ns1:PaymentType>Sender</ns1:PaymentType><ns1:RegisteredAccountNumber>9999999999</ns1:RegisteredAccountNumber><ns1:BillingAccountNumber>9999999999</ns1:BillingAccountNumber></ns1:PaymentInformation><ns1:PickupInformation><ns1:PickupType>DropOff</ns1:PickupType></ns1:PickupInformation><ns1:TrackingReferenceInformation><ns1:Reference1>ref
|
16
|
+
45</ns1:Reference1></ns1:TrackingReferenceInformation></ns1:Shipment><ns1:PrinterType>Thermal</ns1:PrinterType></ns1:CreateShipmentRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
|
17
17
|
headers:
|
18
18
|
User-Agent:
|
19
19
|
- HTTPClient/1.0 (2.6.0.1, ruby 2.1.3 (2014-09-19))
|
20
20
|
Accept:
|
21
21
|
- "*/*"
|
22
22
|
Date:
|
23
|
-
-
|
23
|
+
- Wed, 22 Jul 2015 07:54:43 GMT
|
24
24
|
Soapaction:
|
25
25
|
- '"http://purolator.com/pws/service/v1/CreateShipment"'
|
26
26
|
Content-Type:
|
27
27
|
- text/xml;charset=UTF-8
|
28
28
|
Content-Length:
|
29
|
-
- '
|
29
|
+
- '2716'
|
30
30
|
Authorization:
|
31
31
|
- Basic ZjEwOTZkZTI4ZjNkNDNkNmEyNzg3MmNjMGMzYzM5YTk6MTBXbClkaH0=
|
32
32
|
response:
|
@@ -45,14 +45,14 @@ http_interactions:
|
|
45
45
|
X-Powered-By:
|
46
46
|
- ASP.NET
|
47
47
|
Date:
|
48
|
-
-
|
48
|
+
- Wed, 22 Jul 2015 07:54:44 GMT
|
49
49
|
body:
|
50
50
|
encoding: UTF-8
|
51
51
|
string: <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ResponseContext
|
52
52
|
xmlns:h="http://purolator.com/pws/datatypes/v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><h:ResponseReference>Rating
|
53
53
|
Example</h:ResponseReference></h:ResponseContext></s:Header><s:Body><CreateShipmentResponse
|
54
54
|
xmlns="http://purolator.com/pws/datatypes/v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><ResponseInformation><Errors/><InformationalMessages
|
55
|
-
i:nil="true"/></ResponseInformation><ShipmentPIN><Value>
|
55
|
+
i:nil="true"/></ResponseInformation><ShipmentPIN><Value>329018601149</Value></ShipmentPIN><PiecePINs><PIN><Value>329018601149</Value></PIN></PiecePINs><ReturnShipmentPINs/><ExpressChequePIN><Value/></ExpressChequePIN></CreateShipmentResponse></s:Body></s:Envelope>
|
56
56
|
http_version:
|
57
|
-
recorded_at:
|
57
|
+
recorded_at: Wed, 22 Jul 2015 07:54:44 GMT
|
58
58
|
recorded_with: VCR 2.9.3
|
@@ -7,8 +7,8 @@ describe PurolatorRuby::CreateShipmentRequest do
|
|
7
7
|
ENV['PLUROLATOR_RUBY_DEVELOPER_KEY'] = "f1096de28f3d43d6a27872cc0c3c39a9"
|
8
8
|
ENV['PLUROLATOR_RUBY_DEVELOPER_PASSWORD'] = "10Wl)dh}"
|
9
9
|
ENV['PLUROLATOR_RUBY_CLIENT_ID'] = "9999999999"
|
10
|
-
ENV['PLUROLATOR_RUBY_ACCOUNT_NUMBER'] = "
|
11
|
-
ENV['PLUROLATOR_RUBY_BILLING_NUMBER'] = "
|
10
|
+
ENV['PLUROLATOR_RUBY_ACCOUNT_NUMBER'] = "9999999999"
|
11
|
+
ENV['PLUROLATOR_RUBY_BILLING_NUMBER'] = "9999999999"
|
12
12
|
end
|
13
13
|
|
14
14
|
let(:client) { PurolatorRuby::Client.new }
|
@@ -19,7 +19,7 @@ describe PurolatorRuby::CreateShipmentRequest do
|
|
19
19
|
client: client,
|
20
20
|
sender_address: sender_address,
|
21
21
|
receiver_address: receiver_address,
|
22
|
-
shipping_date: Date.
|
22
|
+
shipping_date: Date.today,
|
23
23
|
weight: '10',
|
24
24
|
pieces: 1,
|
25
25
|
reference: 'ref 45')
|
@@ -28,7 +28,7 @@ describe PurolatorRuby::CreateShipmentRequest do
|
|
28
28
|
it "succesfully communicates with ShippingService and returns shipment pin" do
|
29
29
|
VCR.use_cassette('shipping_service_integration') do
|
30
30
|
response = subject.send!
|
31
|
-
expect(response.shipment_pin).to eq('
|
31
|
+
expect(response.shipment_pin).to eq('329018601149')
|
32
32
|
expect(response.status).to eq(:ok)
|
33
33
|
end
|
34
34
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: purolator_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Boris Filipov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -108,6 +108,34 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.20.4
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: awesome_print
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
111
139
|
description: ''
|
112
140
|
email:
|
113
141
|
- bfilipov@gmail.com
|