chargify_api_ares 1.4.4 → 1.4.5
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/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
|