From ef6d3ea9562909d9bace8b420153f2d4a0e12658 Mon Sep 17 00:00:00 2001 From: Carson Reinke Date: Wed, 10 Aug 2016 09:50:26 -0400 Subject: [PATCH] Adding invoice payment creation --- lib/chargify_api_ares/resources/invoice.rb | 10 ++++++++++ spec/resources/invoice_spec.rb | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/chargify_api_ares/resources/invoice.rb b/lib/chargify_api_ares/resources/invoice.rb index 604cc96..715cd63 100644 --- a/lib/chargify_api_ares/resources/invoice.rb +++ b/lib/chargify_api_ares/resources/invoice.rb @@ -1,6 +1,12 @@ module Chargify class Invoice < Base + class Payment < Base + include ResponseHelper + + self.prefix = '/invoices/:invoice_id/' + end + def self.find_by_invoice_id(id) find(:first, {:params => {:id => id}}) end @@ -32,5 +38,9 @@ def self.find_pdf(scope, options = {}) path = element_path(scope, prefix_options, query_options).gsub(/\.\w+$/, ".pdf") connection.get(path, headers).body end + + def payment(attrs = {}) + Payment.create(attrs.merge({:invoice_id => self.id})) + end end end diff --git a/spec/resources/invoice_spec.rb b/spec/resources/invoice_spec.rb index f4387c2..28d9934 100644 --- a/spec/resources/invoice_spec.rb +++ b/spec/resources/invoice_spec.rb @@ -114,3 +114,14 @@ expect(invoice.attributes).to eql({ "id" => 99, "subscription_id" => 1, "state" => "partial" }) end end + +describe Chargify::Invoice, '#payment', :fake_resource do + let(:invoice_id) {1} + let(:invoice) { Chargify::Invoice.create(:id => invoice_id) } + let(:invoice_payment) { Chargify::Invoice::Payment.create(:invoice_id => invoice_id, :amount_in_cents => 10000, :memo => 'lorem ipsum') } + + it 'creates payment' do + payment = invoice.payment(:amount_in_cents => 10000, :memo => 'lorem ipsum') + payment.amount_in_cents.should == 10000 + end +end \ No newline at end of file