chargify_api_ares 1.4.4 → 1.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/HISTORY.md +5 -0
- data/chargify_api_ares.gemspec +3 -3
- data/gemfiles/rails_3.gemfile.lock +2 -2
- data/gemfiles/rails_4.1.gemfile.lock +4 -4
- data/gemfiles/rails_4.gemfile.lock +4 -4
- data/lib/chargify_api_ares/resources/invoice.rb +8 -0
- data/lib/chargify_api_ares/resources/subscription.rb +11 -0
- data/spec/resources/invoice_spec.rb +16 -0
- data/spec/resources/subscription_spec.rb +109 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 517070c73c5b29d20aa4e64911abf29ab10e29a5
|
4
|
+
data.tar.gz: 3c43ad57044a7ec35dca4c8ef2880fee801960ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 631f7b0c2d48cd712c8fdd5a59494b2821e2414ac61d9f94694297626dc78a8b544f8593bbc6a471517cca025b9f78e81a02af525aa66d5f5d5d7917a2773df8
|
7
|
+
data.tar.gz: a86e0a7db2d4f7dc0e069860d3f45719aec38abd2c85ec4146e056acb1df5a9dc2279e8e186b901065971b1c4dc8efeba3667493d9c945f09130785a34d23264
|
data/Gemfile.lock
CHANGED
data/HISTORY.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## 1.4.5 / July 14 2016
|
2
|
+
|
3
|
+
* Adds ability to find pdfs from invoices, show subscription invoices [PR 135] (https://github.com/chargify/chargify_api_ares/pull/135)
|
4
|
+
|
5
|
+
|
1
6
|
## 1.4.4 / Jun 3 2016
|
2
7
|
|
3
8
|
* Adds support for External Payments [PR 128](https://github.com/chargify/chargify_api_ares/pull/128)
|
data/chargify_api_ares.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.specification_version = 3 if s.respond_to? :specification_version=
|
3
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
3
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
4
4
|
s.rubygems_version = '1.3.7'
|
5
5
|
|
6
6
|
s.name = 'chargify_api_ares'
|
7
|
-
s.version = '1.4.
|
8
|
-
s.date = '2016-
|
7
|
+
s.version = '1.4.5'
|
8
|
+
s.date = '2016-07-14'
|
9
9
|
s.summary = 'A Chargify API wrapper for Ruby using ActiveResource'
|
10
10
|
s.description = ''
|
11
11
|
s.authors = ["Chargify Development Team"]
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../
|
3
3
|
specs:
|
4
|
-
chargify_api_ares (1.4.
|
4
|
+
chargify_api_ares (1.4.5)
|
5
5
|
activeresource (>= 3.2.16)
|
6
6
|
|
7
7
|
GEM
|
@@ -27,10 +27,10 @@ GEM
|
|
27
27
|
activemodel (= 4.1.6)
|
28
28
|
activesupport (= 4.1.6)
|
29
29
|
arel (~> 5.0.0)
|
30
|
-
activeresource (4.
|
30
|
+
activeresource (4.1.0)
|
31
31
|
activemodel (~> 4.0)
|
32
32
|
activesupport (~> 4.0)
|
33
|
-
rails-observers (~> 0.1.
|
33
|
+
rails-observers (~> 0.1.2)
|
34
34
|
activesupport (4.1.6)
|
35
35
|
i18n (~> 0.6, >= 0.6.9)
|
36
36
|
json (~> 1.7, >= 1.7.7)
|
@@ -128,4 +128,4 @@ DEPENDENCIES
|
|
128
128
|
vcr
|
129
129
|
|
130
130
|
BUNDLED WITH
|
131
|
-
1.
|
131
|
+
1.12.5
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../
|
3
3
|
specs:
|
4
|
-
chargify_api_ares (1.4.
|
4
|
+
chargify_api_ares (1.4.5)
|
5
5
|
activeresource (>= 3.2.16)
|
6
6
|
|
7
7
|
GEM
|
@@ -25,10 +25,10 @@ GEM
|
|
25
25
|
activesupport (= 4.0.12)
|
26
26
|
arel (~> 4.0.0)
|
27
27
|
activerecord-deprecated_finders (1.0.3)
|
28
|
-
activeresource (4.
|
28
|
+
activeresource (4.1.0)
|
29
29
|
activemodel (~> 4.0)
|
30
30
|
activesupport (~> 4.0)
|
31
|
-
rails-observers (~> 0.1.
|
31
|
+
rails-observers (~> 0.1.2)
|
32
32
|
activesupport (4.0.12)
|
33
33
|
i18n (~> 0.6, >= 0.6.9)
|
34
34
|
minitest (~> 4.2)
|
@@ -122,4 +122,4 @@ DEPENDENCIES
|
|
122
122
|
vcr
|
123
123
|
|
124
124
|
BUNDLED WITH
|
125
|
-
1.
|
125
|
+
1.12.5
|
@@ -16,5 +16,13 @@ module Chargify
|
|
16
16
|
def self.unpaid
|
17
17
|
find(:all, {:params => {:state => "unpaid"}})
|
18
18
|
end
|
19
|
+
|
20
|
+
# Returns raw PDF data. Usage example:
|
21
|
+
# File.open(file_path, 'wb+'){ |f| f.write Chargify::Invoice.find_pdf(invoice.id) }
|
22
|
+
def self.find_pdf(scope, options = {})
|
23
|
+
prefix_options, query_options = split_options(options[:params])
|
24
|
+
path = element_path(scope, prefix_options, query_options).gsub(/\.\w+$/, ".pdf")
|
25
|
+
connection.get(path, headers).body
|
26
|
+
end
|
19
27
|
end
|
20
28
|
end
|
@@ -123,6 +123,17 @@ module Chargify
|
|
123
123
|
Statement.find(:all, :params => params)
|
124
124
|
end
|
125
125
|
|
126
|
+
def invoices(params = {})
|
127
|
+
params.merge!(subscription_id: self.id)
|
128
|
+
Invoice.find(:all, params: params)
|
129
|
+
end
|
130
|
+
|
131
|
+
def invoice(id)
|
132
|
+
invoice = Chargify::Invoice.find(id)
|
133
|
+
raise ActiveResource::ResourceNotFound.new(nil) if (invoice.subscription_id != self.id)
|
134
|
+
invoice
|
135
|
+
end
|
136
|
+
|
126
137
|
def transactions(params = {})
|
127
138
|
params.merge!(:subscription_id => self.id)
|
128
139
|
Transaction.find(:all, :params => params)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Chargify::Invoice, :fake_resource do
|
4
|
+
|
5
|
+
describe '.find_pdf' do
|
6
|
+
before do
|
7
|
+
FakeWeb.register_uri(:get, "#{test_domain}/invoices/1.pdf", body: 'fake_pdf')
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'downloads pdf statement' do
|
11
|
+
pdf = Chargify::Invoice.find_pdf(1)
|
12
|
+
pdf.should == 'fake_pdf'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -145,4 +145,113 @@ describe Chargify::Subscription, :fake_resource do
|
|
145
145
|
end
|
146
146
|
end
|
147
147
|
end
|
148
|
+
|
149
|
+
describe "#statements" do
|
150
|
+
let(:subscription_id) {1}
|
151
|
+
let(:statements) do
|
152
|
+
[{id: 1234}, {id: 5678}]
|
153
|
+
end
|
154
|
+
|
155
|
+
before do
|
156
|
+
FakeWeb.register_uri(
|
157
|
+
:get,
|
158
|
+
"#{test_domain}/subscriptions/#{subscription_id}/statements.xml",
|
159
|
+
status: 201,
|
160
|
+
body: statements.to_xml
|
161
|
+
)
|
162
|
+
end
|
163
|
+
|
164
|
+
it "lists statements" do
|
165
|
+
subscription = build(:subscription, id: subscription_id)
|
166
|
+
expect(subscription.statements.first.id).to eq(1234)
|
167
|
+
expect(subscription.statements.last.id).to eq(5678)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
describe "#statement" do
|
172
|
+
let(:statement_id) {1234}
|
173
|
+
let(:subscription_id) {4242}
|
174
|
+
let(:statement) do
|
175
|
+
{id: statement_id, subscription_id: subscription_id}
|
176
|
+
end
|
177
|
+
|
178
|
+
before do
|
179
|
+
FakeWeb.register_uri(
|
180
|
+
:get,
|
181
|
+
"#{test_domain}/statements/#{statement_id}.xml",
|
182
|
+
status: 201,
|
183
|
+
body: statement.to_xml
|
184
|
+
)
|
185
|
+
end
|
186
|
+
|
187
|
+
it "finds a statement" do
|
188
|
+
subscription = build(:subscription, id: subscription_id)
|
189
|
+
found = subscription.statement(statement_id)
|
190
|
+
expect(found.id).to eql(statement_id)
|
191
|
+
expect(found.subscription_id).to eql(subscription_id)
|
192
|
+
end
|
193
|
+
|
194
|
+
context "when attempting to query a statement not under this subscription" do
|
195
|
+
it "raises an error" do
|
196
|
+
subscription = build(:subscription, id: 9999)
|
197
|
+
expect {subscription.statement(statement_id)}.to raise_error(ActiveResource::ResourceNotFound)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
|
203
|
+
describe "#invoices" do
|
204
|
+
let(:subscription_id) {1}
|
205
|
+
let(:invoices) do
|
206
|
+
[{id: 1234}, {id: 5678}]
|
207
|
+
end
|
208
|
+
|
209
|
+
before do
|
210
|
+
# Note this uses the invoices endpoint, passing subscription id as a param
|
211
|
+
FakeWeb.register_uri(
|
212
|
+
:get,
|
213
|
+
"#{test_domain}/invoices.xml?subscription_id=#{subscription_id}",
|
214
|
+
status: 201,
|
215
|
+
body: invoices.to_xml
|
216
|
+
)
|
217
|
+
end
|
218
|
+
|
219
|
+
it "lists invoices" do
|
220
|
+
subscription = build(:subscription, id: subscription_id)
|
221
|
+
expect(subscription.invoices.first.id).to eq(1234)
|
222
|
+
expect(subscription.invoices.last.id).to eq(5678)
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
describe "#invoice" do
|
227
|
+
let(:invoice_id) {1234}
|
228
|
+
let(:subscription_id) {4242}
|
229
|
+
let(:invoice) do
|
230
|
+
{id: invoice_id, subscription_id: subscription_id}
|
231
|
+
end
|
232
|
+
|
233
|
+
before do
|
234
|
+
FakeWeb.register_uri(
|
235
|
+
:get,
|
236
|
+
"#{test_domain}/invoices/#{invoice_id}.xml",
|
237
|
+
status: 201,
|
238
|
+
body: invoice.to_xml
|
239
|
+
)
|
240
|
+
end
|
241
|
+
|
242
|
+
it "finds an invoice" do
|
243
|
+
subscription = build(:subscription, id: subscription_id)
|
244
|
+
found = subscription.invoice(invoice_id)
|
245
|
+
expect(found.id).to eql(invoice_id)
|
246
|
+
expect(found.subscription_id).to eql(subscription_id)
|
247
|
+
end
|
248
|
+
|
249
|
+
context "when attempting to query an invoice not under this subscription" do
|
250
|
+
it "raises an error" do
|
251
|
+
subscription = build(:subscription, id: 9999)
|
252
|
+
expect {subscription.invoice(invoice_id)}.to raise_error(ActiveResource::ResourceNotFound)
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
148
257
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chargify_api_ares
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chargify Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeresource
|
@@ -233,6 +233,7 @@ files:
|
|
233
233
|
- spec/resources/customer_metadata_spec.rb
|
234
234
|
- spec/resources/customer_metafield_spec.rb
|
235
235
|
- spec/resources/customer_spec.rb
|
236
|
+
- spec/resources/invoice_spec.rb
|
236
237
|
- spec/resources/migration_preview_spec.rb
|
237
238
|
- spec/resources/migration_spec.rb
|
238
239
|
- spec/resources/product_family_component_spec.rb
|
@@ -266,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
266
267
|
version: '0'
|
267
268
|
requirements: []
|
268
269
|
rubyforge_project:
|
269
|
-
rubygems_version: 2.
|
270
|
+
rubygems_version: 2.4.8
|
270
271
|
signing_key:
|
271
272
|
specification_version: 3
|
272
273
|
summary: A Chargify API wrapper for Ruby using ActiveResource
|
@@ -286,6 +287,7 @@ test_files:
|
|
286
287
|
- spec/resources/customer_metadata_spec.rb
|
287
288
|
- spec/resources/customer_metafield_spec.rb
|
288
289
|
- spec/resources/customer_spec.rb
|
290
|
+
- spec/resources/invoice_spec.rb
|
289
291
|
- spec/resources/migration_preview_spec.rb
|
290
292
|
- spec/resources/migration_spec.rb
|
291
293
|
- spec/resources/product_family_component_spec.rb
|