chartmogul-ruby 1.1.5 → 1.1.7

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 (123) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +10 -10
  3. data/.rspec +2 -2
  4. data/.travis.yml +9 -4
  5. data/Gemfile +4 -4
  6. data/LICENSE.txt +21 -21
  7. data/README.md +111 -111
  8. data/Rakefile +6 -6
  9. data/bin/console +14 -14
  10. data/bin/setup +9 -9
  11. data/changelog.md +27 -27
  12. data/chartmogul-ruby.gemspec +30 -30
  13. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_custom_attributes.yml +80 -80
  14. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_required_tags.yml +79 -79
  15. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/can_page_through_search_endpoint.yml +43 -43
  16. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_handles_a_422_response.yml +50 -50
  17. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_interracts_with_the_API.yml +244 -244
  18. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/merges_customers.yml +185 -185
  19. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_401_if_invalid_credentials.yml +38 -38
  20. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_404_if_no_customers_found.yml +38 -38
  21. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_422_for_update_with_invalid_data.yml +86 -86
  22. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_custom_attributes.yml +80 -80
  23. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_tags.yml +80 -80
  24. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_all_customers_through_list_all_endpoint.yml +47 -47
  25. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_customer_through_retrieve_endpoint.yml +42 -42
  26. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_right_customers_through_search_endpoint.yml +43 -43
  27. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_custom_attributes.yml +82 -82
  28. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_customer.yml +139 -139
  29. data/fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_matching_user_if_exists.yml +102 -102
  30. data/fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_nil_if_customer_does_not_exist.yml +101 -101
  31. data/fixtures/vcr_cassettes/ChartMogul_CustomerInvoices/API_Interactions/correctly_interracts_with_the_API.yml +298 -298
  32. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_interracts_with_the_API.yml +189 -189
  33. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_404.yml +46 -46
  34. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_422.yml +48 -48
  35. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/retrieves_existing_data_source_matching_uuid.yml +101 -101
  36. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice.yml +37 -37
  37. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice_with_class_method.yml +37 -37
  38. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/raises_error_on_deleting_non-existing_invoice.yml +42 -42
  39. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/retrieves_existing_invoice_by_uuid.yml +50 -50
  40. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/returns_all_invoices_through_list_all_endpoint.yml +46 -46
  41. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +42 -42
  42. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/should_have_entries.yml +42 -42
  43. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +42 -42
  44. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/should_have_entries.yml +42 -42
  45. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +40 -40
  46. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/should_have_entries.yml +40 -40
  47. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/behaves_like_Pageable/should_be_pageable.yml +41 -41
  48. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/should_have_Activity_entries.yml +41 -41
  49. data/fixtures/vcr_cassettes/ChartMogul_Metrics_AllKeyMetric/should_have_entries.yml +42 -42
  50. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +40 -40
  51. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml +40 -40
  52. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +42 -42
  53. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/should_have_entries.yml +42 -42
  54. data/fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +40 -40
  55. data/fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/should_have_entries.yml +40 -40
  56. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/behaves_like_Summary/should_have_summary.yml +42 -42
  57. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/should_have_entries.yml +42 -42
  58. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +40 -40
  59. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml +40 -40
  60. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Subscription/behaves_like_Pageable/should_be_pageable.yml +40 -40
  61. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Subscription/should_have_Subscription_entries.yml +40 -40
  62. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_on_incorrect_credentials.yml +38 -38
  63. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/when_credentials_correct.yml +38 -38
  64. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_handles_a_422_error.yml +51 -51
  65. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_interacts_with_the_API.yml +152 -152
  66. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/deletes_existing_plan.yml +198 -198
  67. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/retrieves_existing_plan_by_uuid.yml +151 -151
  68. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/updates_existing_plan.yml +198 -198
  69. data/fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/correctly_interracts_with_the_API.yml +340 -340
  70. data/fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/has_multiple_aliases.yml +101 -101
  71. data/fixtures/vcr_cassettes/ChartMogul_Transactions_Payment/API_Interactions/correctly_interracts_with_the_API.yml +243 -243
  72. data/lib/chartmogul.rb +81 -81
  73. data/lib/chartmogul/api/actions/all.rb +23 -23
  74. data/lib/chartmogul/api/actions/create.rb +39 -39
  75. data/lib/chartmogul/api/actions/custom.rb +37 -37
  76. data/lib/chartmogul/api/actions/destroy.rb +27 -27
  77. data/lib/chartmogul/api/actions/retrieve.rb +23 -23
  78. data/lib/chartmogul/api/actions/update.rb +19 -19
  79. data/lib/chartmogul/api_resource.rb +68 -68
  80. data/lib/chartmogul/concerns/entries.rb +37 -37
  81. data/lib/chartmogul/concerns/pageable.rb +13 -13
  82. data/lib/chartmogul/concerns/pageable2.rb +12 -12
  83. data/lib/chartmogul/concerns/summary.rb +19 -19
  84. data/lib/chartmogul/config_attributes.rb +15 -15
  85. data/lib/chartmogul/configuration.rb +6 -6
  86. data/lib/chartmogul/customer.rb +156 -156
  87. data/lib/chartmogul/customer_invoices.rb +44 -44
  88. data/lib/chartmogul/data_source.rb +34 -34
  89. data/lib/chartmogul/enrichment/customer.rb +140 -140
  90. data/lib/chartmogul/errors/chartmogul_error.rb +19 -19
  91. data/lib/chartmogul/errors/configuration_error.rb +4 -4
  92. data/lib/chartmogul/errors/forbidden_error.rb +4 -4
  93. data/lib/chartmogul/errors/not_found_error.rb +4 -4
  94. data/lib/chartmogul/errors/resource_invalid_error.rb +4 -4
  95. data/lib/chartmogul/errors/schema_invalid_error.rb +4 -4
  96. data/lib/chartmogul/errors/unauthorized_error.rb +4 -4
  97. data/lib/chartmogul/invoice.rb +86 -86
  98. data/lib/chartmogul/line_items/one_time.rb +24 -23
  99. data/lib/chartmogul/line_items/subscription.rb +30 -29
  100. data/lib/chartmogul/metrics/activity.rb +33 -33
  101. data/lib/chartmogul/metrics/all_key_metrics.rb +24 -24
  102. data/lib/chartmogul/metrics/arpa.rb +18 -18
  103. data/lib/chartmogul/metrics/arr.rb +18 -18
  104. data/lib/chartmogul/metrics/asp.rb +18 -18
  105. data/lib/chartmogul/metrics/base.rb +54 -54
  106. data/lib/chartmogul/metrics/customer_churn_rate.rb +18 -18
  107. data/lib/chartmogul/metrics/customer_count.rb +18 -18
  108. data/lib/chartmogul/metrics/ltv.rb +18 -18
  109. data/lib/chartmogul/metrics/mrr.rb +26 -26
  110. data/lib/chartmogul/metrics/mrr_churn_rate.rb +18 -18
  111. data/lib/chartmogul/metrics/subscription.rb +37 -37
  112. data/lib/chartmogul/object.rb +119 -119
  113. data/lib/chartmogul/ping.rb +14 -14
  114. data/lib/chartmogul/plan.rb +37 -37
  115. data/lib/chartmogul/resource_path.rb +42 -42
  116. data/lib/chartmogul/subscription.rb +47 -47
  117. data/lib/chartmogul/summary.rb +7 -7
  118. data/lib/chartmogul/transactions/payment.rb +24 -24
  119. data/lib/chartmogul/transactions/refund.rb +24 -24
  120. data/lib/chartmogul/utils/hash_snake_caser.rb +49 -49
  121. data/lib/chartmogul/utils/json_parser.rb +10 -10
  122. data/lib/chartmogul/version.rb +3 -3
  123. metadata +3 -4
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class ConfigurationError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class ConfigurationError < ChartMogulError
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class ForbiddenError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class ForbiddenError < ChartMogulError
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class NotFoundError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class NotFoundError < ChartMogulError
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class ResourceInvalidError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class ResourceInvalidError < ChartMogulError
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class SchemaInvalidError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class SchemaInvalidError < ChartMogulError
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
- module ChartMogul
2
- class UnauthorizedError < ChartMogulError
3
- end
4
- end
1
+ module ChartMogul
2
+ class UnauthorizedError < ChartMogulError
3
+ end
4
+ end
@@ -1,86 +1,86 @@
1
- module ChartMogul
2
- class Invoice < APIResource
3
- set_resource_name 'Invoice'
4
- set_resource_path '/v1/invoices'
5
-
6
- readonly_attr :uuid
7
- readonly_attr :customer_uuid
8
-
9
- writeable_attr :date, type: :time
10
- writeable_attr :currency
11
- writeable_attr :line_items, default: []
12
- writeable_attr :transactions, default: []
13
- writeable_attr :external_id
14
- writeable_attr :data_source_uuid
15
- writeable_attr :due_date, type: :time
16
-
17
- include API::Actions::Retrieve
18
- include API::Actions::Destroy
19
-
20
- def serialize_line_items
21
- line_items.map(&:serialize_for_write)
22
- end
23
-
24
- def serialize_transactions
25
- transactions.map(&:serialize_for_write)
26
- end
27
-
28
- def self.all(options = {})
29
- Invoices.all(options)
30
- end
31
-
32
- private
33
-
34
- def set_line_items(line_items_attributes)
35
- @line_items = line_items_attributes.map.with_index do |line_item_attributes, index|
36
- existing_line_item = line_items[index]
37
-
38
- if existing_line_item
39
- existing_line_item.assign_all_attributes(line_item_attributes)
40
- else
41
- line_item_class(line_item_attributes[:type])
42
- .new_from_json(line_item_attributes.merge(invoice_uuid: uuid))
43
- end
44
- end
45
- end
46
-
47
- def set_transactions(transactions_attributes)
48
- @transactions = transactions_attributes.map.with_index do |transaction_attributes, index|
49
- existing_transaction = transactions[index]
50
-
51
- if existing_transaction
52
- existing_transaction.assign_all_attributes(transaction_attributes)
53
- else
54
- transaction_class(transaction_attributes[:type])
55
- .new_from_json(transaction_attributes.merge(invoice_uuid: uuid))
56
- end
57
- end
58
- end
59
-
60
- def line_item_class(type)
61
- case type
62
- when 'subscription' then ChartMogul::LineItems::Subscription
63
- when 'one_time' then ChartMogul::LineItems::OneTime
64
- end
65
- end
66
-
67
- def transaction_class(type)
68
- case type
69
- when 'payment' then ChartMogul::Transactions::Payment
70
- when 'refund' then ChartMogul::Transactions::Refund
71
- end
72
- end
73
- end
74
-
75
- class Invoices < APIResource
76
- set_resource_name 'Invoices'
77
- set_resource_path '/v1/invoices'
78
-
79
- set_resource_root_key :invoices
80
-
81
- include Concerns::Entries
82
- include Concerns::Pageable2
83
-
84
- set_entry_class Invoice
85
- end
86
- end
1
+ module ChartMogul
2
+ class Invoice < APIResource
3
+ set_resource_name 'Invoice'
4
+ set_resource_path '/v1/invoices'
5
+
6
+ readonly_attr :uuid
7
+ readonly_attr :customer_uuid
8
+
9
+ writeable_attr :date, type: :time
10
+ writeable_attr :currency
11
+ writeable_attr :line_items, default: []
12
+ writeable_attr :transactions, default: []
13
+ writeable_attr :external_id
14
+ writeable_attr :data_source_uuid
15
+ writeable_attr :due_date, type: :time
16
+
17
+ include API::Actions::Retrieve
18
+ include API::Actions::Destroy
19
+
20
+ def serialize_line_items
21
+ line_items.map(&:serialize_for_write)
22
+ end
23
+
24
+ def serialize_transactions
25
+ transactions.map(&:serialize_for_write)
26
+ end
27
+
28
+ def self.all(options = {})
29
+ Invoices.all(options)
30
+ end
31
+
32
+ private
33
+
34
+ def set_line_items(line_items_attributes)
35
+ @line_items = line_items_attributes.map.with_index do |line_item_attributes, index|
36
+ existing_line_item = line_items[index]
37
+
38
+ if existing_line_item
39
+ existing_line_item.assign_all_attributes(line_item_attributes)
40
+ else
41
+ line_item_class(line_item_attributes[:type])
42
+ .new_from_json(line_item_attributes.merge(invoice_uuid: uuid))
43
+ end
44
+ end
45
+ end
46
+
47
+ def set_transactions(transactions_attributes)
48
+ @transactions = transactions_attributes.map.with_index do |transaction_attributes, index|
49
+ existing_transaction = transactions[index]
50
+
51
+ if existing_transaction
52
+ existing_transaction.assign_all_attributes(transaction_attributes)
53
+ else
54
+ transaction_class(transaction_attributes[:type])
55
+ .new_from_json(transaction_attributes.merge(invoice_uuid: uuid))
56
+ end
57
+ end
58
+ end
59
+
60
+ def line_item_class(type)
61
+ case type
62
+ when 'subscription' then ChartMogul::LineItems::Subscription
63
+ when 'one_time' then ChartMogul::LineItems::OneTime
64
+ end
65
+ end
66
+
67
+ def transaction_class(type)
68
+ case type
69
+ when 'payment' then ChartMogul::Transactions::Payment
70
+ when 'refund' then ChartMogul::Transactions::Refund
71
+ end
72
+ end
73
+ end
74
+
75
+ class Invoices < APIResource
76
+ set_resource_name 'Invoices'
77
+ set_resource_path '/v1/invoices'
78
+
79
+ set_resource_root_key :invoices
80
+
81
+ include Concerns::Entries
82
+ include Concerns::Pageable2
83
+
84
+ set_entry_class Invoice
85
+ end
86
+ end
@@ -1,23 +1,24 @@
1
- module ChartMogul
2
- module LineItems
3
- class OneTime < ChartMogul::Object
4
- readonly_attr :uuid
5
-
6
- writeable_attr :type, default: 'one_time'
7
- writeable_attr :amount_in_cents
8
- writeable_attr :description
9
- writeable_attr :quantity
10
- writeable_attr :discount_amount_in_cents
11
- writeable_attr :discount_code
12
- writeable_attr :tax_amount_in_cents
13
- writeable_attr :external_id
14
-
15
- writeable_attr :invoice_uuid
16
-
17
- def initialize(attributes = {})
18
- super(attributes)
19
- @type = 'one_time'
20
- end
21
- end
22
- end
23
- end
1
+ module ChartMogul
2
+ module LineItems
3
+ class OneTime < ChartMogul::Object
4
+ readonly_attr :uuid
5
+
6
+ writeable_attr :type, default: 'one_time'
7
+ writeable_attr :amount_in_cents
8
+ writeable_attr :description
9
+ writeable_attr :quantity
10
+ writeable_attr :discount_amount_in_cents
11
+ writeable_attr :discount_code
12
+ writeable_attr :tax_amount_in_cents
13
+ writeable_attr :transaction_fees_in_cents
14
+ writeable_attr :external_id
15
+
16
+ writeable_attr :invoice_uuid
17
+
18
+ def initialize(attributes = {})
19
+ super(attributes)
20
+ @type = 'one_time'
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,29 +1,30 @@
1
- module ChartMogul
2
- module LineItems
3
- class Subscription < ChartMogul::Object
4
- readonly_attr :uuid
5
-
6
- writeable_attr :type, default: 'subscription'
7
- writeable_attr :subscription_external_id
8
- writeable_attr :service_period_start, type: :time
9
- writeable_attr :service_period_end, type: :time
10
- writeable_attr :amount_in_cents
11
- writeable_attr :cancelled_at, type: :time
12
- writeable_attr :prorated
13
- writeable_attr :quantity
14
- writeable_attr :discount_amount_in_cents
15
- writeable_attr :discount_code
16
- writeable_attr :tax_amount_in_cents
17
- writeable_attr :external_id
18
-
19
- readonly_attr :subscription_uuid
20
- writeable_attr :invoice_uuid
21
- writeable_attr :plan_uuid
22
-
23
- def initialize(attributes = {})
24
- super(attributes)
25
- @type = 'subscription'
26
- end
27
- end
28
- end
29
- end
1
+ module ChartMogul
2
+ module LineItems
3
+ class Subscription < ChartMogul::Object
4
+ readonly_attr :uuid
5
+
6
+ writeable_attr :type, default: 'subscription'
7
+ writeable_attr :subscription_external_id
8
+ writeable_attr :service_period_start, type: :time
9
+ writeable_attr :service_period_end, type: :time
10
+ writeable_attr :amount_in_cents
11
+ writeable_attr :cancelled_at, type: :time
12
+ writeable_attr :prorated
13
+ writeable_attr :quantity
14
+ writeable_attr :discount_amount_in_cents
15
+ writeable_attr :discount_code
16
+ writeable_attr :tax_amount_in_cents
17
+ writeable_attr :transaction_fees_in_cents
18
+ writeable_attr :external_id
19
+
20
+ readonly_attr :subscription_uuid
21
+ writeable_attr :invoice_uuid
22
+ writeable_attr :plan_uuid
23
+
24
+ def initialize(attributes = {})
25
+ super(attributes)
26
+ @type = 'subscription'
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,33 +1,33 @@
1
- module ChartMogul
2
- module Metrics
3
- class Activity < ChartMogul::Object
4
- readonly_attr :id
5
- readonly_attr :description
6
- readonly_attr :type
7
- readonly_attr :date, type: :time
8
- readonly_attr :activity_arr
9
- readonly_attr :activity_mrr
10
- readonly_attr :activity_mrr_movement
11
- readonly_attr :currency
12
- readonly_attr :currency_sign
13
-
14
- def self.all(customer_uuid, options = {})
15
- ChartMogul::Metrics::Activities.all(customer_uuid, options)
16
- end
17
- end
18
-
19
- class Activities < APIResource
20
- set_resource_name 'Activities'
21
- set_resource_path '/v1/customers/:customer_uuid/activities'
22
-
23
- include Concerns::Entries
24
- include Concerns::Pageable
25
-
26
- set_entry_class Activity
27
-
28
- def self.all(customer_uuid, options = {})
29
- super(options.merge(customer_uuid: customer_uuid))
30
- end
31
- end
32
- end
33
- end
1
+ module ChartMogul
2
+ module Metrics
3
+ class Activity < ChartMogul::Object
4
+ readonly_attr :id
5
+ readonly_attr :description
6
+ readonly_attr :type
7
+ readonly_attr :date, type: :time
8
+ readonly_attr :activity_arr
9
+ readonly_attr :activity_mrr
10
+ readonly_attr :activity_mrr_movement
11
+ readonly_attr :currency
12
+ readonly_attr :currency_sign
13
+
14
+ def self.all(customer_uuid, options = {})
15
+ ChartMogul::Metrics::Activities.all(customer_uuid, options)
16
+ end
17
+ end
18
+
19
+ class Activities < APIResource
20
+ set_resource_name 'Activities'
21
+ set_resource_path '/v1/customers/:customer_uuid/activities'
22
+
23
+ include Concerns::Entries
24
+ include Concerns::Pageable
25
+
26
+ set_entry_class Activity
27
+
28
+ def self.all(customer_uuid, options = {})
29
+ super(options.merge(customer_uuid: customer_uuid))
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,24 +1,24 @@
1
- module ChartMogul
2
- module Metrics
3
- class AllKeyMetric < ChartMogul::Object
4
- readonly_attr :date, type: :date
5
- readonly_attr :arpa
6
- readonly_attr :arr
7
- readonly_attr :asp
8
- readonly_attr :customer_churn_rate
9
- readonly_attr :customers
10
- readonly_attr :ltv
11
- readonly_attr :mrr
12
- readonly_attr :mrr_churn_rate
13
- end
14
-
15
- class AllKeyMetrics < APIResource
16
- set_resource_name 'All Key Metrics'
17
- set_resource_path '/v1/metrics/all'
18
-
19
- include Concerns::Entries
20
-
21
- set_entry_class AllKeyMetric
22
- end
23
- end
24
- end
1
+ module ChartMogul
2
+ module Metrics
3
+ class AllKeyMetric < ChartMogul::Object
4
+ readonly_attr :date, type: :date
5
+ readonly_attr :arpa
6
+ readonly_attr :arr
7
+ readonly_attr :asp
8
+ readonly_attr :customer_churn_rate
9
+ readonly_attr :customers
10
+ readonly_attr :ltv
11
+ readonly_attr :mrr
12
+ readonly_attr :mrr_churn_rate
13
+ end
14
+
15
+ class AllKeyMetrics < APIResource
16
+ set_resource_name 'All Key Metrics'
17
+ set_resource_path '/v1/metrics/all'
18
+
19
+ include Concerns::Entries
20
+
21
+ set_entry_class AllKeyMetric
22
+ end
23
+ end
24
+ end