apruve 0.11.0 → 1.0.0

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/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  require 'apruve'
2
5
  # require File.join(File.dirname(__FILE__), '../lib', 'apruve.rb')
3
6
 
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: 0.11.0
4
+ version: 1.0.0
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: 2014-07-23 00:00:00.000000000 Z
12
+ date: 2016-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -109,13 +109,15 @@ files:
109
109
  - lib/apruve/faraday_error_handler.rb
110
110
  - lib/apruve/resources.rb
111
111
  - lib/apruve/resources/apruve_object.rb
112
- - lib/apruve/resources/line_item.rb
113
- - lib/apruve/resources/payment.rb
114
- - lib/apruve/resources/payment_item.rb
115
- - lib/apruve/resources/payment_request.rb
112
+ - lib/apruve/resources/invoice.rb
113
+ - lib/apruve/resources/invoice_item.rb
114
+ - lib/apruve/resources/merchant.rb
115
+ - lib/apruve/resources/order.rb
116
+ - lib/apruve/resources/order_item.rb
116
117
  - lib/apruve/resources/subscription.rb
117
118
  - lib/apruve/resources/subscription_adjustment.rb
118
119
  - lib/apruve/resources/validation_error.rb
120
+ - lib/apruve/resources/webhook_endpoint.rb
119
121
  - lib/apruve/response/apruve_exception_middleware.rb
120
122
  - lib/apruve/response/apruve_parse_json.rb
121
123
  - lib/apruve/utils.rb
@@ -123,12 +125,15 @@ files:
123
125
  - spec/apruve/apruve_spec.rb
124
126
  - spec/apruve/client_spec.rb
125
127
  - spec/apruve/config_spec.rb
126
- - spec/apruve/resources/line_item_spec.rb
127
- - spec/apruve/resources/payment_item_spec.rb
128
+ - spec/apruve/resources/invoice_item_spec.rb
129
+ - spec/apruve/resources/invoice_spec.rb
130
+ - spec/apruve/resources/merchant_spec.rb
131
+ - spec/apruve/resources/order_item_spec.rb
132
+ - spec/apruve/resources/order_spec.rb
128
133
  - spec/apruve/resources/payment_request_spec.rb
129
- - spec/apruve/resources/payment_spec.rb
130
134
  - spec/apruve/resources/subscription_adjustment_spec.rb
131
135
  - spec/apruve/resources/subscription_spec.rb
136
+ - spec/apruve/resources/webhook_endpoint_spec.rb
132
137
  - spec/apruve/response/apruve_exception_middleware_spec.rb
133
138
  - spec/spec_helper.rb
134
139
  homepage: https://www.apruve.com
@@ -151,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
151
156
  version: '0'
152
157
  requirements: []
153
158
  rubyforge_project:
154
- rubygems_version: 2.2.1
159
+ rubygems_version: 2.4.5.1
155
160
  signing_key:
156
161
  specification_version: 4
157
162
  summary: Helper library for integrating Apruve into a ruby app.
@@ -159,12 +164,14 @@ test_files:
159
164
  - spec/apruve/apruve_spec.rb
160
165
  - spec/apruve/client_spec.rb
161
166
  - spec/apruve/config_spec.rb
162
- - spec/apruve/resources/line_item_spec.rb
163
- - spec/apruve/resources/payment_item_spec.rb
167
+ - spec/apruve/resources/invoice_item_spec.rb
168
+ - spec/apruve/resources/invoice_spec.rb
169
+ - spec/apruve/resources/merchant_spec.rb
170
+ - spec/apruve/resources/order_item_spec.rb
171
+ - spec/apruve/resources/order_spec.rb
164
172
  - spec/apruve/resources/payment_request_spec.rb
165
- - spec/apruve/resources/payment_spec.rb
166
173
  - spec/apruve/resources/subscription_adjustment_spec.rb
167
174
  - spec/apruve/resources/subscription_spec.rb
175
+ - spec/apruve/resources/webhook_endpoint_spec.rb
168
176
  - spec/apruve/response/apruve_exception_middleware_spec.rb
169
177
  - spec/spec_helper.rb
170
- has_rdoc:
@@ -1,43 +0,0 @@
1
- module Apruve
2
- class Payment < Apruve::ApruveObject
3
- attr_accessor :id, :payment_request_id, :status, :status, :amount_cents, :currency, :merchant_notes,
4
- :payment_items, :api_url, :view_url, :created_at, :updated_at
5
-
6
- def self.find(payment_request_id, id)
7
- response = Apruve.get("payment_requests/#{payment_request_id}/payments/#{id}")
8
- Payment.new(response.body)
9
- end
10
-
11
- def initialize(params)
12
- super
13
- # hydrate payment items if appropriate
14
- if @payment_items.nil?
15
- @payment_items = []
16
- elsif @payment_items.is_a?(Array) && @payment_items.first.is_a?(Hash)
17
- hydrated_items = []
18
- @payment_items.each do |item|
19
- hydrated_items << Apruve::LineItem.new(item)
20
- end
21
- @payment_items = hydrated_items
22
- end
23
- @currency = Apruve.default_currency if currency.nil?
24
- end
25
-
26
- def validate
27
- errors = []
28
- errors << 'payment_request_id must be set' if payment_request_id.nil?
29
- errors << 'amount_cents must be set' if amount_cents.nil?
30
- raise Apruve::ValidationError.new(errors) if errors.length > 0
31
- end
32
-
33
- def save!
34
- validate
35
- response = Apruve.post("payment_requests/#{self.payment_request_id}/payments", self.to_json)
36
- self.id = response.body['id']
37
- self.status = response.body['status']
38
- self.api_url = response.body['api_url']
39
- self.view_url = response.body['view_url']
40
- self.status
41
- end
42
- end
43
- end
@@ -1,7 +0,0 @@
1
- module Apruve
2
- class PaymentItem < Apruve::ApruveObject
3
- attr_accessor :title, :amount_cents, :price_ea_cents, :quantity, :description, :variant_info, :sku,
4
- :vendor, :view_product_url
5
-
6
- end
7
- end
@@ -1,59 +0,0 @@
1
- module Apruve
2
- class PaymentRequest < Apruve::ApruveObject
3
- attr_accessor :id, :merchant_id, :merchant_order_id, :status, :amount_cents, :currency, :tax_cents,
4
- :shipping_cents, :line_items, :api_url, :view_url, :created_at, :updated_at, :expire_at
5
-
6
- def self.find(id)
7
- response = Apruve.get("payment_requests/#{id}")
8
- logger.debug response.body
9
- PaymentRequest.new(response.body)
10
- end
11
-
12
- def self.finalize!(id)
13
- response = Apruve.post("payment_requests/#{id}/finalize")
14
- logger.debug response.body
15
- response.body
16
- end
17
-
18
- def initialize(params)
19
- super
20
- # hydrate line items if appropriate
21
- if @line_items.nil?
22
- @line_items = []
23
- elsif @line_items.is_a?(Array) && @line_items.first.is_a?(Hash)
24
- hydrated_items = []
25
- @line_items.each do |item|
26
- hydrated_items << Apruve::LineItem.new(item)
27
- end
28
- @line_items = hydrated_items
29
- end
30
- end
31
-
32
- def validate
33
- errors = []
34
- errors << 'merchant_id must be set' if merchant_id.nil?
35
- raise Apruve::ValidationError.new(errors) if errors.length > 0
36
- end
37
-
38
- def value_string
39
- # add each field in the PR
40
- str = "#{self.merchant_id}#{self.merchant_order_id}#{self.amount_cents}#{self.currency}#{self.tax_cents}#{self.shipping_cents}#{self.expire_at}"
41
-
42
- # add the line items
43
- self.line_items.each do |item|
44
- str += "#{item.title}#{item.plan_code}#{item.amount_cents}#{item.price_ea_cents}"\
45
- "#{item.quantity}#{item.merchant_notes}#{item.description}#{item.variant_info}#{item.sku}"\
46
- "#{item.vendor}#{item.view_product_url}"
47
- end
48
-
49
- str
50
- end
51
-
52
- def secure_hash
53
- if Apruve.client.api_key.nil?
54
- raise 'api_key has not been set. Set it with Apruve.configure(api_key, environment, options)'
55
- end
56
- Digest::SHA256.hexdigest(Apruve.client.api_key+value_string)
57
- end
58
- end
59
- end
@@ -1,129 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Apruve::Payment do
4
- before :each do
5
- Apruve.configure('f5fbe71d68772d1f562ed6f598b995b3', 'local')
6
- end
7
-
8
- let (:amount_cents) { 12340 }
9
- let (:notes) { 'notes from merchant' }
10
- let (:payment_request_id) { '9999' }
11
- let (:payment) do
12
- Apruve::Payment.new(
13
- payment_request_id: payment_request_id,
14
- amount_cents: amount_cents,
15
- )
16
- end
17
- subject { payment }
18
-
19
- it { should respond_to(:id) }
20
- it { should respond_to(:payment_request_id) }
21
- it { should respond_to(:status) }
22
- it { should respond_to(:amount_cents) }
23
- it { should respond_to(:currency) }
24
- it { should respond_to(:merchant_notes) }
25
- it { should respond_to(:payment_items) }
26
- it { should respond_to(:api_url) }
27
- it { should respond_to(:view_url) }
28
- it { should respond_to(:created_at) }
29
- it { should respond_to(:updated_at) }
30
-
31
- describe '#to_json' do
32
- let(:expected) do
33
- '{"payment_request_id":"9999","amount_cents":12340,"payment_items":[],"currency":"USD"}'
34
- end
35
- its(:to_json) { should eq expected }
36
- end
37
-
38
- describe '#validate' do
39
- describe 'no errors' do
40
- it 'should not raise' do
41
- expect { payment.validate }.not_to raise_error
42
- end
43
- end
44
- describe 'errors' do
45
- before :each do
46
- payment.amount_cents = nil
47
- end
48
- it 'should raise on no merchant_id' do
49
- expect { payment.validate }.to raise_error(Apruve::ValidationError, '["amount_cents must be set"]')
50
- end
51
- end
52
- end
53
-
54
- describe '#find' do
55
- let (:id) { '89ea2488fe0a5c7bb38aa7f9b088874a' }
56
- let (:payment_request_id) { '8fdc91d337a28633deed058dd2d3fc90' }
57
- describe 'success' do
58
- let! (:stubs) do
59
- faraday_stubs do |stub|
60
- stub.get("/api/v3/payment_requests/#{payment_request_id}/payments/#{id}") { [200, {}, '{}'] }
61
- end
62
- end
63
- it 'should do a get' do
64
- Apruve::Payment.find(payment_request_id, id)
65
- stubs.verify_stubbed_calls
66
- end
67
- end
68
-
69
- describe 'not found' do
70
- let! (:stubs) do
71
- faraday_stubs do |stub|
72
- stub.get("/api/v3/payment_requests/#{payment_request_id}/payments/#{id}") { [404, {}, 'Not Found'] }
73
- end
74
- end
75
- it 'should raise' do
76
- expect { Apruve::Payment.find(payment_request_id, id) }.to raise_error(Apruve::NotFound)
77
- stubs.verify_stubbed_calls
78
- end
79
- end
80
- end
81
-
82
- describe '#save' do
83
- let (:id) { '89ea2488fe0a5c7bb38aa7f9b088874a' }
84
- let (:status) { 'pending' }
85
- let (:api_url) { Faker::Internet.url }
86
- let (:view_url) { Faker::Internet.url }
87
- let (:response) do
88
- {
89
- id: id,
90
- status: status,
91
- api_url: api_url,
92
- view_url: view_url
93
- }
94
- end
95
- describe 'success' do
96
- let! (:stubs) do
97
- faraday_stubs do |stub|
98
- stub.post(
99
- "/api/v3/payment_requests/#{payment_request_id}/payments",
100
- payment.to_json,
101
- ) { [200, {}, response.to_json] }
102
- end
103
- end
104
- it 'should do a post' do
105
- payment.save!
106
- expect(payment.id).to eq id
107
- expect(payment.status).to eq status
108
- expect(payment.api_url).to eq api_url
109
- expect(payment.view_url).to eq view_url
110
- stubs.verify_stubbed_calls
111
- end
112
- end
113
-
114
- describe 'payment request not found' do
115
- let! (:stubs) do
116
- faraday_stubs do |stub|
117
- stub.post(
118
- "/api/v3/payment_requests/#{payment_request_id}/payments",
119
- payment.to_json,
120
- ) { [404, {}, 'Not Found'] }
121
- end
122
- end
123
- it 'should raise' do
124
- expect { payment.save! }.to raise_error(Apruve::NotFound)
125
- stubs.verify_stubbed_calls
126
- end
127
- end
128
- end
129
- end