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 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