fex 0.0.1 → 0.0.2
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.
- data/lib/fex/services.yml +6 -0
- data/lib/fex/ship_response.rb +24 -0
- data/lib/fex/version.rb +1 -1
- data/spec/integration/ship_spec.rb +0 -1
- data/spec/integration/track_spec.rb +26 -0
- metadata +4 -2
data/lib/fex/services.yml
CHANGED
data/lib/fex/ship_response.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "base64"
|
2
|
+
require "bigdecimal"
|
2
3
|
|
3
4
|
module Fex
|
4
5
|
class ShipResponse < Response
|
@@ -7,5 +8,28 @@ module Fex
|
|
7
8
|
@image ||= Base64.decode64(xpath("//Label/Parts/Image").inner_text)
|
8
9
|
end
|
9
10
|
|
11
|
+
def label_barcode
|
12
|
+
@label_barcode ||= css("Barcodes StringBarcodes Value").inner_text
|
13
|
+
end
|
14
|
+
|
15
|
+
def total_net_charge
|
16
|
+
@total_net_charge ||= BigDecimal find_total_net_charge
|
17
|
+
end
|
18
|
+
|
19
|
+
def tracking_number
|
20
|
+
@tracking_number ||= css("TrackingNumber").inner_text
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def find_total_net_charge
|
26
|
+
charge = css("TotalNetCharge Amount").first
|
27
|
+
if charge
|
28
|
+
charge.inner_text
|
29
|
+
else
|
30
|
+
'0.0'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
10
34
|
end
|
11
35
|
end
|
data/lib/fex/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Track Service", :test_environment do
|
4
|
+
|
5
|
+
example "Track" do
|
6
|
+
|
7
|
+
client = Fex.client(credentials: credentials, mode: mode, client: { logger: logger })
|
8
|
+
|
9
|
+
service = client.service(:track)
|
10
|
+
|
11
|
+
service.should have(4).operations
|
12
|
+
|
13
|
+
response = service.call(
|
14
|
+
:track,
|
15
|
+
package_identifier: {
|
16
|
+
value: "400030715008165",
|
17
|
+
type: "TRACKING_NUMBER_OR_DOORTAG"
|
18
|
+
},
|
19
|
+
include_detailed_scans: true
|
20
|
+
)
|
21
|
+
# We have no tracking number to test, so just verify that we get the right error.
|
22
|
+
response.severity.should eq "ERROR"
|
23
|
+
response.message.should start_with "No information for the following shipments has been received by our system yet."
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: savon
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- spec/integration/address_validation_spec.rb
|
86
86
|
- spec/integration/rate_spec.rb
|
87
87
|
- spec/integration/ship_spec.rb
|
88
|
+
- spec/integration/track_spec.rb
|
88
89
|
- spec/spec_helper.rb
|
89
90
|
- spec/support/credentials.rb
|
90
91
|
- spec/support/logger_helper.rb
|
@@ -129,6 +130,7 @@ test_files:
|
|
129
130
|
- spec/integration/address_validation_spec.rb
|
130
131
|
- spec/integration/rate_spec.rb
|
131
132
|
- spec/integration/ship_spec.rb
|
133
|
+
- spec/integration/track_spec.rb
|
132
134
|
- spec/spec_helper.rb
|
133
135
|
- spec/support/credentials.rb
|
134
136
|
- spec/support/logger_helper.rb
|