invoiced 1.3.0 → 2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 96fee7c8ec29ed8496d56e2ad01040962c4e793e03d8746cd1bb33dc9d455310
4
- data.tar.gz: 24c4ac4cf3671312b13da58e7ffb0798041ff50572d06e49ccbab047f2fe7130
3
+ metadata.gz: ae182e66a354b88c600800a9f0ef40ff695c44671c8b3bf2bd24100c61be2cdf
4
+ data.tar.gz: 3e0897128ea15e9086098560b4beac41e61a97e44a8ec8db542be023e7486e75
5
5
  SHA512:
6
- metadata.gz: f8a1fbde18532af461b0051de5a9a35beeefa4e6b9826cbbc65d8ce4ac73b91ce6d40d81c7b3d3fd6d68a989c74441cd0ee45d9cd1f8d9f1c7e50095a4666cd1
7
- data.tar.gz: 79c75b2a9c9654ecf61a520aaa1e1bc3c2802d189b540238dd4556108c00255e0d88155f2d96200c11a8ddb870b4ee16be2e8fb0cd1b34e6e80597b7661b357d
6
+ metadata.gz: 4039ccc2d285ddfcdd0c0aa97aae3c02330fdfdbcfddd1e4c559d0f08b101ec698f396baba1f33a075ac11e805318bad24dac55cbabaafd675e7654e33549424
7
+ data.tar.gz: e2d7415d9b996f6ef9b1a63e80f4b14ebbdf411a1fccff21f07803a53048f4922d3eb015162b7f606b7d7a37e471ad8ef40943a4628e7d8c459b819d65c1ec07
@@ -22,10 +22,10 @@ require 'invoiced/payment_source_object'
22
22
  require 'invoiced/attachment'
23
23
  require 'invoiced/bank_account'
24
24
  require 'invoiced/card'
25
- require 'invoiced/item'
26
25
  require 'invoiced/charge'
27
26
  require 'invoiced/contact'
28
27
  require 'invoiced/coupon'
28
+ require 'invoiced/credit_balance_adjustment'
29
29
  require 'invoiced/credit_note'
30
30
  require 'invoiced/customer'
31
31
  require 'invoiced/email'
@@ -33,6 +33,7 @@ require 'invoiced/estimate'
33
33
  require 'invoiced/event'
34
34
  require 'invoiced/file'
35
35
  require 'invoiced/invoice'
36
+ require 'invoiced/item'
36
37
  require 'invoiced/letter'
37
38
  require 'invoiced/line_item'
38
39
  require 'invoiced/note'
@@ -45,7 +46,6 @@ require 'invoiced/subscription'
45
46
  require 'invoiced/task'
46
47
  require 'invoiced/tax_rate'
47
48
  require 'invoiced/text_message'
48
- require 'invoiced/transaction'
49
49
 
50
50
  module Invoiced
51
51
  class Client
@@ -56,7 +56,7 @@ module Invoiced
56
56
  ReadTimeout = 80
57
57
 
58
58
  attr_reader :api_key, :api_url, :sandbox, :sso_key
59
- attr_reader :Item, :Charge, :Coupon, :CreditNote, :Customer, :Estimate, :Event, :File, :Invoice, :Note, :Payment, :Plan, :Refund, :Subscription, :Task, :TaxRate, :Transaction
59
+ attr_reader :Item, :Charge, :Coupon, :CreditBalanceAdjustment, :CreditNote, :Customer, :Estimate, :Event, :File, :Invoice, :Note, :Payment, :Plan, :Refund, :Subscription, :Task, :TaxRate
60
60
 
61
61
  def initialize(api_key, sandbox=false, sso_key=false)
62
62
  @api_key = api_key
@@ -68,6 +68,7 @@ module Invoiced
68
68
  @Item = Invoiced::Item.new(self)
69
69
  @Charge = Invoiced::Charge.new(self)
70
70
  @Coupon = Invoiced::Coupon.new(self)
71
+ @CreditBalanceAdjustment = Invoiced::CreditBalanceAdjustment.new(self)
71
72
  @CreditNote = Invoiced::CreditNote.new(self)
72
73
  @Customer = Invoiced::Customer.new(self)
73
74
  @Estimate = Invoiced::Estimate.new(self)
@@ -81,7 +82,6 @@ module Invoiced
81
82
  @Subscription = Invoiced::Subscription.new(self)
82
83
  @Task = Invoiced::Task.new(self)
83
84
  @TaxRate = Invoiced::TaxRate.new(self)
84
- @Transaction = Invoiced::Transaction.new(self)
85
85
  end
86
86
 
87
87
  def request(method, endpoint, params={}, opts={})
@@ -0,0 +1,10 @@
1
+ module Invoiced
2
+ class CreditBalanceAdjustment < Object
3
+ include Invoiced::Operations::List
4
+ include Invoiced::Operations::Create
5
+ include Invoiced::Operations::Update
6
+ include Invoiced::Operations::Delete
7
+
8
+ OBJECT_NAME = 'credit_balance_adjustment'
9
+ end
10
+ end
@@ -1,3 +1,3 @@
1
1
  module Invoiced
2
- VERSION = '1.3.0'
2
+ VERSION = '2.0.0'
3
3
  end
@@ -0,0 +1,90 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ module Invoiced
4
+ class CreditBalanceAdjustmentTest < Test::Unit::TestCase
5
+ should "return the api endpoint" do
6
+ creditBalanceAdjustment = CreditBalanceAdjustment.new(@client, "test")
7
+ assert_equal('/credit_balance_adjustment/test', creditBalanceAdjustment.endpoint())
8
+ end
9
+
10
+ should "create a credit balance adjustments" do
11
+ mockResponse = mock('RestClient::Response')
12
+ mockResponse.stubs(:code).returns(201)
13
+ mockResponse.stubs(:body).returns('{"id":"test","amount":800}')
14
+ mockResponse.stubs(:headers).returns({})
15
+
16
+ RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
17
+
18
+ creditBalanceAdjustment = @client.CreditBalanceAdjustment.create({:amount => 800})
19
+
20
+ assert_instance_of(Invoiced::CreditBalanceAdjustment, creditBalanceAdjustment)
21
+ assert_equal("test", creditBalanceAdjustment.id)
22
+ assert_equal(800, creditBalanceAdjustment.amount)
23
+ end
24
+
25
+ should "retrieve a credit balance adjustments" do
26
+ mockResponse = mock('RestClient::Response')
27
+ mockResponse.stubs(:code).returns(200)
28
+ mockResponse.stubs(:body).returns('{"id":"test","amount":800}')
29
+ mockResponse.stubs(:headers).returns({})
30
+
31
+ RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
32
+
33
+ creditBalanceAdjustment = @client.CreditBalanceAdjustment.retrieve("test")
34
+
35
+ assert_instance_of(Invoiced::CreditBalanceAdjustment, creditBalanceAdjustment)
36
+ assert_equal("test", creditBalanceAdjustment.id)
37
+ assert_equal(800, creditBalanceAdjustment.amount)
38
+ end
39
+
40
+ should "not update a credit balance adjustments when no params" do
41
+ creditBalanceAdjustment = CreditBalanceAdjustment.new(@client, "test")
42
+ assert_false(creditBalanceAdjustment.save)
43
+ end
44
+
45
+ should "update a credit balance adjustments" do
46
+ mockResponse = mock('RestClient::Response')
47
+ mockResponse.stubs(:code).returns(200)
48
+ mockResponse.stubs(:body).returns('{"id":"test","amount":800}')
49
+ mockResponse.stubs(:headers).returns({})
50
+
51
+ RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
52
+
53
+ creditBalanceAdjustment = CreditBalanceAdjustment.new(@client, "test")
54
+ creditBalanceAdjustment.amount = 800
55
+ assert_true(creditBalanceAdjustment.save)
56
+
57
+ assert_equal(creditBalanceAdjustment.amount, 800)
58
+ end
59
+
60
+ should "list all credit balance adjustments" do
61
+ mockResponse = mock('RestClient::Response')
62
+ mockResponse.stubs(:code).returns(200)
63
+ mockResponse.stubs(:body).returns('[{"id":"test","amount":800}]')
64
+ mockResponse.stubs(:headers).returns(:x_total_count => 15, :link => '<https://api.invoiced.com/catalog_items?per_page=25&page=1>; rel="self", <https://api.invoiced.com/catalog_items?per_page=25&page=1>; rel="first", <https://api.invoiced.com/catalog_items?per_page=25&page=1>; rel="last"')
65
+
66
+ RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
67
+
68
+ creditBalanceAdjustments, metadata = @client.CreditBalanceAdjustment.list
69
+
70
+ assert_instance_of(Array, creditBalanceAdjustments)
71
+ assert_equal(1, creditBalanceAdjustments.length)
72
+ assert_equal("test", creditBalanceAdjustments[0].id)
73
+
74
+ assert_instance_of(Invoiced::List, metadata)
75
+ assert_equal(15, metadata.total_count)
76
+ end
77
+
78
+ should "delete a credit balance adjustments" do
79
+ mockResponse = mock('RestClient::Response')
80
+ mockResponse.stubs(:code).returns(204)
81
+ mockResponse.stubs(:body).returns('')
82
+ mockResponse.stubs(:headers).returns({})
83
+
84
+ RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
85
+
86
+ creditBalanceAdjustment = CreditBalanceAdjustment.new(@client, "test")
87
+ assert_true(creditBalanceAdjustment.delete)
88
+ end
89
+ end
90
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invoiced
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared King
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-08 00:00:00.000000000 Z
11
+ date: 2020-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -58,6 +58,7 @@ files:
58
58
  - lib/invoiced/charge.rb
59
59
  - lib/invoiced/contact.rb
60
60
  - lib/invoiced/coupon.rb
61
+ - lib/invoiced/credit_balance_adjustment.rb
61
62
  - lib/invoiced/credit_note.rb
62
63
  - lib/invoiced/customer.rb
63
64
  - lib/invoiced/email.rb
@@ -91,12 +92,12 @@ files:
91
92
  - lib/invoiced/task.rb
92
93
  - lib/invoiced/tax_rate.rb
93
94
  - lib/invoiced/text_message.rb
94
- - lib/invoiced/transaction.rb
95
95
  - lib/invoiced/util.rb
96
96
  - lib/invoiced/version.rb
97
97
  - test/invoiced/charge_test.rb
98
98
  - test/invoiced/contact_test.rb
99
99
  - test/invoiced/coupon_test.rb
100
+ - test/invoiced/credit_balance_adjustment.rb
100
101
  - test/invoiced/credit_note_test.rb
101
102
  - test/invoiced/customer_test.rb
102
103
  - test/invoiced/error_test.rb
@@ -117,7 +118,6 @@ files:
117
118
  - test/invoiced/subscription_test.rb
118
119
  - test/invoiced/task_test.rb
119
120
  - test/invoiced/tax_rate_test.rb
120
- - test/invoiced/transaction_test.rb
121
121
  - test/invoiced/util_test.rb
122
122
  - test/test_helper.rb
123
123
  homepage: https://invoiced.com/docs/dev
@@ -147,6 +147,7 @@ test_files:
147
147
  - test/invoiced/charge_test.rb
148
148
  - test/invoiced/contact_test.rb
149
149
  - test/invoiced/coupon_test.rb
150
+ - test/invoiced/credit_balance_adjustment.rb
150
151
  - test/invoiced/credit_note_test.rb
151
152
  - test/invoiced/customer_test.rb
152
153
  - test/invoiced/error_test.rb
@@ -167,6 +168,5 @@ test_files:
167
168
  - test/invoiced/subscription_test.rb
168
169
  - test/invoiced/task_test.rb
169
170
  - test/invoiced/tax_rate_test.rb
170
- - test/invoiced/transaction_test.rb
171
171
  - test/invoiced/util_test.rb
172
172
  - test/test_helper.rb
@@ -1,30 +0,0 @@
1
- module Invoiced
2
- class Transaction < Object
3
- include Invoiced::Operations::List
4
- include Invoiced::Operations::Create
5
- include Invoiced::Operations::Update
6
- include Invoiced::Operations::Delete
7
-
8
- OBJECT_NAME = 'transaction'
9
-
10
- def send(params={}, opts={})
11
- response = @client.request(:post, "#{self.endpoint()}/emails", params, opts)
12
-
13
- # build email objects
14
- email = Email.new(@client)
15
- Util.build_objects(email, response[:body])
16
- end
17
-
18
- def refund(params={}, opts={})
19
- response = @client.request(:post, "#{self.endpoint()}/refunds", params, opts)
20
-
21
- Util.convert_to_object(self, response[:body])
22
- end
23
-
24
- def initiate_charge(params={}, opts={})
25
- response = @client.request(:post, "/charges", params, opts)
26
-
27
- Util.convert_to_object(self, response[:body])
28
- end
29
- end
30
- end
@@ -1,137 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- module Invoiced
4
- class TransactionTest < Test::Unit::TestCase
5
- should "return the api endpoint" do
6
- transaction = Transaction.new(@client, 123)
7
- assert_equal('/transactions/123', transaction.endpoint())
8
- end
9
-
10
- should "create a transaction" do
11
- mockResponse = mock('RestClient::Response')
12
- mockResponse.stubs(:code).returns(201)
13
- mockResponse.stubs(:body).returns('{"id":123,"amount":100}')
14
- mockResponse.stubs(:headers).returns({})
15
-
16
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
17
-
18
- transaction = @client.Transaction.create({:amount => 800})
19
-
20
- assert_instance_of(Invoiced::Transaction, transaction)
21
- assert_equal(123, transaction.id)
22
- assert_equal(100, transaction.amount)
23
- end
24
-
25
- should "retrieve a transaction" do
26
- mockResponse = mock('RestClient::Response')
27
- mockResponse.stubs(:code).returns(200)
28
- mockResponse.stubs(:body).returns('{"id":123,"amount":100}')
29
- mockResponse.stubs(:headers).returns({})
30
-
31
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
32
-
33
- transaction = @client.Transaction.retrieve(123)
34
-
35
- assert_instance_of(Invoiced::Transaction, transaction)
36
- assert_equal(123, transaction.id)
37
- assert_equal(100, transaction.amount)
38
- end
39
-
40
- should "not update a transaction when no params" do
41
- transaction = Transaction.new(@client, 123)
42
- assert_false(transaction.save)
43
- end
44
-
45
- should "update a transaction" do
46
- mockResponse = mock('RestClient::Response')
47
- mockResponse.stubs(:code).returns(200)
48
- mockResponse.stubs(:body).returns('{"id":123,"sent":true}')
49
- mockResponse.stubs(:headers).returns({})
50
-
51
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
52
-
53
- transaction = Transaction.new(@client, 123)
54
- transaction.sent = true
55
- assert_true(transaction.save)
56
-
57
- assert_true(transaction.sent)
58
- end
59
-
60
- should "list all transactions" do
61
- mockResponse = mock('RestClient::Response')
62
- mockResponse.stubs(:code).returns(200)
63
- mockResponse.stubs(:body).returns('[{"id":123,"amount":100}]')
64
- mockResponse.stubs(:headers).returns(:x_total_count => 15, :link => '<https://api.invoiced.com/transactions?per_page=25&page=1>; rel="self", <https://api.invoiced.com/transactions?per_page=25&page=1>; rel="first", <https://api.invoiced.com/transactions?per_page=25&page=1>; rel="last"')
65
-
66
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
67
-
68
- transactions, metadata = @client.Transaction.list
69
-
70
- assert_instance_of(Array, transactions)
71
- assert_equal(1, transactions.length)
72
- assert_equal(123, transactions[0].id)
73
-
74
- assert_instance_of(Invoiced::List, metadata)
75
- assert_equal(15, metadata.total_count)
76
- end
77
-
78
- should "delete a transaction" do
79
- mockResponse = mock('RestClient::Response')
80
- mockResponse.stubs(:code).returns(204)
81
- mockResponse.stubs(:body).returns('')
82
- mockResponse.stubs(:headers).returns({})
83
-
84
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
85
-
86
- transaction = Transaction.new(@client, 123)
87
- assert_true(transaction.delete)
88
- end
89
-
90
- should "send a payment receipt" do
91
- mockResponse = mock('RestClient::Response')
92
- mockResponse.stubs(:code).returns(201)
93
- mockResponse.stubs(:body).returns('[{"id":4567,"email":"test@example.com"}]')
94
- mockResponse.stubs(:headers).returns({})
95
-
96
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
97
-
98
- transaction = Transaction.new(@client, 1234)
99
- emails = transaction.send
100
-
101
- assert_instance_of(Array, emails)
102
- assert_equal(1, emails.length)
103
- assert_instance_of(Invoiced::Email, emails[0])
104
- assert_equal(4567, emails[0].id)
105
- end
106
-
107
- should "refund a transaction" do
108
- mockResponse = mock('RestClient::Response')
109
- mockResponse.stubs(:code).returns(201)
110
- mockResponse.stubs(:body).returns('{"id":456}')
111
- mockResponse.stubs(:headers).returns({})
112
-
113
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
114
-
115
- transaction = Transaction.new(@client, 1234)
116
- refund = transaction.refund({:amount => 800})
117
-
118
- assert_instance_of(Invoiced::Transaction, refund)
119
- assert_equal(456, refund.id)
120
- end
121
-
122
- should "initiate a charge" do
123
- mockResponse = mock('RestClient::Response')
124
- mockResponse.stubs(:code).returns(201)
125
- mockResponse.stubs(:body).returns('{"id":"a1b2c3","amount":100,"object":"charge"}')
126
- mockResponse.stubs(:headers).returns({})
127
-
128
- RestClient::Request.any_instance.expects(:execute).returns(mockResponse)
129
-
130
- transaction = Transaction.new(@client, 1234)
131
- charge = transaction.initiate_charge(:amount => 100, :payment_source_type => "card")
132
-
133
- assert_instance_of(Invoiced::Transaction, charge)
134
- assert_equal(charge.id, "a1b2c3")
135
- end
136
- end
137
- end