apruve 1.1.2 → 1.1.3
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 +4 -4
- data/lib/apruve.rb +15 -0
- data/lib/apruve/resources.rb +1 -0
- data/lib/apruve/resources/shipment.rb +7 -7
- data/lib/apruve/resources/shipment_item.rb +22 -0
- data/lib/apruve/version.rb +1 -1
- data/spec/apruve/apruve_spec.rb +40 -1
- data/spec/apruve/resources/shipment_item_spec.rb +24 -0
- data/spec/apruve/resources/shipment_spec.rb +2 -2
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f77ae16802dececd30e06bdbbd304c22bc9ff54
|
4
|
+
data.tar.gz: d85fef623412045ca74e915fea7ed579976e9f01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 678517ef6ac88dc6c7baab6a2d1db526bac09f0a2b8e57179b17230bee7f99684bf56bd4f9b99523ec8c735cb4d8f6e52996d717b2f900cbb16ac2f962436885
|
7
|
+
data.tar.gz: 220c84012bb49de0d07853d3a4ba704530a61421da39e79d8806d7a10c74ad6dfe0ebf550b231c999507a09de0032f8bf130237bdbde65cf7741233a280d904a
|
data/lib/apruve.rb
CHANGED
@@ -47,22 +47,32 @@ module Apruve
|
|
47
47
|
|
48
48
|
def get(*args, &block)
|
49
49
|
self.client.get *args
|
50
|
+
rescue URI::InvalidURIError
|
51
|
+
handle_invalid_url(args[0])
|
50
52
|
end
|
51
53
|
|
52
54
|
def post(*args, &block)
|
53
55
|
self.client.post *args
|
56
|
+
rescue URI::InvalidURIError
|
57
|
+
handle_invalid_url(args[0])
|
54
58
|
end
|
55
59
|
|
56
60
|
def put(*args, &block)
|
57
61
|
self.client.put *args
|
62
|
+
rescue URI::InvalidURIError
|
63
|
+
handle_invalid_url(args[0])
|
58
64
|
end
|
59
65
|
|
60
66
|
def patch(*args, &block)
|
61
67
|
self.client.patch *args
|
68
|
+
rescue URI::InvalidURIError
|
69
|
+
handle_invalid_url(args[0])
|
62
70
|
end
|
63
71
|
|
64
72
|
def unstore(*args, &block)
|
65
73
|
self.client.delete *args
|
74
|
+
rescue URI::InvalidURIError
|
75
|
+
handle_invalid_url(args[0])
|
66
76
|
end
|
67
77
|
|
68
78
|
alias_method :delete, :unstore
|
@@ -72,6 +82,11 @@ module Apruve
|
|
72
82
|
|
73
83
|
private
|
74
84
|
|
85
|
+
def handle_invalid_url(url)
|
86
|
+
client.config[:logger].warn 'Invalid URL'
|
87
|
+
raise Apruve::NotFound.new(body: {}, status: 404, headers: {}, url: url)
|
88
|
+
end
|
89
|
+
|
75
90
|
def configure_environment(env)
|
76
91
|
if env == PROD
|
77
92
|
@config[:scheme] = 'https'
|
data/lib/apruve/resources.rb
CHANGED
@@ -7,6 +7,7 @@ require_relative 'resources/order_item'
|
|
7
7
|
require_relative 'resources/invoice'
|
8
8
|
require_relative 'resources/invoice_item'
|
9
9
|
require_relative 'resources/shipment'
|
10
|
+
require_relative 'resources/shipment_item'
|
10
11
|
require_relative 'resources/merchant'
|
11
12
|
require_relative 'resources/subscription'
|
12
13
|
require_relative 'resources/subscription_adjustment'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Apruve
|
2
2
|
class Shipment < Apruve::ApruveObject
|
3
3
|
attr_accessor :id, :invoice_id, :amount_cents, :currency, :shipper, :shipped_at,
|
4
|
-
:tracking_number, :delivered_at, :merchant_notes, :
|
4
|
+
:tracking_number, :delivered_at, :merchant_notes, :shipment_items,
|
5
5
|
:tax_cents, :shipping_cents, :status, :merchant_shipment_id
|
6
6
|
|
7
7
|
def self.find(invoice_id, id)
|
@@ -12,14 +12,14 @@ module Apruve
|
|
12
12
|
def initialize(params)
|
13
13
|
super
|
14
14
|
# hydrate payment items if appropriate
|
15
|
-
if @
|
16
|
-
@
|
17
|
-
elsif @
|
15
|
+
if @shipment_items.nil?
|
16
|
+
@shipment_items = []
|
17
|
+
elsif @shipment_items.is_a?(Array) && @shipment_items.first.is_a?(Hash)
|
18
18
|
hydrated_items = []
|
19
|
-
@
|
20
|
-
hydrated_items << Apruve::
|
19
|
+
@shipment_items.each do |item|
|
20
|
+
hydrated_items << Apruve::ShipmentItem.new(item)
|
21
21
|
end
|
22
|
-
@
|
22
|
+
@shipment_items = hydrated_items
|
23
23
|
end
|
24
24
|
@currency = Apruve.default_currency if currency.nil?
|
25
25
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Apruve
|
2
|
+
class ShipmentItem < Apruve::ApruveObject
|
3
|
+
attr_accessor :title,
|
4
|
+
:amount_cents,
|
5
|
+
:price_ea_cents,
|
6
|
+
:price_total_cents,
|
7
|
+
:shipping_cents,
|
8
|
+
:tax_cents,
|
9
|
+
:quantity,
|
10
|
+
:description,
|
11
|
+
:variant_info,
|
12
|
+
:sku,
|
13
|
+
:vendor,
|
14
|
+
:currency,
|
15
|
+
:view_product_url,
|
16
|
+
:price_ea_cents,
|
17
|
+
:taxable,
|
18
|
+
:shipment_id,
|
19
|
+
:uuid
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/lib/apruve/version.rb
CHANGED
data/spec/apruve/apruve_spec.rb
CHANGED
@@ -61,7 +61,7 @@ describe 'Apruve' do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
describe '
|
64
|
+
describe 'URL actions' do
|
65
65
|
let (:api_key) { 'an-api-key' }
|
66
66
|
let (:url) { 'example.com' }
|
67
67
|
before :each do
|
@@ -71,7 +71,46 @@ describe 'Apruve' do
|
|
71
71
|
it 'should raise' do
|
72
72
|
expect { Apruve.get('gibberish') }.to raise_error(Apruve::ServiceUnreachable)
|
73
73
|
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe '#get' do
|
77
|
+
describe 'invalid URL' do
|
78
|
+
it 'should raise a Faraday error' do
|
79
|
+
expect { Apruve.get('#asldkjfsldfj#Asdlofjasod##') }.to raise_error(Apruve::NotFound)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe '#post' do
|
85
|
+
describe 'invalid URL' do
|
86
|
+
it 'should raise a Faraday error' do
|
87
|
+
expect { Apruve.get('#asldkjfsldfj#Asdlofjasod##') }.to raise_error(Apruve::NotFound)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
74
91
|
|
92
|
+
describe '#patch' do
|
93
|
+
describe 'invalid URL' do
|
94
|
+
it 'should raise a Faraday error' do
|
95
|
+
expect { Apruve.get('#asldkjfsldfj#Asdlofjasod##') }.to raise_error(Apruve::NotFound)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
describe '#unstore' do
|
101
|
+
describe 'invalid URL' do
|
102
|
+
it 'should raise a Faraday error' do
|
103
|
+
expect { Apruve.get('#asldkjfsldfj#Asdlofjasod##') }.to raise_error(Apruve::NotFound)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
describe '#put' do
|
109
|
+
describe 'invalid URL' do
|
110
|
+
it 'should raise a Faraday error' do
|
111
|
+
expect { Apruve.get('#asldkjfsldfj#Asdlofjasod##') }.to raise_error(Apruve::NotFound)
|
112
|
+
end
|
113
|
+
end
|
75
114
|
end
|
76
115
|
end
|
77
116
|
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Apruve::ShipmentItem do
|
4
|
+
let (:shipment_item) {Apruve::ShipmentItem.new}
|
5
|
+
subject { shipment_item }
|
6
|
+
|
7
|
+
it { should respond_to(:title) }
|
8
|
+
it { should respond_to(:price_ea_cents) }
|
9
|
+
it { should respond_to(:price_total_cents) }
|
10
|
+
it { should respond_to(:shipping_cents) }
|
11
|
+
it { should respond_to(:tax_cents) }
|
12
|
+
it { should respond_to(:quantity) }
|
13
|
+
it { should respond_to(:description) }
|
14
|
+
it { should respond_to(:variant_info) }
|
15
|
+
it { should respond_to(:sku) }
|
16
|
+
it { should respond_to(:vendor) }
|
17
|
+
it { should respond_to(:currency) }
|
18
|
+
it { should respond_to(:view_product_url) }
|
19
|
+
it { should respond_to(:price_ea_cents) }
|
20
|
+
it { should respond_to(:taxable) }
|
21
|
+
it { should respond_to(:shipment_id) }
|
22
|
+
it { should respond_to(:uuid) }
|
23
|
+
|
24
|
+
end
|
@@ -46,7 +46,7 @@ describe Apruve::Shipment do
|
|
46
46
|
it { should respond_to(:shipped_at) }
|
47
47
|
it { should respond_to(:delivered_at) }
|
48
48
|
it { should respond_to(:merchant_notes) }
|
49
|
-
it { should respond_to(:
|
49
|
+
it { should respond_to(:shipment_items) }
|
50
50
|
it { should respond_to(:tax_cents) }
|
51
51
|
it { should respond_to(:shipping_cents) }
|
52
52
|
it { should respond_to(:status) }
|
@@ -54,7 +54,7 @@ describe Apruve::Shipment do
|
|
54
54
|
|
55
55
|
describe '#to_json' do
|
56
56
|
let(:expected) do
|
57
|
-
'{"amount_cents":1234578,"merchant_notes":"foo","id":"91ac96c0ffc9577ecb634ad726b1874e","invoice_id":"2d1bd4f93a1b9ed034e36783adb29bed","shipper":"shipper name","shipped_at":"2016-11-11T00:00:00-06:00","delivered_at":"2016-11-11T00:00:00-06:00","tracking_number":"1234abcd","currency":"USD","tax_cents":1234,"shipping_cents":12345,"status":"fulfilled","merchant_shipment_id":"ZZ1234567","
|
57
|
+
'{"amount_cents":1234578,"merchant_notes":"foo","id":"91ac96c0ffc9577ecb634ad726b1874e","invoice_id":"2d1bd4f93a1b9ed034e36783adb29bed","shipper":"shipper name","shipped_at":"2016-11-11T00:00:00-06:00","delivered_at":"2016-11-11T00:00:00-06:00","tracking_number":"1234abcd","currency":"USD","tax_cents":1234,"shipping_cents":12345,"status":"fulfilled","merchant_shipment_id":"ZZ1234567","shipment_items":[]}'
|
58
58
|
end
|
59
59
|
its(:to_json) { should eq expected }
|
60
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apruve
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Apruve, Inc.
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -115,6 +115,7 @@ files:
|
|
115
115
|
- lib/apruve/resources/order.rb
|
116
116
|
- lib/apruve/resources/order_item.rb
|
117
117
|
- lib/apruve/resources/shipment.rb
|
118
|
+
- lib/apruve/resources/shipment_item.rb
|
118
119
|
- lib/apruve/resources/subscription.rb
|
119
120
|
- lib/apruve/resources/subscription_adjustment.rb
|
120
121
|
- lib/apruve/resources/validation_error.rb
|
@@ -131,6 +132,7 @@ files:
|
|
131
132
|
- spec/apruve/resources/merchant_spec.rb
|
132
133
|
- spec/apruve/resources/order_item_spec.rb
|
133
134
|
- spec/apruve/resources/order_spec.rb
|
135
|
+
- spec/apruve/resources/shipment_item_spec.rb
|
134
136
|
- spec/apruve/resources/shipment_spec.rb
|
135
137
|
- spec/apruve/resources/subscription_adjustment_spec.rb
|
136
138
|
- spec/apruve/resources/subscription_spec.rb
|
@@ -170,9 +172,11 @@ test_files:
|
|
170
172
|
- spec/apruve/resources/merchant_spec.rb
|
171
173
|
- spec/apruve/resources/order_item_spec.rb
|
172
174
|
- spec/apruve/resources/order_spec.rb
|
175
|
+
- spec/apruve/resources/shipment_item_spec.rb
|
173
176
|
- spec/apruve/resources/shipment_spec.rb
|
174
177
|
- spec/apruve/resources/subscription_adjustment_spec.rb
|
175
178
|
- spec/apruve/resources/subscription_spec.rb
|
176
179
|
- spec/apruve/resources/webhook_endpoint_spec.rb
|
177
180
|
- spec/apruve/response/apruve_exception_middleware_spec.rb
|
178
181
|
- spec/spec_helper.rb
|
182
|
+
has_rdoc:
|