killbill-client 4.0.2 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6b9ea90d7d0f8900fb46499c6c3ee58f795ee8ac
4
- data.tar.gz: 3d4161e7b193cccb9b945bb67fa362f7d3adb124
3
+ metadata.gz: f0b014a03675df00b0ecc8905bc7e2f87d3a66b8
4
+ data.tar.gz: b00efcc489669f9d3dde0fd3ed3f4ad43484ae4d
5
5
  SHA512:
6
- metadata.gz: d6319c1811e50a0932843fa8a41bead6ddde9a62d26425f0c236a3f39a27dff58f3c07294b3377e74931abf36754c005cc961e91c7544d7f4bedf4cae79fea31
7
- data.tar.gz: feca257a3fb5b9422435fa65ab032e4d2dd51756b4f2dda80fbe00265047fb794c9a035d33279dff75145c888899c3f9ca58cf8528f095c1eda2585fc6648476
6
+ metadata.gz: 1ca5f7216fc9715cf80ee0aad0de09fb3ce090c5310b6138d221a4142f4261b25e98429ae77566e906de88e55720cbf61c2deee20687a46da532c9e8e724f870
7
+ data.tar.gz: d07ae44a92648d46ed01403cf3ee367f52c187cbc3302dc0e12ef9aafee15fba648173019f9b162250a866e2887eda8f7cae4df0999602f186f18014d081e10e
@@ -73,6 +73,27 @@ module KillBillClient
73
73
  AuditLog
74
74
  end
75
75
 
76
+ def paginated_bundles(account_id, offset = 0, limit = 100, audit = "NONE", options = {})
77
+ get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/bundles/pagination",
78
+ {
79
+ :offset => offset,
80
+ :limit => limit,
81
+ :audit => audit
82
+ },
83
+ options,
84
+ Bundle
85
+ end
86
+
87
+ def paginated_invoices(account_id, offset = 0, limit = 100, audit = "NONE", options = {})
88
+ get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/invoices/pagination",
89
+ {
90
+ :offset => offset,
91
+ :limit => limit,
92
+ :audit => audit
93
+ },
94
+ options,
95
+ Invoice
96
+ end
76
97
  end
77
98
 
78
99
  def create(user = nil, reason = nil, comment = nil, options = {})
@@ -8,22 +8,27 @@ module KillBillClient
8
8
  KILLBILL_API_CLOCK_PREFIX = "#{KILLBILL_API_PREFIX}/test/clock"
9
9
 
10
10
  class << self
11
- def get_queues_entries(account_id, options = {})
11
+ def get_queues_entries(account_id, queue_name = '', service_name = '', with_history = true, min_date = '', max_date = '', with_in_processing = true, with_bus_events = true, with_notifications = true, options = {})
12
12
  get KILLBILL_API_QUEUES_PREFIX,
13
13
  {
14
14
  :accountId => account_id,
15
- :withHistory => options[:withHistory],
16
- :minDate => options[:minDate],
17
- :maxDate => options[:maxDate]
15
+ :queueName => queue_name,
16
+ :serviceName => service_name,
17
+ :withHistory => with_history,
18
+ :minDate => min_date,
19
+ :maxDate => max_date,
20
+ :withInProcessing => with_in_processing,
21
+ :withBusEvents => with_bus_events,
22
+ :withNotifications => with_notifications
18
23
  },
19
24
  {
20
25
  :accept => 'application/octet-stream'
21
26
  }.merge(options)
22
27
  end
23
28
 
24
- def fix_transaction_state(payment_id, transaction_id, transaction_status, user = nil, reason = nil, comment = nil, options = {})
29
+ def fix_transaction_state(payment_id, transaction_id, transaction_status, payment_state_param = {}, user = nil, reason = nil, comment = nil, options = {})
25
30
  put "#{KILLBILL_API_ADMIN_PREFIX}/payments/#{payment_id}/transactions/#{transaction_id}",
26
- {:transactionStatus => transaction_status}.to_json,
31
+ {:transactionStatus => transaction_status}.merge(payment_state_param).to_json,
27
32
  {},
28
33
  {
29
34
  :user => user,
@@ -32,15 +37,18 @@ module KillBillClient
32
37
  }.merge(options)
33
38
  end
34
39
 
35
- def trigger_invoice_generation_for_parked_accounts(offset = 0, limit = 100, user =nil, options = {})
40
+ def trigger_invoice_generation_for_parked_accounts(offset = 0, limit = 100, plugin_property = [], user = nil, reason = nil, comment = nil, options = {})
36
41
  post "#{KILLBILL_API_ADMIN_PREFIX}/invoices",
37
42
  {},
38
43
  {
39
44
  :offset => offset,
40
- :limit => limit
45
+ :limit => limit,
46
+ :pluginProperty => plugin_property
41
47
  },
42
48
  {
43
- :user => user
49
+ :user => user,
50
+ :reason => reason,
51
+ :comment => comment,
44
52
  }.merge(options)
45
53
  end
46
54
 
@@ -178,6 +178,22 @@ module KillBillClient
178
178
  :comment => comment,
179
179
  }.merge(options)
180
180
  end
181
+
182
+ def validate_catalog(catalog_xml, user = nil, reason = nil, comment = nil, options = {})
183
+
184
+ require_multi_tenant_options!(options, "Validating a catalog is only supported in multi-tenant mode")
185
+
186
+ errors = post "#{KILLBILL_API_CATALOG_PREFIX}/xml/validate",
187
+ catalog_xml,
188
+ {},
189
+ {
190
+ :head => {'Accept' => 'application/json'},
191
+ :content_type => 'text/xml',
192
+ :user => user,
193
+ :reason => reason,
194
+ :comment => comment,
195
+ }.merge(options)
196
+ end
181
197
  end
182
198
  end
183
199
  end
@@ -11,11 +11,12 @@ module KillBillClient
11
11
  has_audit_logs_with_history KILLBILL_API_CUSTOM_FIELDS_PREFIX, :custom_field_id
12
12
 
13
13
  class << self
14
- def find_in_batches(offset = 0, limit = 100, options = {})
14
+ def find_in_batches(offset = 0, limit = 100, audit = 'NONE', options = {})
15
15
  get "#{KILLBILL_API_CUSTOM_FIELDS_PREFIX}/#{Resource::KILLBILL_API_PAGINATION_PREFIX}",
16
16
  {
17
17
  :offset => offset,
18
- :limit => limit
18
+ :limit => limit,
19
+ :audit => audit
19
20
  },
20
21
  options
21
22
  end
@@ -51,6 +51,7 @@ module KillBillClient
51
51
  attribute :price_overrides
52
52
  attribute :prices
53
53
  attribute :audit_logs
54
+ attribute :quantity
54
55
  end
55
56
  end
56
57
  end
@@ -19,17 +19,19 @@ module KillBillClient
19
19
 
20
20
 
21
21
  class << self
22
- def find_by_id(invoice_id, audit = "NONE", options = {})
22
+ def find_by_id(invoice_id, with_children_items = false, audit = "NONE", options = {})
23
23
  get "#{KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}",
24
24
  {
25
+ :withChildrenItems => with_children_items,
25
26
  :audit => audit
26
27
  },
27
28
  options
28
29
  end
29
30
 
30
- def find_by_number(number, audit = "NONE", options = {})
31
+ def find_by_number(number, with_children_items = false, audit = "NONE", options = {})
31
32
  get "#{KILLBILL_API_INVOICES_PREFIX}/byNumber/#{number}",
32
33
  {
34
+ :withChildrenItems => with_children_items,
33
35
  :audit => audit
34
36
  },
35
37
  options
@@ -92,21 +94,22 @@ module KillBillClient
92
94
  end
93
95
  end
94
96
 
95
- def trigger_invoice_dry_run(account_id, target_date, upcoming_invoice_target_date, options = {})
97
+ def trigger_invoice_dry_run(account_id, target_date, upcoming_invoice_target_date, plugin_property = [], user = nil, reason = nil, comment = nil, options = {})
96
98
 
97
99
  dry_run = InvoiceDryRunAttributes.new
98
100
  dry_run.dry_run_type = upcoming_invoice_target_date ? 'UPCOMING_INVOICE' : 'TARGET_DATE'
99
101
 
100
102
  query_map = {:accountId => account_id}
101
103
  query_map[:targetDate] = target_date if target_date != nil
104
+ query_map[:pluginProperty] = plugin_property unless plugin_property.empty?
102
105
 
103
106
  res = post "#{KILLBILL_API_DRY_RUN_INVOICES_PREFIX}",
104
107
  dry_run.to_json,
105
108
  query_map,
106
109
  {
107
- :user => 'trigger_invoice_dry_run',
108
- :reason => '',
109
- :comment => '',
110
+ :user => user || 'trigger_invoice_dry_run',
111
+ :reason => reason,
112
+ :comment => comment,
110
113
  }.merge(options),
111
114
  Invoice
112
115
 
@@ -318,6 +321,40 @@ module KillBillClient
318
321
  }.merge(options)
319
322
  end
320
323
 
324
+ def trigger_invoice_group_run(account_id, target_date = nil, plugin_property = nil, user = nil, reason = nil, comment = nil, options = {})
325
+ query_map = {:accountId => account_id}
326
+ query_map[:targetDate] = target_date if !target_date.nil?
327
+ query_map[:pluginProperty] = plugin_property if !plugin_property.nil?
328
+
329
+ res = post "#{KILLBILL_API_INVOICES_PREFIX}/group",
330
+ {},
331
+ query_map,
332
+ {
333
+ :user => user,
334
+ :reason => reason,
335
+ :comment => comment,
336
+ }.merge(options)
337
+ end
338
+
339
+ def retrieve_invoice_group(account_id, group_id, with_children_items = false, audit = "NONE", options = {})
340
+ res = get "#{KILLBILL_API_INVOICES_PREFIX}/#{group_id}/group",
341
+ {
342
+ :accountId => account_id,
343
+ :withChildrenItems => with_children_items,
344
+ :audit => audit
345
+ },
346
+ options
347
+ end
348
+
349
+ def retrieve_payments_for_invoice(invoice_id, with_plugin_info = false, with_attempts = false, audit = "NONE", options = {})
350
+ res = get "#{KILLBILL_API_INVOICES_PREFIX}/#{invoice_id}/payments",
351
+ {
352
+ :withPluginInfo => with_plugin_info,
353
+ :withAttempts => with_attempts,
354
+ :audit => audit
355
+ },
356
+ options
357
+ end
321
358
  end
322
359
 
323
360
  def commit(user = nil, reason = nil, comment = nil, options = {})
@@ -36,22 +36,25 @@ module KillBillClient
36
36
  options
37
37
  end
38
38
 
39
- def find_by_transaction_id(transaction_id, with_plugin_info = false, with_attempts = false, options = {})
39
+ def find_by_transaction_id(transaction_id, with_plugin_info = false, with_attempts = false, plugin_property = [], audit = 'NONE', options = {})
40
40
  get "#{Transaction::KILLBILL_API_TRANSACTIONS_PREFIX}/#{transaction_id}",
41
41
  {
42
+ :withPluginInfo => with_plugin_info,
42
43
  :withAttempts => with_attempts,
43
- :withPluginInfo => with_plugin_info
44
+ :pluginProperty => plugin_property,
45
+ :audit => audit
44
46
  },
45
47
  options
46
48
  end
47
49
 
48
- def find_by_transaction_external_key(external_key, with_plugin_info = false, with_attempts = false, audit='NONE', options = {})
50
+ def find_by_transaction_external_key(external_key, with_plugin_info = false, with_attempts = false, plugin_property = [], audit = 'NONE', options = {})
49
51
  get "#{Transaction::KILLBILL_API_TRANSACTIONS_PREFIX}",
50
52
  {
51
- :audit => audit,
52
53
  :transactionExternalKey => external_key,
54
+ :withPluginInfo => with_plugin_info,
53
55
  :withAttempts => with_attempts,
54
- :withPluginInfo => with_plugin_info
56
+ :pluginProperty => plugin_property,
57
+ :audit => audit
55
58
  },
56
59
  options
57
60
  end
@@ -2,6 +2,7 @@ module KillBillClient
2
2
  module Model
3
3
  class PaymentMethod < PaymentMethodAttributes
4
4
 
5
+ include KillBillClient::Model::CustomFieldHelper
5
6
  include KillBillClient::Model::AuditLogWithHistoryHelper
6
7
 
7
8
  KILLBILL_API_PAYMENT_METHODS_PREFIX = "#{KILLBILL_API_PREFIX}/paymentMethods"
@@ -10,11 +11,15 @@ module KillBillClient
10
11
  has_many :audit_logs, KillBillClient::Model::AuditLog
11
12
 
12
13
  has_audit_logs_with_history KILLBILL_API_PAYMENT_METHODS_PREFIX, :payment_method_id
14
+ has_custom_fields KILLBILL_API_PAYMENT_METHODS_PREFIX, :payment_method_id
13
15
 
14
16
  class << self
15
- def find_by_id(payment_method_id, with_plugin_info = false, options = {})
17
+ def find_by_id(payment_method_id, included_deleted = false, with_plugin_info = false, plugin_property = [], audit = 'NONE', options = {})
16
18
  get "#{KILLBILL_API_PAYMENT_METHODS_PREFIX}/#{payment_method_id}",
17
19
  {
20
+ :pluginProperty => plugin_property,
21
+ :includedDeleted => included_deleted,
22
+ :audit => audit,
18
23
  :withPluginInfo => with_plugin_info
19
24
  },
20
25
  options
@@ -46,10 +51,11 @@ module KillBillClient
46
51
  options
47
52
  end
48
53
 
49
- def find_by_external_key(external_key, included_deleted = false, with_plugin_info = false, audit='NONE', options = {})
54
+ def find_by_external_key(external_key, included_deleted = false, with_plugin_info = false, plugin_property = [], audit = 'NONE', options = {})
50
55
  get "#{KILLBILL_API_PAYMENT_METHODS_PREFIX}",
51
56
  {
52
57
  :externalKey => external_key,
58
+ :pluginProperty => plugin_property,
53
59
  :includedDeleted => included_deleted,
54
60
  :audit => audit,
55
61
  :withPluginInfo => with_plugin_info
@@ -2,6 +2,14 @@ module KillBillClient
2
2
  module Model
3
3
  class RoleDefinition < RoleDefinitionAttributes
4
4
 
5
+ class << self
6
+ def find_by_name(role_name, options = {})
7
+ role = get "#{Security::KILLBILL_API_SECURITY_PREFIX}/roles/#{role_name}",
8
+ {},
9
+ options
10
+ end
11
+ end
12
+
5
13
  def create(user = nil, reason = nil, comment = nil, options = {})
6
14
  created_role = self.class.post "#{Security::KILLBILL_API_SECURITY_PREFIX}/roles",
7
15
  to_json,
@@ -13,6 +21,17 @@ module KillBillClient
13
21
  }.merge(options)
14
22
  created_role.refresh(options)
15
23
  end
24
+
25
+ def update(user = nil, reason = nil, comment = nil, options = {})
26
+ self.class.put "#{Security::KILLBILL_API_SECURITY_PREFIX}/roles",
27
+ to_json,
28
+ {},
29
+ {
30
+ :user => user,
31
+ :reason => reason,
32
+ :comment => comment,
33
+ }.merge(options)
34
+ end
16
35
  end
17
36
  end
18
37
  end
@@ -10,6 +10,7 @@ module KillBillClient
10
10
 
11
11
  has_many :events, KillBillClient::Model::EventSubscription
12
12
  has_many :price_overrides, KillBillClient::Model::PhasePriceAttributes
13
+ has_many :audit_logs, KillBillClient::Model::AuditLog
13
14
 
14
15
  has_custom_fields KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
15
16
  has_tags KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
@@ -17,18 +18,20 @@ module KillBillClient
17
18
  has_audit_logs_with_history KILLBILL_API_ENTITLEMENT_PREFIX, :subscription_id
18
19
 
19
20
  class << self
20
- def find_by_id(subscription_id, options = {})
21
+ def find_by_id(subscription_id, audit = "NONE", options = {})
21
22
  get "#{KILLBILL_API_ENTITLEMENT_PREFIX}/#{subscription_id}",
22
- {},
23
+ {
24
+ :audit => audit
25
+ },
23
26
  options
24
27
  end
25
28
 
26
- def find_by_external_key(external_key, options = {})
27
- params = {}
28
- params[:externalKey] = external_key
29
-
29
+ def find_by_external_key(external_key, audit = "NONE", options = {})
30
30
  get "#{KILLBILL_API_ENTITLEMENT_PREFIX}",
31
- params,
31
+ {
32
+ :externalKey => external_key,
33
+ :audit => audit
34
+ },
32
35
  options
33
36
  end
34
37
 
@@ -94,7 +97,7 @@ module KillBillClient
94
97
  :reason => reason,
95
98
  :comment => comment,
96
99
  }.merge(options)
97
- self.class.find_by_id(@subscription_id, options)
100
+ self.class.find_by_id(@subscription_id, "NONE", options)
98
101
  end
99
102
 
100
103
  #
@@ -218,6 +221,23 @@ module KillBillClient
218
221
  }.merge(options)
219
222
  end
220
223
 
224
+ #
225
+ # Update Subscription Quantity
226
+ #
227
+ def update_quantity(user = nil, reason = nil, comment = nil, effective_from_date = nil, force_new_quantity_with_past_effective_date = nil, options = {})
228
+ params = {}
229
+ params[:effectiveFromDate] = effective_from_date unless effective_from_date.nil?
230
+ params[:forceNewQuantityWithPastEffectiveDate] = force_new_quantity_with_past_effective_date unless force_new_quantity_with_past_effective_date.nil?
231
+
232
+ return self.class.put "#{KILLBILL_API_ENTITLEMENT_PREFIX}/#{subscription_id}/quantity",
233
+ self.to_json,
234
+ params,
235
+ {
236
+ :user => user,
237
+ :reason => reason,
238
+ :comment => comment,
239
+ }.merge(options)
240
+ end
221
241
  end
222
242
  end
223
243
  end
@@ -2,6 +2,9 @@ module KillBillClient
2
2
  module Model
3
3
  class Tenant < TenantAttributes
4
4
  KILLBILL_API_TENANTS_PREFIX = "#{KILLBILL_API_PREFIX}/tenants"
5
+ KILLBILL_API_TENANTS_NOTIFICATION = "#{KILLBILL_API_TENANTS_PREFIX}/registerNotificationCallback"
6
+ KILLBILL_API_TENANTS_SYSTEM_CONFIGURATION = "#{KILLBILL_API_TENANTS_PREFIX}/uploadPerTenantConfig"
7
+ KILLBILL_API_TENANTS_PLUGIN_PAYMENT_STATE_MACHINE = "#{KILLBILL_API_TENANTS_PREFIX}/uploadPluginPaymentStateMachineConfig"
5
8
 
6
9
  has_many :audit_logs, KillBillClient::Model::AuditLog
7
10
 
@@ -87,7 +90,6 @@ module KillBillClient
87
90
  send(get_method.to_sym, key_name, options)
88
91
  end
89
92
 
90
-
91
93
  def delete_tenant_key_value(key_name, key_path, error_id_str, user = nil, reason = nil, comment = nil, options = {})
92
94
 
93
95
  require_multi_tenant_options!(options, "Deleting a #{error_id_str} is only supported in multi-tenant mode")
@@ -105,13 +107,102 @@ module KillBillClient
105
107
  }.merge(options)
106
108
 
107
109
  end
110
+
111
+ def register_push_notification(cb, user = nil, reason = nil, comment = nil, options = {})
112
+ require_multi_tenant_options!(options, "Push notification is only supported in multi-tenant mode")
113
+ post "#{KILLBILL_API_TENANTS_NOTIFICATION}",
114
+ {},
115
+ {:cb => cb},
116
+ {
117
+ :user => user,
118
+ :reason => reason,
119
+ :comment => comment,
120
+ }.merge(options)
121
+ end
122
+
123
+ def retrieve_push_notification(options = {})
124
+ require_multi_tenant_options!(options, "Push notification is only supported in multi-tenant mode")
125
+ get "#{KILLBILL_API_TENANTS_NOTIFICATION}", {}, options
126
+ end
127
+
128
+ def delete_push_notification(user = nil, reason = nil, comment = nil, options = {})
129
+ require_multi_tenant_options!(options, "Push notification is only supported in multi-tenant mode")
130
+ delete "#{KILLBILL_API_TENANTS_NOTIFICATION}",
131
+ {},
132
+ {},
133
+ {
134
+ :user => user,
135
+ :reason => reason,
136
+ :comment => comment,
137
+ }.merge(options)
138
+ end
139
+
140
+ def add_system_configuration(configuration, user = nil, reason = nil, comment = nil, options = {})
141
+ require_multi_tenant_options!(options, "System configuration is only supported in multi-tenant mode")
142
+ post "#{KILLBILL_API_TENANTS_SYSTEM_CONFIGURATION}",
143
+ configuration,
144
+ {},
145
+ {
146
+ :content_type => 'text/plain',
147
+ :user => user,
148
+ :reason => reason,
149
+ :comment => comment,
150
+ }.merge(options)
151
+ end
152
+
153
+ def retrieve_system_configurations(options = {})
154
+ require_multi_tenant_options!(options, "System configuration is only supported in multi-tenant mode")
155
+ get "#{KILLBILL_API_TENANTS_SYSTEM_CONFIGURATION}", {}, options
156
+ end
157
+
158
+ def delete_system_configurations(user = nil, reason = nil, comment = nil, options = {})
159
+ require_multi_tenant_options!(options, "System configuration is only supported in multi-tenant mode")
160
+ delete "#{KILLBILL_API_TENANTS_SYSTEM_CONFIGURATION}",
161
+ {},
162
+ {},
163
+ {
164
+ :user => user,
165
+ :reason => reason,
166
+ :comment => comment,
167
+ }.merge(options)
168
+ end
169
+
170
+ def add_payment_state_machine(plugin_name, state_machine_config, user = nil, reason = nil, comment = nil, options = {})
171
+ require_multi_tenant_options!(options, "Payment state machine is only supported in multi-tenant mode")
172
+ post "#{KILLBILL_API_TENANTS_PLUGIN_PAYMENT_STATE_MACHINE}/#{plugin_name}",
173
+ state_machine_config,
174
+ {},
175
+ {
176
+ :content_type => 'text/plain',
177
+ :user => user,
178
+ :reason => reason,
179
+ :comment => comment,
180
+ }.merge(options)
181
+ end
182
+
183
+ def retrieve_payment_state_machine(plugin_name, options = {})
184
+ require_multi_tenant_options!(options, "Payment state machine is only supported in multi-tenant mode")
185
+ get "#{KILLBILL_API_TENANTS_PLUGIN_PAYMENT_STATE_MACHINE}/#{plugin_name}", {}, options
186
+ end
187
+
188
+ def delete_payment_state_machine(plugin_name, user = nil, reason = nil, comment = nil, options = {})
189
+ require_multi_tenant_options!(options, "Payment state machine is only supported in multi-tenant mode")
190
+ delete "#{KILLBILL_API_TENANTS_PLUGIN_PAYMENT_STATE_MACHINE}/#{plugin_name}",
191
+ {},
192
+ {},
193
+ {
194
+ :user => user,
195
+ :reason => reason,
196
+ :comment => comment,
197
+ }.merge(options)
198
+ end
108
199
  end
109
200
 
110
201
 
111
202
  def create(use_global_default=true, user = nil, reason = nil, comment = nil, options = {})
112
203
 
113
204
  created_tenant = self.class.post KILLBILL_API_TENANTS_PREFIX,
114
- to_json,
205
+ to_json,
115
206
  {:useGlobalDefault => use_global_default},
116
207
  {
117
208
  :user => user,
@@ -4,7 +4,9 @@ module KillBillClient
4
4
  module Model
5
5
  class Transaction < PaymentTransactionAttributes
6
6
 
7
+ include KillBillClient::Model::CustomFieldHelper
7
8
  include KillBillClient::Model::AuditLogWithHistoryHelper
9
+ include KillBillClient::Model::TagHelper
8
10
 
9
11
  KILLBILL_API_TRANSACTIONS_PREFIX = "#{KILLBILL_API_PREFIX}/paymentTransactions"
10
12
 
@@ -12,6 +14,8 @@ module KillBillClient
12
14
  has_many :audit_logs, KillBillClient::Model::AuditLog
13
15
 
14
16
  has_audit_logs_with_history KILLBILL_API_TRANSACTIONS_PREFIX, :transaction_id
17
+ has_custom_fields KILLBILL_API_TRANSACTIONS_PREFIX, :transaction_id
18
+ has_tags KILLBILL_API_TRANSACTIONS_PREFIX, :transaction_id
15
19
 
16
20
  def auth(account_id, payment_method_id = nil, user = nil, reason = nil, comment = nil, options = {}, refresh_options = nil)
17
21
  @transaction_type = 'AUTHORIZE'
@@ -121,7 +125,11 @@ module KillBillClient
121
125
  :reason => reason,
122
126
  :comment => comment,
123
127
  }.merge(options)
124
- KillBillClient::Model::Payment.find_by_id(payment_id, false, false, options)
128
+ if payment_external_key
129
+ KillBillClient::Model::Payment.find_by_external_key(payment_external_key, false, false, options)
130
+ else
131
+ KillBillClient::Model::Payment.find_by_id(payment_id, false, false, options)
132
+ end
125
133
  end
126
134
  end
127
135
 
@@ -185,6 +193,17 @@ module KillBillClient
185
193
  end
186
194
  end
187
195
 
196
+ def update_transaction_state(status, control_plugin_name = nil, user, reason, comment, options)
197
+ self.class.post "KILLBILL_API_TRANSACTIONS_PREFIX/#{transaction_id}",
198
+ {:paymentId => payment_id, :status => status}.to_json,
199
+ {:controlPluginName => (control_plugin_name || [])},
200
+ {
201
+ :user => user,
202
+ :reason => reason,
203
+ :comment => comment
204
+ }.merge(options)
205
+ end
206
+
188
207
  private
189
208
 
190
209
 
@@ -221,7 +240,11 @@ module KillBillClient
221
240
  :reason => reason,
222
241
  :comment => comment
223
242
  }.merge(options)
224
- KillBillClient::Model::Payment.find_by_id(payment_id, false, false, options)
243
+ if payment_external_key
244
+ KillBillClient::Model::Payment.find_by_external_key(payment_external_key, false, false, options)
245
+ else
246
+ KillBillClient::Model::Payment.find_by_id(payment_id, false, false, options)
247
+ end
225
248
  end
226
249
  end
227
250
 
@@ -1,3 +1,3 @@
1
1
  module KillBillClient
2
- VERSION = '4.0.2'
2
+ VERSION = '4.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: killbill-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.2
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Killbill core team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-29 00:00:00.000000000 Z
11
+ date: 2024-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem-release