killbill-client 0.7.2 → 0.7.3

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.
Files changed (81) hide show
  1. checksums.yaml +5 -13
  2. data/lib/killbill_client/api/api.rb +2 -2
  3. data/lib/killbill_client/api/errors.rb +1 -1
  4. data/lib/killbill_client/api/net_http_adapter.rb +21 -1
  5. data/lib/killbill_client/models/account.rb +60 -112
  6. data/lib/killbill_client/models/account_timeline.rb +1 -1
  7. data/lib/killbill_client/models/bundle.rb +35 -34
  8. data/lib/killbill_client/models/catalog.rb +34 -0
  9. data/lib/killbill_client/models/custom_field.rb +3 -11
  10. data/lib/killbill_client/models/gen/account_attributes.rb +3 -3
  11. data/lib/killbill_client/models/gen/account_email_attributes.rb +3 -3
  12. data/lib/killbill_client/models/gen/account_timeline_attributes.rb +3 -3
  13. data/lib/killbill_client/models/gen/audit_log_attributes.rb +3 -3
  14. data/lib/killbill_client/models/gen/billing_exception_attributes.rb +3 -3
  15. data/lib/killbill_client/models/gen/bundle_attributes.rb +3 -3
  16. data/lib/killbill_client/models/gen/bundle_timeline_attributes.rb +3 -3
  17. data/lib/killbill_client/models/gen/catalog_attributes_simple.rb +3 -3
  18. data/lib/killbill_client/models/gen/credit_attributes.rb +3 -3
  19. data/lib/killbill_client/models/gen/custom_field_attributes.rb +3 -3
  20. data/lib/killbill_client/models/gen/deleted_event_subscription_attributes.rb +3 -3
  21. data/lib/killbill_client/models/gen/direct_payment_attributes.rb +45 -0
  22. data/lib/killbill_client/models/gen/direct_transaction_attributes.rb +47 -0
  23. data/lib/killbill_client/models/gen/event_subscription_attributes.rb +3 -3
  24. data/lib/killbill_client/models/gen/{chargeback_attributes.rb → gateway_notification_attributes.rb} +9 -12
  25. data/lib/killbill_client/models/gen/{refund_attributes.rb → hosted_payment_page_billing_address_attributes.rb} +10 -14
  26. data/lib/killbill_client/models/gen/hosted_payment_page_customer_attributes.rb +36 -0
  27. data/lib/killbill_client/models/gen/hosted_payment_page_fields_attributes.rb +33 -0
  28. data/lib/killbill_client/models/gen/hosted_payment_page_form_descriptor_attributes.rb +37 -0
  29. data/lib/killbill_client/models/gen/invoice_attributes.rb +3 -3
  30. data/lib/killbill_client/models/gen/invoice_email_attributes.rb +3 -3
  31. data/lib/killbill_client/models/gen/invoice_item_attributes.rb +3 -3
  32. data/lib/killbill_client/models/gen/invoice_payment_attributes.rb +46 -0
  33. data/lib/killbill_client/models/gen/invoice_payment_transaction_attributes.rb +49 -0
  34. data/lib/killbill_client/models/gen/new_event_subscription_attributes.rb +3 -3
  35. data/lib/killbill_client/models/gen/notification_attributes.rb +3 -3
  36. data/lib/killbill_client/models/gen/overdue_state_attributes.rb +3 -3
  37. data/lib/killbill_client/models/gen/payment_attributes.rb +11 -16
  38. data/lib/killbill_client/models/gen/payment_method_attributes.rb +4 -3
  39. data/lib/killbill_client/models/gen/payment_method_plugin_detail_attributes.rb +3 -15
  40. data/lib/killbill_client/models/gen/payment_transaction_attributes.rb +47 -0
  41. data/lib/killbill_client/models/gen/phase_attributes.rb +3 -3
  42. data/lib/killbill_client/models/gen/plan_attributes.rb +3 -3
  43. data/lib/killbill_client/models/gen/plan_detail_attributes.rb +3 -3
  44. data/lib/killbill_client/models/gen/{payment_method_properties.rb → plugin_property_attributes.rb} +4 -4
  45. data/lib/killbill_client/models/gen/price_attributes.rb +3 -3
  46. data/lib/killbill_client/models/gen/product_attributes.rb +3 -3
  47. data/lib/killbill_client/models/gen/require_gen.rb +12 -6
  48. data/lib/killbill_client/models/gen/session_attributes.rb +3 -3
  49. data/lib/killbill_client/models/gen/stack_trace_element_attributes.rb +3 -3
  50. data/lib/killbill_client/models/gen/subject_attributes.rb +3 -3
  51. data/lib/killbill_client/models/gen/subscription_attributes.rb +3 -3
  52. data/lib/killbill_client/models/gen/tag_attributes.rb +3 -3
  53. data/lib/killbill_client/models/gen/tag_definition_attributes.rb +3 -3
  54. data/lib/killbill_client/models/gen/tenant_attributes.rb +3 -3
  55. data/lib/killbill_client/models/gen/tenant_key_attributes.rb +3 -3
  56. data/lib/killbill_client/models/gen/usage_attributes.rb +3 -3
  57. data/lib/killbill_client/models/helpers/custom_field_helper.rb +51 -0
  58. data/lib/killbill_client/models/helpers/tag_helper.rb +112 -0
  59. data/lib/killbill_client/models/invoice.rb +30 -13
  60. data/lib/killbill_client/models/invoice_item.rb +37 -5
  61. data/lib/killbill_client/models/invoice_payment.rb +67 -0
  62. data/lib/killbill_client/models/models.rb +10 -2
  63. data/lib/killbill_client/models/payment.rb +5 -32
  64. data/lib/killbill_client/models/payment_method.rb +5 -6
  65. data/lib/killbill_client/models/phase.rb +9 -0
  66. data/lib/killbill_client/models/plan.rb +9 -0
  67. data/lib/killbill_client/models/plan_detail.rb +9 -0
  68. data/lib/killbill_client/models/product.rb +9 -0
  69. data/lib/killbill_client/models/resource.rb +22 -5
  70. data/lib/killbill_client/models/subscription.rb +28 -30
  71. data/lib/killbill_client/models/tag.rb +7 -11
  72. data/lib/killbill_client/models/tag_definition.rb +27 -6
  73. data/lib/killbill_client/models/transaction.rb +104 -0
  74. data/lib/killbill_client/version.rb +1 -1
  75. data/spec/killbill_client/remote/api_spec.rb +1 -1
  76. data/spec/killbill_client/remote/model_spec.rb +38 -23
  77. data/spec/killbill_client/resource_spec.rb +18 -0
  78. data/spec/spec_helper.rb +12 -0
  79. metadata +36 -19
  80. data/lib/killbill_client/models/chargeback.rb +0 -36
  81. data/lib/killbill_client/models/refund.rb +0 -55
@@ -0,0 +1,47 @@
1
+ ###################################################################################
2
+ # #
3
+ # Copyright 2010-2013 Ning, Inc. #
4
+ # Copyright 2014 The Billing Project, LLC #
5
+ # #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
+ # #
10
+ # http://www.apache.org/licenses/LICENSE-2.0 #
11
+ # #
12
+ # Unless required by applicable law or agreed to in writing, software #
13
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
14
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the #
15
+ # License for the specific language governing permissions and limitations #
16
+ # under the License. #
17
+ # #
18
+ ###################################################################################
19
+
20
+
21
+ #
22
+ # DO NOT EDIT!!!
23
+ # File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
24
+ #
25
+
26
+
27
+ module KillBillClient
28
+ module Model
29
+ class PaymentTransactionAttributes < Resource
30
+ attribute :transaction_id
31
+ attribute :transaction_external_key
32
+ attribute :payment_id
33
+ attribute :payment_external_key
34
+ attribute :transaction_type
35
+ attribute :amount
36
+ attribute :currency
37
+ attribute :effective_date
38
+ attribute :status
39
+ attribute :gateway_error_code
40
+ attribute :gateway_error_msg
41
+ attribute :first_payment_reference_id
42
+ attribute :second_payment_reference_id
43
+ attribute :properties
44
+ attribute :audit_logs
45
+ end
46
+ end
47
+ end
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -26,7 +26,7 @@
26
26
 
27
27
  module KillBillClient
28
28
  module Model
29
- class PaymentMethodProperties < Resource
29
+ class PluginPropertyAttributes < Resource
30
30
  attribute :key
31
31
  attribute :value
32
32
  attribute :is_updatable
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -37,20 +37,26 @@ require 'killbill_client/models/gen/plan_attributes'
37
37
  require 'killbill_client/models/gen/phase_attributes'
38
38
  require 'killbill_client/models/gen/price_attributes'
39
39
  require 'killbill_client/models/gen/catalog_attributes_simple'
40
- require 'killbill_client/models/gen/chargeback_attributes'
41
40
  require 'killbill_client/models/gen/credit_attributes'
42
41
  require 'killbill_client/models/gen/custom_field_attributes'
42
+ require 'killbill_client/models/gen/gateway_notification_attributes'
43
+ require 'killbill_client/models/gen/hosted_payment_page_billing_address_attributes'
44
+ require 'killbill_client/models/gen/hosted_payment_page_customer_attributes'
45
+ require 'killbill_client/models/gen/hosted_payment_page_fields_attributes'
46
+ require 'killbill_client/models/gen/hosted_payment_page_form_descriptor_attributes'
43
47
  require 'killbill_client/models/gen/invoice_email_attributes'
44
48
  require 'killbill_client/models/gen/invoice_item_attributes'
45
49
  require 'killbill_client/models/gen/invoice_attributes'
50
+ require 'killbill_client/models/gen/invoice_payment_attributes'
51
+ require 'killbill_client/models/gen/invoice_payment_transaction_attributes'
46
52
  require 'killbill_client/models/gen/notification_attributes'
47
53
  require 'killbill_client/models/gen/overdue_state_attributes'
48
54
  require 'killbill_client/models/gen/payment_attributes'
49
55
  require 'killbill_client/models/gen/payment_method_plugin_detail_attributes'
50
- require 'killbill_client/models/gen/payment_method_properties'
51
56
  require 'killbill_client/models/gen/payment_method_attributes'
57
+ require 'killbill_client/models/gen/payment_transaction_attributes'
52
58
  require 'killbill_client/models/gen/plan_detail_attributes'
53
- require 'killbill_client/models/gen/refund_attributes'
59
+ require 'killbill_client/models/gen/plugin_property_attributes'
54
60
  require 'killbill_client/models/gen/session_attributes'
55
61
  require 'killbill_client/models/gen/subject_attributes'
56
62
  require 'killbill_client/models/gen/event_subscription_attributes'
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -3,9 +3,9 @@
3
3
  # Copyright 2010-2013 Ning, Inc. #
4
4
  # Copyright 2014 The Billing Project, LLC #
5
5
  # #
6
- # Ning licenses this file to you under the Apache License, version 2.0 #
7
- # (the "License"); you may not use this file except in compliance with the #
8
- # License. You may obtain a copy of the License at: #
6
+ # The Billing Project licenses this file to you under the Apache License, #
7
+ # version 2.0 (the "License"); you may not use this file except in #
8
+ # compliance with the License. You may obtain a copy of the License at: #
9
9
  # #
10
10
  # http://www.apache.org/licenses/LICENSE-2.0 #
11
11
  # #
@@ -0,0 +1,51 @@
1
+ module KillBillClient
2
+ module Model
3
+ module CustomFieldHelper
4
+
5
+ module ClassMethods
6
+ def has_custom_fields(url_prefix, id_alias)
7
+ define_method('custom_fields') do |audit = 'NONE', options = {}|
8
+ self.class.get "#{url_prefix}/#{send(id_alias)}/customFields",
9
+ {
10
+ :audit => audit
11
+ },
12
+ options,
13
+ CustomField
14
+ end
15
+
16
+ define_method('add_custom_field') do |custom_fields, user = nil, reason = nil, comment = nil, options = {}|
17
+ body = custom_fields.is_a?(Enumerable) ? custom_fields : [custom_fields]
18
+ custom_field = self.class.post "#{url_prefix}/#{send(id_alias)}/customFields",
19
+ body.to_json,
20
+ {},
21
+ {
22
+ :user => user,
23
+ :reason => reason,
24
+ :comment => comment,
25
+ }.merge(options),
26
+ CustomField
27
+ custom_field.refresh(options)
28
+ end
29
+
30
+ define_method('remove_custom_field') do |custom_fields, user = nil, reason = nil, comment = nil, options = {}|
31
+ custom_fields_param = custom_fields.is_a?(Enumerable) ? custom_fields.join(",") : custom_fields
32
+ self.class.delete "#{url_prefix}/#{send(id_alias)}/customFields",
33
+ {},
34
+ {
35
+ :customFieldList => custom_fields_param
36
+ },
37
+ {
38
+ :user => user,
39
+ :reason => reason,
40
+ :comment => comment,
41
+ }.merge(options)
42
+ end
43
+ end
44
+ end
45
+
46
+ def self.included(klass)
47
+ klass.extend ClassMethods
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,112 @@
1
+ module KillBillClient
2
+ module Model
3
+ module TagHelper
4
+
5
+ AUTO_PAY_OFF_ID = '00000000-0000-0000-0000-000000000001'
6
+ AUTO_INVOICING_ID = '00000000-0000-0000-0000-000000000002'
7
+ OVERDUE_ENFORCEMENT_OFF_ID = '00000000-0000-0000-0000-000000000003'
8
+ WRITTEN_OFF_ID = '00000000-0000-0000-0000-000000000004'
9
+ MANUAL_PAY_ID = '00000000-0000-0000-0000-000000000005'
10
+ TEST_ID = '00000000-0000-0000-0000-000000000006'
11
+
12
+ def add_tag(tag_name, user = nil, reason = nil, comment = nil, options = {})
13
+ tag_definition = TagDefinition.find_by_name(tag_name, 'NONE', options)
14
+ if tag_definition.nil?
15
+ tag_definition = TagDefinition.new
16
+ tag_definition.name = tag_name
17
+ tag_definition.description = 'TagDefinition automatically created by the Kill Bill Ruby client library'
18
+ tag_definition = TagDefinition.create(user, options)
19
+ end
20
+
21
+ add_tag_from_definition_id(tag_definition.id, user, reason, comment, options)
22
+ end
23
+
24
+ def remove_tag(tag_name, user = nil, reason = nil, comment = nil, options = {})
25
+ tag_definition = TagDefinition.find_by_name(tag_name, 'NONE', options)
26
+ return nil if tag_definition.nil?
27
+
28
+ remove_tag_from_definition_id(tag_definition.id, user, reason, comment, options)
29
+ end
30
+
31
+ def set_tags(tag_definition_ids, user = nil, reason = nil, comment = nil, options = {})
32
+ current_tag_definition_ids = tags(false, 'NONE', options).map { |tag| tag.tag_definition_id }
33
+
34
+ # Find tags to remove
35
+ tags_to_remove = Set.new
36
+ current_tag_definition_ids.each do |current_tag_definition_id|
37
+ tags_to_remove << current_tag_definition_id unless tag_definition_ids.include?(current_tag_definition_id)
38
+ end
39
+
40
+ # Find tags to add
41
+ tags_to_add = Set.new
42
+ tag_definition_ids.each do |new_tag_definition_id|
43
+ tags_to_add << new_tag_definition_id unless current_tag_definition_ids.include?(new_tag_definition_id)
44
+ end
45
+
46
+ remove_tags_from_definition_ids(tags_to_remove.to_a, user, reason, comment, options) unless tags_to_remove.empty?
47
+ add_tags_from_definition_ids(tags_to_add.to_a, user, reason, comment, options) unless tags_to_add.empty?
48
+ end
49
+
50
+ def add_tag_from_definition_id(tag_definition_id, user = nil, reason = nil, comment = nil, options = {})
51
+ add_tags_from_definition_ids([tag_definition_id], user, reason, comment, options)
52
+ end
53
+
54
+ def remove_tag_from_definition_id(tag_definition_id, user = nil, reason = nil, comment = nil, options = {})
55
+ remove_tags_from_definition_ids([tag_definition_id], user, reason, comment, options)
56
+ end
57
+
58
+ def control_tag_off?(control_tag_definition_id, options)
59
+ res = tags('NONE', options)
60
+ !((res || []).select do |t|
61
+ t.tag_definition_id == control_tag_definition_id
62
+ end.first.nil?)
63
+ end
64
+
65
+ module ClassMethods
66
+ def has_tags(url_prefix, id_alias)
67
+ define_method('tags') do |included_deleted = false, audit = 'NONE', options = {}|
68
+ self.class.get "#{url_prefix}/#{send(id_alias)}/tags",
69
+ {
70
+ :includedDeleted => included_deleted,
71
+ :audit => audit
72
+ },
73
+ options,
74
+ Tag
75
+ end
76
+
77
+ define_method('add_tags_from_definition_ids') do |tag_definition_ids, user = nil, reason = nil, comment = nil, options = {}|
78
+ created_tag = self.class.post "#{url_prefix}/#{send(id_alias)}/tags",
79
+ {},
80
+ {
81
+ :tagList => tag_definition_ids.join(',')
82
+ },
83
+ {
84
+ :user => user,
85
+ :reason => reason,
86
+ :comment => comment,
87
+ }.merge(options),
88
+ Tag
89
+ created_tag.refresh(options)
90
+ end
91
+
92
+ define_method('remove_tags_from_definition_ids') do |tag_definition_ids, user = nil, reason = nil, comment = nil, options = {}|
93
+ self.class.delete "#{url_prefix}/#{send(id_alias)}/tags",
94
+ {},
95
+ {
96
+ :tagList => tag_definition_ids.join(',')
97
+ },
98
+ {
99
+ :user => user,
100
+ :reason => reason,
101
+ :comment => comment,
102
+ }.merge(options)
103
+ end
104
+ end
105
+ end
106
+
107
+ def self.included(klass)
108
+ klass.extend ClassMethods
109
+ end
110
+ end
111
+ end
112
+ end
@@ -14,7 +14,7 @@ module KillBillClient
14
14
  get "#{KILLBILL_API_INVOICES_PREFIX}/#{id_or_number}",
15
15
  {
16
16
  :withItems => with_items,
17
- :audit => audit
17
+ :audit => audit
18
18
  },
19
19
  options
20
20
  end
@@ -23,7 +23,7 @@ module KillBillClient
23
23
  get "#{KILLBILL_API_INVOICES_PREFIX}/#{Resource::KILLBILL_API_PAGINATION_PREFIX}",
24
24
  {
25
25
  :offset => offset,
26
- :limit => limit
26
+ :limit => limit
27
27
  },
28
28
  options
29
29
  end
@@ -32,26 +32,34 @@ module KillBillClient
32
32
  get "#{KILLBILL_API_INVOICES_PREFIX}/search/#{search_key}",
33
33
  {
34
34
  :offset => offset,
35
- :limit => limit
35
+ :limit => limit
36
36
  },
37
37
  options
38
38
  end
39
39
 
40
+ def as_html(invoice_id, options = {})
41
+ get "#{KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}/html",
42
+ {},
43
+ {
44
+ :accept => 'text/html'
45
+ }.merge(options)
46
+ end
47
+
40
48
  def trigger_invoice(account_id, target_date, dry_run, user = nil, reason = nil, comment = nil, options = {})
41
- query_map = {:accountId => account_id}
49
+ query_map = {:accountId => account_id}
42
50
  query_map[:targetDate] = target_date if !target_date.nil?
43
- query_map[:dryRun] = dry_run if !dry_run.nil?
51
+ query_map[:dryRun] = dry_run if !dry_run.nil?
44
52
 
45
53
  begin
46
54
  res = post "#{KILLBILL_API_INVOICES_PREFIX}",
47
- {},
48
- query_map,
49
- {
50
- :user => user,
51
- :reason => reason,
52
- :comment => comment,
53
- }.merge(options),
54
- Invoice
55
+ {},
56
+ query_map,
57
+ {
58
+ :user => user,
59
+ :reason => reason,
60
+ :comment => comment,
61
+ }.merge(options),
62
+ Invoice
55
63
 
56
64
  res.refresh(options)
57
65
 
@@ -59,7 +67,16 @@ module KillBillClient
59
67
  # No invoice to generate : TODO parse json to verify this is indeed the case
60
68
  end
61
69
  end
70
+ end
62
71
 
72
+ def payments(with_plugin_info = false, audit = 'NONE', options = {})
73
+ self.class.get "#{KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}/payments",
74
+ {
75
+ :withPluginInfo => with_plugin_info,
76
+ :audit => audit
77
+ },
78
+ options,
79
+ InvoicePayment
63
80
  end
64
81
  end
65
82
  end
@@ -5,15 +5,47 @@ module KillBillClient
5
5
  has_many :audit_logs, KillBillClient::Model::AuditLog
6
6
 
7
7
  def create(user = nil, reason = nil, comment = nil, options = {})
8
- created_invoice_item = self.class.post "#{Invoice::KILLBILL_API_INVOICES_PREFIX}/charges",
9
- to_json,
8
+ created_invoice_item = self.class.post "#{Invoice::KILLBILL_API_INVOICES_PREFIX}/charges/#{account_id}",
9
+ [to_hash].to_json,
10
10
  {},
11
11
  {
12
- :user => user,
13
- :reason => reason,
12
+ :user => user,
13
+ :reason => reason,
14
14
  :comment => comment,
15
15
  }.merge(options)
16
- created_invoice_item.refresh(options, Invoice)
16
+ created_invoice_item.first.refresh(options, Invoice)
17
+ end
18
+
19
+ # Adjust an invoice item
20
+ #
21
+ # Required: account_id, invoice_id, invoice_item_id
22
+ # Optional: amount, currency
23
+ def update(user = nil, reason = nil, comment = nil, options = {})
24
+ adjusted_invoice_item = self.class.post "#{Invoice::KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}",
25
+ to_json,
26
+ {},
27
+ {
28
+ :user => user,
29
+ :reason => reason,
30
+ :comment => comment,
31
+ }.merge(options)
32
+ adjusted_invoice_item.refresh(options, Invoice)
33
+ end
34
+
35
+ # Delete CBA
36
+ #
37
+ # Required: invoice_id, invoice_item_id
38
+ def delete(user = nil, reason = nil, comment = nil, options = {})
39
+ self.class.delete "#{Invoice::KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}/#{invoice_item_id}/cba",
40
+ to_json,
41
+ {
42
+ :accountId => account_id
43
+ },
44
+ {
45
+ :user => user,
46
+ :reason => reason,
47
+ :comment => comment,
48
+ }.merge(options)
17
49
  end
18
50
  end
19
51
  end