purolator_ruby 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 64c0320cc133bf07fbd068b04fb844247339706b
4
- data.tar.gz: 27199a366d86b7dd0d182946eb278de4e226e9cb
3
+ metadata.gz: a8050c49b95ac96e1b0e9e17214d989cb559649c
4
+ data.tar.gz: 858fd25b68c2c9fc9e63cb345a3ec453be0b4557
5
5
  SHA512:
6
- metadata.gz: 9d6420c27b3d4df141cb2d18517eeccc60e22e22364dfc302da0aa1751e24753451b0bfc14fd978fd782f836749dce40bc5da7d61490d3c7067fc4088b73d366
7
- data.tar.gz: 82050939367fc51fdb1f99e7b4169691f384ec820cfda28f33eeedadc517514ee2e9e18c4e47ddb5260f94a15ec995089d3d2ef9a70a83a5775568c83dc4ca7b
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.payload.errors.join(' ')
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
- shipment_pin = client.call(:create_shipment, message: payload.to_h)
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
- CreateShipmentResponse.new(:ok, shipment_pin, payload, nil)
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
@@ -1,3 +1,3 @@
1
1
  module PurolatorRuby
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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>Nathanial
14
- Cartwright</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-06-26</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>OriginSignatureNotRequired</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>Reference
16
- For Shipment</ns1:Reference1></ns1:TrackingReferenceInformation></ns1:Shipment><ns1:PrinterType>Thermal</ns1:PrinterType></ns1:CreateShipmentRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
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
- - Thu, 25 Jun 2015 05:56:27 GMT
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
- - '2741'
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
- - Thu, 25 Jun 2015 05:56:30 GMT
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>329018572340</Value></ShipmentPIN><PiecePINs><PIN><Value>329018572340</Value></PIN></PiecePINs><ReturnShipmentPINs/><ExpressChequePIN><Value/></ExpressChequePIN></CreateShipmentResponse></s:Body></s:Envelope>
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: Thu, 25 Jun 2015 05:56:30 GMT
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'] = "999999999"
11
- ENV['PLUROLATOR_RUBY_BILLING_NUMBER'] = "999999999"
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.new(2015, 06, 28),
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('329018572340')
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
@@ -1,6 +1,8 @@
1
1
  require 'savon'
2
2
  require 'purolator_ruby'
3
3
  require 'vcr'
4
+ require 'pry'
5
+ require 'awesome_print'
4
6
 
5
7
  RSpec.configure do |config|
6
8
  config.color = true
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
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-15 00:00:00.000000000 Z
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