killbill-client 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MWJjMTIzOWViMDQ3Zjc3YzdhMzI4ZTM5ZTk2YjJiMzkxNmEyM2QzZA==
5
- data.tar.gz: !binary |-
6
- OWFjNWM2ODg0Nzc2NzdkY2ZlODlmMjk4Y2NlNjMyOTZhYTgxZmUzZA==
2
+ SHA1:
3
+ metadata.gz: 80b3d840e9157936d14e02c6bcea5a1a38891745
4
+ data.tar.gz: ce8340ff3758e92bd053e3cefcee38f7daef12dc
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YzczODUxNjM0NzBiZTBmMjZmMWNhY2ZhYmUyZWQ0ZTllMzIxZGIxNGNlZDM1
10
- MjFkMDRmMzdlYjhjOTJlODE3NGVmNWFkMzc5NGE1NDA1ZDU1NDAyNzQ2MTEx
11
- MWU4ZWY3NDg5YjMwNDAxNDg0NWI3NWEzNjZhMjI2Njk3ZDYxN2Y=
12
- data.tar.gz: !binary |-
13
- ODBjZTdmYzYyY2JlNmJkMGRmNjBlODhhMWNiNDQwZjAyYmNkM2Y3MDMwNWZm
14
- YjcwMTRlNjFiNzE2ZTE1ZDQzZTk3YTRhY2U0YjNiODg1MjAwNTgzMmY1Yjc5
15
- ZmU5OGZhMGIzZjJhNWMxNDMzYWRhYjNiZmQzMWUwYzkwZDM0MDY=
6
+ metadata.gz: 9b105e5d734073b9d884cebbe1359bc7b865b12b9c8c806788cea6f362206cfc8d9f446d05114fa1eb500de8cad68241973e8953904303d9aad726c8919425ff
7
+ data.tar.gz: 33fb13326144ba37cd343ff56262099053c798c558cc262d5c97fcf7ecb7e3528ecb2c8868534432d551698f557086f118679492ecf4e3fa98af4183314638c9
@@ -57,8 +57,8 @@ module KillBillClient
57
57
 
58
58
  # @return [Net::HTTPNoContent, Net::HTTPResponse]
59
59
  # @raise [ResponseError] With a non-2xx status code.
60
- def delete(uri, params = {}, options = {})
61
- request :delete, uri, {:params => params}.merge(options)
60
+ def delete(uri, body = nil, params = {}, options = {})
61
+ request :delete, uri, {:body => body.to_s}.merge({:params => params}).merge(options)
62
62
  end
63
63
 
64
64
  # @return [URI::Generic]
@@ -89,7 +89,7 @@ module KillBillClient
89
89
  # A method was attempted where it is not allowed.
90
90
  #
91
91
  # If this is raised, there may be a bug with the client library or with
92
- # the server. Please contact skillbilling-users@googlegroups.com or
92
+ # the server. Please contact killbilling-users@googlegroups.com or
93
93
  # {file a bug}[https://github.com/killbill/killbill-client-ruby/issues].
94
94
  class MethodNotAllowed < ClientError
95
95
  end
@@ -39,10 +39,27 @@ module KillBillClient
39
39
 
40
40
  uri = base_uri + URI.escape(relative_uri)
41
41
 
42
+ # Plugin properties are passed in the options but we want to send them as query parameters,
43
+ # so remove with from global hash and insert them under :params
44
+ plugin_properties = options.delete :pluginProperty
45
+ if plugin_properties && plugin_properties.size > 0
46
+ options[:params][:pluginProperty] = plugin_properties.map { |p| "#{p.key}=#{p.value}"}
47
+ end
48
+
49
+
42
50
  if options[:params] && !options[:params].empty?
43
51
  pairs = options[:params].map { |key, value|
44
- "#{CGI.escape key.to_s}=#{CGI.escape value.to_s}"
52
+ # If the value is an array, we 'demultiplex' into several
53
+ if value.is_a? Array
54
+ internal_pairs = value.map do |simple_value|
55
+ "#{CGI.escape key.to_s}=#{CGI.escape simple_value.to_s}"
56
+ end
57
+ internal_pairs
58
+ else
59
+ "#{CGI.escape key.to_s}=#{CGI.escape value.to_s}"
60
+ end
45
61
  }
62
+ pairs.flatten!
46
63
  uri += "?#{pairs.join '&'}"
47
64
  end
48
65
  request = METHODS[method].new uri.request_uri, head
@@ -64,6 +81,9 @@ module KillBillClient
64
81
  request['Cookie'] = "JSESSIONID=#{session_id}"
65
82
  end
66
83
 
84
+ if options[:accept]
85
+ request['Accept'] = options[:accept]
86
+ end
67
87
  if options[:body]
68
88
  request['Content-Type'] = content_type
69
89
  request.body = options[:body]
@@ -2,24 +2,23 @@ module KillBillClient
2
2
  module Model
3
3
  class Account < AccountAttributes
4
4
 
5
- has_many :audit_logs, KillBillClient::Model::AuditLog
5
+ KILLBILL_API_ACCOUNTS_PREFIX = "#{KILLBILL_API_PREFIX}/accounts"
6
6
 
7
- AUTO_PAY_OFF_ID = '00000000-0000-0000-0000-000000000001'
8
- AUTO_INVOICING_ID = '00000000-0000-0000-0000-000000000002'
9
- OVERDUE_ENFORCEMENT_OFF_ID = '00000000-0000-0000-0000-000000000003'
10
- WRITTEN_OFF_ID = '00000000-0000-0000-0000-000000000004'
11
- MANUAL_PAY_ID = '00000000-0000-0000-0000-000000000005'
12
- TEST_ID = '00000000-0000-0000-0000-000000000006'
7
+ include KillBillClient::Model::TagHelper
8
+ include KillBillClient::Model::CustomFieldHelper
13
9
 
14
- KILLBILL_API_ACCOUNTS_PREFIX = "#{KILLBILL_API_PREFIX}/accounts"
10
+ has_custom_fields KILLBILL_API_ACCOUNTS_PREFIX, :account_id
11
+ has_tags KILLBILL_API_ACCOUNTS_PREFIX, :account_id
12
+
13
+ has_many :audit_logs, KillBillClient::Model::AuditLog
15
14
 
16
15
  class << self
17
16
  def find_in_batches(offset = 0, limit = 100, with_balance = false, with_balance_and_cba = false, options = {})
18
17
  get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{Resource::KILLBILL_API_PAGINATION_PREFIX}",
19
18
  {
20
- :offset => offset,
21
- :limit => limit,
22
- :accountWithBalance => with_balance,
19
+ :offset => offset,
20
+ :limit => limit,
21
+ :accountWithBalance => with_balance,
23
22
  :accountWithBalanceAndCBA => with_balance_and_cba
24
23
  },
25
24
  options
@@ -28,7 +27,7 @@ module KillBillClient
28
27
  def find_by_id(account_id, with_balance = false, with_balance_and_cba = false, options = {})
29
28
  get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}",
30
29
  {
31
- :accountWithBalance => with_balance,
30
+ :accountWithBalance => with_balance,
32
31
  :accountWithBalanceAndCBA => with_balance_and_cba
33
32
  },
34
33
  options
@@ -37,8 +36,8 @@ module KillBillClient
37
36
  def find_by_external_key(external_key, with_balance = false, with_balance_and_cba = false, options = {})
38
37
  get "#{KILLBILL_API_ACCOUNTS_PREFIX}",
39
38
  {
40
- :externalKey => external_key,
41
- :accountWithBalance => with_balance,
39
+ :externalKey => external_key,
40
+ :accountWithBalance => with_balance,
42
41
  :accountWithBalanceAndCBA => with_balance_and_cba
43
42
  },
44
43
  options
@@ -47,9 +46,9 @@ module KillBillClient
47
46
  def find_in_batches_by_search_key(search_key, offset = 0, limit = 100, with_balance = false, with_balance_and_cba = false, options = {})
48
47
  get "#{KILLBILL_API_ACCOUNTS_PREFIX}/search/#{search_key}",
49
48
  {
50
- :offset => offset,
51
- :limit => limit,
52
- :accountWithBalance => with_balance,
49
+ :offset => offset,
50
+ :limit => limit,
51
+ :accountWithBalance => with_balance,
53
52
  :accountWithBalanceAndCBA => with_balance_and_cba
54
53
  },
55
54
  options
@@ -61,8 +60,8 @@ module KillBillClient
61
60
  to_json,
62
61
  {},
63
62
  {
64
- :user => user,
65
- :reason => reason,
63
+ :user => user,
64
+ :reason => reason,
66
65
  :comment => comment,
67
66
  }.merge(options)
68
67
  created_account.refresh(options)
@@ -98,78 +97,6 @@ module KillBillClient
98
97
  OverdueStateAttributes
99
98
  end
100
99
 
101
- def tags(audit = 'NONE', options = {})
102
- self.class.get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/tags",
103
- {
104
- :audit => audit
105
- },
106
- options,
107
- Tag
108
- end
109
-
110
- def add_tag(tag_name, user = nil, reason = nil, comment = nil, options = {})
111
- tag_definition = TagDefinition.find_by_name(tag_name, options)
112
- if tag_definition.nil?
113
- tag_definition = TagDefinition.new
114
- tag_definition.name = tag_name
115
- tag_definition.description = "Tag created for account #{@account_id}"
116
- tag_definition = TagDefinition.create(user, options)
117
- end
118
-
119
- add_tag_from_definition_id(tag_definition.id, user, reason, comment, options)
120
- end
121
-
122
- def remove_tag(tag_name, user = nil, reason = nil, comment = nil, options = {})
123
- tag_definition = TagDefinition.find_by_name(tag_name)
124
- return nil if tag_definition.nil?
125
-
126
- self.class.delete "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/tags",
127
- {
128
- :tagList => tag_definition.id
129
- },
130
- {
131
- :user => user,
132
- :reason => reason,
133
- :comment => comment,
134
- }.merge(options)
135
- end
136
-
137
- def custom_fields(audit = 'NONE', options = {})
138
- self.class.get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/customFields",
139
- {
140
- :audit => audit
141
- },
142
- options,
143
- CustomField
144
- end
145
-
146
- def add_custom_field(custom_fields, user = nil, reason = nil, comment = nil, options = {})
147
- body = custom_fields.is_a?(Enumerable) ? custom_fields : [custom_fields]
148
- custom_field = self.class.post "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/customFields",
149
- body.to_json,
150
- {},
151
- {
152
- :user => user,
153
- :reason => reason,
154
- :comment => comment,
155
- }.merge(options),
156
- CustomField
157
- custom_field.refresh(options)
158
- end
159
-
160
- def remove_custom_field(custom_fields, user = nil, reason = nil, comment = nil, options = {})
161
- custom_fields_param = custom_fields.is_a?(Enumerable) ? custom_fields.join(",") : custom_fields
162
- self.class.delete "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/customFields",
163
- {
164
- :customFieldList => custom_fields_param
165
- },
166
- {
167
- :user => user,
168
- :reason => reason,
169
- :comment => comment,
170
- }.merge(options)
171
- end
172
-
173
100
  def auto_pay_off?(options = {})
174
101
  control_tag_off?(AUTO_PAY_OFF_ID, options)
175
102
  end
@@ -198,7 +125,7 @@ module KillBillClient
198
125
  control_tag_off?(WRITTEN_OFF_ID, options)
199
126
  end
200
127
 
201
- def set_written_off( user = nil, reason = nil, comment = nil, options = {})
128
+ def set_written_off(user = nil, reason = nil, comment = nil, options = {})
202
129
  add_tag_from_definition_id(WRITTEN_OFF_ID, user, reason, comment, options)
203
130
  end
204
131
 
@@ -218,30 +145,51 @@ module KillBillClient
218
145
  add_tag_from_definition_id(TEST_ID, user, reason, comment, options)
219
146
  end
220
147
 
221
- private
222
-
223
- def control_tag_off?(control_tag_definition_id, options)
224
- res = tags('NONE', options)
225
- !((res || []).select do |t|
226
- t.tag_definition_id == control_tag_definition_id
227
- end.first.nil?)
148
+ def add_email(email, user = nil, reason = nil, comment = nil, options = {})
149
+ self.class.post "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/emails",
150
+ {
151
+ # TODO Required ATM
152
+ :accountId => account_id,
153
+ :email => email
154
+ }.to_json,
155
+ {},
156
+ {
157
+ :user => user,
158
+ :reason => reason,
159
+ :comment => comment,
160
+ }.merge(options)
161
+ end
162
+
163
+ def remove_email(email, user = nil, reason = nil, comment = nil, options = {})
164
+ self.class.delete "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/emails/#{email}",
165
+ {},
166
+ {},
167
+ {
168
+ :user => user,
169
+ :reason => reason,
170
+ :comment => comment,
171
+ }.merge(options)
228
172
  end
229
173
 
230
- def add_tag_from_definition_id(tag_definition_id, user = nil, reason = nil, comment = nil, options = {})
231
- created_tag = self.class.post "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/tags",
232
- {},
233
- {
234
- :tagList => tag_definition_id
235
- },
236
- {
237
- :user => user,
238
- :reason => reason,
239
- :comment => comment,
240
- }.merge(options),
241
- Tag
242
- created_tag.refresh(options)
174
+ def emails(audit = 'NONE', options = {})
175
+ self.class.get "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/emails",
176
+ {
177
+ :audit => audit
178
+ },
179
+ options,
180
+ AccountEmailAttributes
243
181
  end
244
182
 
183
+ def update_email_notifications(user = nil, reason = nil, comment = nil, options = {})
184
+ self.class.put "#{KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/emailNotifications",
185
+ to_json,
186
+ {},
187
+ {
188
+ :user => user,
189
+ :reason => reason,
190
+ :comment => comment,
191
+ }.merge(options)
192
+ end
245
193
  end
246
194
  end
247
195
  end
@@ -3,7 +3,7 @@ module KillBillClient
3
3
  class AccountTimeline < AccountTimelineAttributes
4
4
 
5
5
  has_one :account, KillBillClient::Model::Account
6
- has_many :payments, KillBillClient::Model::Payment
6
+ has_many :payments, KillBillClient::Model::InvoicePayment
7
7
  has_many :bundles, KillBillClient::Model::Bundle
8
8
  has_many :invoices, KillBillClient::Model::Invoice
9
9
 
@@ -4,6 +4,12 @@ module KillBillClient
4
4
 
5
5
  KILLBILL_API_BUNDLES_PREFIX = "#{KILLBILL_API_PREFIX}/bundles"
6
6
 
7
+ include KillBillClient::Model::TagHelper
8
+ include KillBillClient::Model::CustomFieldHelper
9
+
10
+ has_custom_fields KILLBILL_API_BUNDLES_PREFIX, :bundle_id
11
+ has_tags KILLBILL_API_BUNDLES_PREFIX, :bundle_id
12
+
7
13
  has_many :subscriptions, KillBillClient::Model::Subscription
8
14
  has_many :audit_logs, KillBillClient::Model::AuditLog
9
15
 
@@ -12,7 +18,7 @@ module KillBillClient
12
18
  get "#{KILLBILL_API_BUNDLES_PREFIX}/#{Resource::KILLBILL_API_PAGINATION_PREFIX}",
13
19
  {
14
20
  :offset => offset,
15
- :limit => limit
21
+ :limit => limit
16
22
  },
17
23
  options
18
24
  end
@@ -21,7 +27,7 @@ module KillBillClient
21
27
  get "#{KILLBILL_API_BUNDLES_PREFIX}/search/#{search_key}",
22
28
  {
23
29
  :offset => offset,
24
- :limit => limit
30
+ :limit => limit
25
31
  },
26
32
  options
27
33
  end
@@ -48,57 +54,52 @@ module KillBillClient
48
54
 
49
55
  end
50
56
 
51
-
52
- # Transfer the bundle to the new account. the new account_id should be set in this object
53
- def transfer(bundle_id, requested_date = nil, billing_policy = nil, user = nil, reason = nil, comment = nil, options = {})
54
-
55
- params = {}
57
+ # Transfer the bundle to the new account. The new account_id should be set in this object
58
+ def transfer(requested_date = nil, billing_policy = nil, user = nil, reason = nil, comment = nil, options = {})
59
+ params = {}
56
60
  params[:requestedDate] = requested_date unless requested_date.nil?
57
61
  params[:billingPolicy] = billing_policy unless billing_policy.nil?
58
- result = self.class.put "#{KILLBILL_API_BUNDLES_PREFIX}/#{bundle_id}",
59
- to_json,
60
- params,
61
- {
62
- :user => user,
63
- :reason => reason,
64
- :comment => comment,
65
- }.merge(options)
62
+ result = self.class.put "#{KILLBILL_API_BUNDLES_PREFIX}/#{bundle_id}",
63
+ to_json,
64
+ params,
65
+ {
66
+ :user => user,
67
+ :reason => reason,
68
+ :comment => comment,
69
+ }.merge(options)
66
70
 
67
71
  result.refresh(options)
68
72
  end
69
73
 
70
-
71
74
  # Pause the bundle (and all its subscription)
72
75
  def pause(requested_date = nil, user = nil, reason = nil, comment = nil, options = {})
73
76
 
74
- params = {}
77
+ params = {}
75
78
  params[:requestedDate] = requested_date unless requested_date.nil?
76
79
  self.class.put "#{KILLBILL_API_BUNDLES_PREFIX}/#{@bundle_id}/pause",
77
- {},
78
- params,
79
- {
80
- :user => user,
81
- :reason => reason,
82
- :comment => comment,
83
- }.merge(options)
80
+ {},
81
+ params,
82
+ {
83
+ :user => user,
84
+ :reason => reason,
85
+ :comment => comment,
86
+ }.merge(options)
84
87
  end
85
88
 
86
-
87
89
  # Resume the bundle (and all its subscription)
88
90
  def resume(requested_date = nil, user = nil, reason = nil, comment = nil, options = {})
89
91
 
90
- params = {}
92
+ params = {}
91
93
  params[:requestedDate] = requested_date unless requested_date.nil?
92
94
  self.class.put "#{KILLBILL_API_BUNDLES_PREFIX}/#{@bundle_id}/resume",
93
- {},
94
- params,
95
- {
96
- :user => user,
97
- :reason => reason,
98
- :comment => comment,
99
- }.merge(options)
95
+ {},
96
+ params,
97
+ {
98
+ :user => user,
99
+ :reason => reason,
100
+ :comment => comment,
101
+ }.merge(options)
100
102
  end
101
-
102
103
  end
103
104
  end
104
105
  end
@@ -0,0 +1,34 @@
1
+ module KillBillClient
2
+ module Model
3
+ class Catalog < CatalogAttributesSimple
4
+
5
+ has_many :products, KillBillClient::Model::Product
6
+
7
+ KILLBILL_API_CATALOG_PREFIX = "#{KILLBILL_API_PREFIX}/catalog"
8
+
9
+ class << self
10
+ def simple_catalog(options = {})
11
+ get "#{KILLBILL_API_CATALOG_PREFIX}/simpleCatalog",
12
+ {},
13
+ options
14
+ end
15
+
16
+ def available_addons(base_product_name, options = {})
17
+ get "#{KILLBILL_API_CATALOG_PREFIX}/availableAddons",
18
+ {
19
+ :baseProductName => base_product_name
20
+ },
21
+ options,
22
+ PlanDetail
23
+ end
24
+
25
+ def available_base_plans(options = {})
26
+ get "#{KILLBILL_API_CATALOG_PREFIX}/availableBasePlans",
27
+ {},
28
+ options,
29
+ PlanDetail
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -1,25 +1,17 @@
1
1
  module KillBillClient
2
2
  module Model
3
3
  class CustomField < CustomFieldAttributes
4
+
4
5
  KILLBILL_API_CUSTOM_FIELDS_PREFIX = "#{KILLBILL_API_PREFIX}/customFields"
5
6
 
6
7
  has_many :audit_logs, KillBillClient::Model::AuditLog
7
8
 
8
9
  class << self
9
- def find_all_by_account_id(account_id, included_deleted = false, audit = "NONE", options = {})
10
- get "#{Account::KILLBILL_API_ACCOUNTS_PREFIX}/#{account_id}/customFields",
11
- {
12
- :includedDeleted => included_deleted,
13
- :audit => audit
14
- },
15
- options
16
- end
17
-
18
10
  def find_in_batches(offset = 0, limit = 100, options = {})
19
11
  get "#{KILLBILL_API_CUSTOM_FIELDS_PREFIX}/#{Resource::KILLBILL_API_PAGINATION_PREFIX}",
20
12
  {
21
13
  :offset => offset,
22
- :limit => limit
14
+ :limit => limit
23
15
  },
24
16
  options
25
17
  end
@@ -28,7 +20,7 @@ module KillBillClient
28
20
  get "#{KILLBILL_API_CUSTOM_FIELDS_PREFIX}/search/#{search_key}",
29
21
  {
30
22
  :offset => offset,
31
- :limit => limit
23
+ :limit => limit
32
24
  },
33
25
  options
34
26
  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
  # #
@@ -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
  # #