chartmogul-ruby 4.9.0 → 4.11.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 +4 -4
- data/changelog.md +7 -0
- data/lib/chartmogul/api/actions/retrieve.rb +5 -2
- data/lib/chartmogul/concerns/auto_churn_subscription_setting.rb +21 -0
- data/lib/chartmogul/concerns/processing_status.rb +21 -0
- data/lib/chartmogul/data_source.rb +3 -0
- data/lib/chartmogul/data_source_settings/auto_churn_subscription_setting.rb +10 -0
- data/lib/chartmogul/data_source_settings/processing_status.rb +11 -0
- data/lib/chartmogul/invoice.rb +5 -0
- data/lib/chartmogul/metrics/customers/subscription.rb +34 -0
- data/lib/chartmogul/subscription.rb +8 -2
- data/lib/chartmogul/version.rb +1 -1
- data/lib/chartmogul.rb +4 -0
- metadata +7 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: faa555815d7e07a1c7988a30a4006a2644bacca3c8d082e9b8e7e99233d199b5
|
|
4
|
+
data.tar.gz: 9b95f302c336e40149799d347ef43e0ba0286663b9041dabbd1883f5d0c28d43
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c1bb1b4874f2fbc7fb164a263bcddedcdb52793fdb640726f07d694652e01d8c403851a2058e88838d402b27d663f9c670dc0848a253c6a55249186462723e02
|
|
7
|
+
data.tar.gz: bab85de33f8480fe7eac0065caf5f846875a45a153d46d568cfaa1ef3f548c7e898d747d4cb9d90b518cb5c6c10b8ea2b2330182ce8a15d4b82d9e9eeb0cb4ab
|
data/changelog.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# chartmogul-ruby Change Log
|
|
2
2
|
|
|
3
|
+
## Version 4.11.0 - Jan 6, 2026
|
|
4
|
+
- Add new API usage for Customer Subscriptions connect and disconnect
|
|
5
|
+
- Update retrieve to accept query params
|
|
6
|
+
|
|
7
|
+
## Version 4.10.0 - Dec 22, 2025
|
|
8
|
+
- Add fetching additional DataSource fields
|
|
9
|
+
|
|
3
10
|
## Version 4.9.0 - Nov 25, 2025
|
|
4
11
|
- Add field subscription-set-external-id to /activities, drop support for eol rubies
|
|
5
12
|
|
|
@@ -10,12 +10,15 @@ module ChartMogul
|
|
|
10
10
|
|
|
11
11
|
module ClassMethods
|
|
12
12
|
def retrieve(uuid, options = {})
|
|
13
|
+
path = "#{resource_path.apply(options)}/#{uuid}"
|
|
14
|
+
path_param_keys = resource_path.named_params.values
|
|
15
|
+
query_params = options.reject { |key| path_param_keys.include?(key) }
|
|
13
16
|
resp = handling_errors do
|
|
14
|
-
connection.get(
|
|
17
|
+
connection.get(path) do |req|
|
|
15
18
|
req.headers['Content-Type'] = 'application/json'
|
|
19
|
+
req.params = query_params
|
|
16
20
|
end
|
|
17
21
|
end
|
|
18
|
-
|
|
19
22
|
json = ChartMogul::Utils::JSONParser.parse(resp.body, immutable_keys: immutable_keys)
|
|
20
23
|
new_from_json(json)
|
|
21
24
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ChartMogul
|
|
4
|
+
module Concerns
|
|
5
|
+
module AutoChurnSubscriptionSetting
|
|
6
|
+
def self.included(base)
|
|
7
|
+
base.send :prepend, InstanceMethods
|
|
8
|
+
|
|
9
|
+
base.instance_eval do
|
|
10
|
+
readonly_attr :auto_churn_subscription_setting
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module InstanceMethods
|
|
15
|
+
def set_auto_churn_subscription_setting(auto_churn_subscription_setting_attributes)
|
|
16
|
+
@auto_churn_subscription_setting = ChartMogul::DataSourceSettings::AutoChurnSubscriptionSetting.new_from_json(auto_churn_subscription_setting_attributes) if auto_churn_subscription_setting_attributes
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ChartMogul
|
|
4
|
+
module Concerns
|
|
5
|
+
module ProcessingStatus
|
|
6
|
+
def self.included(base)
|
|
7
|
+
base.send :prepend, InstanceMethods
|
|
8
|
+
|
|
9
|
+
base.instance_eval do
|
|
10
|
+
readonly_attr :processing_status
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module InstanceMethods
|
|
15
|
+
def set_processing_status(processing_status_attributes)
|
|
16
|
+
@processing_status = ChartMogul::DataSourceSettings::ProcessingStatus.new_from_json(processing_status_attributes) if processing_status_attributes
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -9,6 +9,7 @@ module ChartMogul
|
|
|
9
9
|
readonly_attr :status
|
|
10
10
|
readonly_attr :system
|
|
11
11
|
readonly_attr :created_at, type: :time
|
|
12
|
+
readonly_attr :invoice_handling_setting
|
|
12
13
|
|
|
13
14
|
writeable_attr :name
|
|
14
15
|
|
|
@@ -17,6 +18,8 @@ module ChartMogul
|
|
|
17
18
|
include API::Actions::Custom
|
|
18
19
|
include API::Actions::Destroy
|
|
19
20
|
include API::Actions::Retrieve
|
|
21
|
+
include Concerns::AutoChurnSubscriptionSetting
|
|
22
|
+
include Concerns::ProcessingStatus
|
|
20
23
|
|
|
21
24
|
def self.all(options = {})
|
|
22
25
|
DataSources.all(options)
|
data/lib/chartmogul/invoice.rb
CHANGED
|
@@ -7,6 +7,11 @@ module ChartMogul
|
|
|
7
7
|
|
|
8
8
|
readonly_attr :uuid
|
|
9
9
|
readonly_attr :customer_uuid
|
|
10
|
+
readonly_attr :disabled
|
|
11
|
+
readonly_attr :disabled_at
|
|
12
|
+
readonly_attr :disabled_by
|
|
13
|
+
readonly_attr :edit_history_summary
|
|
14
|
+
readonly_attr :errors
|
|
10
15
|
|
|
11
16
|
writeable_attr :date, type: :time
|
|
12
17
|
writeable_attr :currency
|
|
@@ -22,12 +22,23 @@ module ChartMogul
|
|
|
22
22
|
def self.all(customer_uuid, options = {})
|
|
23
23
|
ChartMogul::Metrics::Customers::Subscriptions.all(customer_uuid, options)
|
|
24
24
|
end
|
|
25
|
+
|
|
26
|
+
def connect(data_source_uuid, customer_uuid, subscriptions)
|
|
27
|
+
subscriptions.unshift(self)
|
|
28
|
+
ChartMogul::Metrics::Customers::Subscriptions.connect(data_source_uuid, customer_uuid, subscriptions)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def disconnect(data_source_uuid, customer_uuid, subscriptions)
|
|
32
|
+
subscriptions.unshift(self)
|
|
33
|
+
ChartMogul::Metrics::Customers::Subscriptions.disconnect(data_source_uuid, customer_uuid, subscriptions)
|
|
34
|
+
end
|
|
25
35
|
end
|
|
26
36
|
|
|
27
37
|
class Subscriptions < APIResource
|
|
28
38
|
set_resource_name 'Subscriptions'
|
|
29
39
|
set_resource_path '/v1/customers/:customer_uuid/subscriptions'
|
|
30
40
|
|
|
41
|
+
include API::Actions::Custom
|
|
31
42
|
include Concerns::Entries
|
|
32
43
|
include Concerns::Pageable
|
|
33
44
|
include Concerns::PageableWithCursor
|
|
@@ -38,6 +49,29 @@ module ChartMogul
|
|
|
38
49
|
super(options.merge(customer_uuid: customer_uuid))
|
|
39
50
|
end
|
|
40
51
|
|
|
52
|
+
def self.connect(data_source_uuid, customer_uuid, subscriptions)
|
|
53
|
+
custom!(:post,
|
|
54
|
+
"/v1/customers/#{customer_uuid}/connect_subscriptions",
|
|
55
|
+
connect_disconnect_body(data_source_uuid, subscriptions))
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def self.disconnect(data_source_uuid, customer_uuid, subscriptions)
|
|
59
|
+
custom!(:post,
|
|
60
|
+
"/v1/customers/#{customer_uuid}/disconnect_subscriptions",
|
|
61
|
+
connect_disconnect_body(data_source_uuid, subscriptions))
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def self.connect_disconnect_body(data_source_uuid, subscriptions)
|
|
65
|
+
{
|
|
66
|
+
subscriptions: subscriptions.uniq.map do |subscription|
|
|
67
|
+
{
|
|
68
|
+
data_source_uuid: data_source_uuid,
|
|
69
|
+
uuid: subscription.uuid
|
|
70
|
+
}
|
|
71
|
+
end
|
|
72
|
+
}
|
|
73
|
+
end
|
|
74
|
+
|
|
41
75
|
def next(customer_uuid, options = {})
|
|
42
76
|
Subscriptions.all(customer_uuid, options.merge(cursor: cursor))
|
|
43
77
|
end
|
|
@@ -26,13 +26,19 @@ module ChartMogul
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def connect(customer_uuid, subscriptions)
|
|
29
|
+
warn 'DEPRECATION WARNING: the method ChartMogul::Subscription#connect is deprecated. Use ChartMogul::Metrics::Customers::Subscription#connect instead.'
|
|
29
30
|
subscriptions.unshift(self)
|
|
30
|
-
custom!(:post,
|
|
31
|
+
custom!(:post,
|
|
32
|
+
"/v1/customers/#{customer_uuid}/connect_subscriptions",
|
|
33
|
+
subscriptions: subscriptions.map(&:serialize_for_write))
|
|
31
34
|
end
|
|
32
35
|
|
|
33
36
|
def disconnect(customer_uuid, subscriptions)
|
|
37
|
+
warn 'DEPRECATION WARNING: the method ChartMogul::Subscription#disconnect is deprecated. Use ChartMogul::Metrics::Customers::Subscription#disconnect instead.'
|
|
34
38
|
subscriptions.unshift(self)
|
|
35
|
-
custom!(:post,
|
|
39
|
+
custom!(:post,
|
|
40
|
+
"/v1/customers/#{customer_uuid}/disconnect_subscriptions",
|
|
41
|
+
subscriptions: subscriptions.map(&:serialize_for_write))
|
|
36
42
|
end
|
|
37
43
|
|
|
38
44
|
def self.all(customer_uuid, options = {})
|
data/lib/chartmogul/version.rb
CHANGED
data/lib/chartmogul.rb
CHANGED
|
@@ -50,6 +50,8 @@ require 'chartmogul/concerns/pageable'
|
|
|
50
50
|
require 'chartmogul/concerns/pageable2'
|
|
51
51
|
require 'chartmogul/concerns/pageable_with_anchor'
|
|
52
52
|
require 'chartmogul/concerns/pageable_with_cursor'
|
|
53
|
+
require 'chartmogul/concerns/auto_churn_subscription_setting'
|
|
54
|
+
require 'chartmogul/concerns/processing_status'
|
|
53
55
|
|
|
54
56
|
require 'chartmogul/subscription'
|
|
55
57
|
require 'chartmogul/invoice'
|
|
@@ -58,6 +60,8 @@ require 'chartmogul/customer'
|
|
|
58
60
|
require 'chartmogul/note'
|
|
59
61
|
require 'chartmogul/contact'
|
|
60
62
|
require 'chartmogul/data_source'
|
|
63
|
+
require 'chartmogul/data_source_settings/auto_churn_subscription_setting'
|
|
64
|
+
require 'chartmogul/data_source_settings/processing_status'
|
|
61
65
|
require 'chartmogul/ping'
|
|
62
66
|
require 'chartmogul/plan'
|
|
63
67
|
require 'chartmogul/plan_group'
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chartmogul-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Petr Kopac
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: faraday
|
|
@@ -208,11 +207,13 @@ files:
|
|
|
208
207
|
- lib/chartmogul/api/actions/retrieve.rb
|
|
209
208
|
- lib/chartmogul/api/actions/update.rb
|
|
210
209
|
- lib/chartmogul/api_resource.rb
|
|
210
|
+
- lib/chartmogul/concerns/auto_churn_subscription_setting.rb
|
|
211
211
|
- lib/chartmogul/concerns/entries.rb
|
|
212
212
|
- lib/chartmogul/concerns/pageable.rb
|
|
213
213
|
- lib/chartmogul/concerns/pageable2.rb
|
|
214
214
|
- lib/chartmogul/concerns/pageable_with_anchor.rb
|
|
215
215
|
- lib/chartmogul/concerns/pageable_with_cursor.rb
|
|
216
|
+
- lib/chartmogul/concerns/processing_status.rb
|
|
216
217
|
- lib/chartmogul/concerns/summary.rb
|
|
217
218
|
- lib/chartmogul/concerns/summary_all.rb
|
|
218
219
|
- lib/chartmogul/config_attributes.rb
|
|
@@ -221,6 +222,8 @@ files:
|
|
|
221
222
|
- lib/chartmogul/customer.rb
|
|
222
223
|
- lib/chartmogul/customer_invoices.rb
|
|
223
224
|
- lib/chartmogul/data_source.rb
|
|
225
|
+
- lib/chartmogul/data_source_settings/auto_churn_subscription_setting.rb
|
|
226
|
+
- lib/chartmogul/data_source_settings/processing_status.rb
|
|
224
227
|
- lib/chartmogul/enrichment/customer.rb
|
|
225
228
|
- lib/chartmogul/errors/chartmogul_error.rb
|
|
226
229
|
- lib/chartmogul/errors/configuration_error.rb
|
|
@@ -291,8 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
291
294
|
- !ruby/object:Gem::Version
|
|
292
295
|
version: '0'
|
|
293
296
|
requirements: []
|
|
294
|
-
rubygems_version:
|
|
295
|
-
signing_key:
|
|
297
|
+
rubygems_version: 4.0.3
|
|
296
298
|
specification_version: 4
|
|
297
299
|
summary: Chartmogul API Ruby Client
|
|
298
300
|
test_files: []
|