chartmogul-ruby 3.3.0 → 4.0.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.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +1 -1
  3. data/.gitignore +2 -1
  4. data/README.md +1 -1
  5. data/changelog.md +15 -0
  6. data/chartmogul-ruby.gemspec +2 -2
  7. data/lib/chartmogul/api/actions/custom.rb +2 -1
  8. data/lib/chartmogul/concerns/pageable_with_cursor.rb +4 -0
  9. data/lib/chartmogul/contact.rb +1 -4
  10. data/lib/chartmogul/customer.rb +13 -1
  11. data/lib/chartmogul/customer_invoices.rb +5 -1
  12. data/lib/chartmogul/enrichment/customer.rb +1 -0
  13. data/lib/chartmogul/errors/deprecated_parameter_error.rb +6 -0
  14. data/lib/chartmogul/invoice.rb +1 -0
  15. data/lib/chartmogul/metrics/activity.rb +1 -4
  16. data/lib/chartmogul/metrics/customers/activity.rb +5 -0
  17. data/lib/chartmogul/metrics/customers/subscription.rb +5 -0
  18. data/lib/chartmogul/plan.rb +1 -0
  19. data/lib/chartmogul/plan_group.rb +1 -0
  20. data/lib/chartmogul/plan_groups/plans.rb +11 -0
  21. data/lib/chartmogul/resource_path.rb +6 -1
  22. data/lib/chartmogul/subscription.rb +5 -0
  23. data/lib/chartmogul/subscription_event.rb +1 -0
  24. data/lib/chartmogul/version.rb +1 -1
  25. data/lib/chartmogul.rb +1 -0
  26. metadata +6 -103
  27. data/fixtures/vcr_cassettes/ChartMogul_APIResource/connection/works_in_a_threaded_environment.yml +0 -112
  28. data/fixtures/vcr_cassettes/ChartMogul_APIResource/connection/works_when_credentials_are_updated.yml +0 -77
  29. data/fixtures/vcr_cassettes/ChartMogul_Account/returns_details_of_current_account.yml +0 -64
  30. data/fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/creates_contact_correctly.yml +0 -134
  31. data/fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/destroys_contact_correctly.yml +0 -99
  32. data/fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/merges_contact_correctly.yml +0 -105
  33. data/fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/paginates_correctly.yml +0 -133
  34. data/fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/updates_contact_correctly.yml +0 -102
  35. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_custom_attributes.yml +0 -80
  36. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_required_tags.yml +0 -79
  37. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/can_page_through_search_endpoint.yml +0 -43
  38. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_handles_a_422_response.yml +0 -50
  39. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_interracts_with_the_API.yml +0 -192
  40. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/creates_a_contact_belonging_to_the_customer_correctly.yml +0 -72
  41. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/lists_the_contacts_belonging_to_the_customer_correctly.yml +0 -72
  42. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/merges_customers.yml +0 -185
  43. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_401_if_invalid_credentials.yml +0 -38
  44. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_404_if_no_customers_found.yml +0 -38
  45. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_422_for_update_with_invalid_data.yml +0 -86
  46. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_custom_attributes.yml +0 -80
  47. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_tags.yml +0 -80
  48. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/respects_camel_case_for_all_customers_endpoint.yml +0 -45
  49. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_all_customers_through_list_all_endpoint.yml +0 -47
  50. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_customer_through_retrieve_endpoint.yml +0 -42
  51. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_right_customers_through_search_endpoint.yml +0 -43
  52. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_custom_attributes.yml +0 -81
  53. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_customer.yml +0 -139
  54. data/fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_customer_using_class_method.yml +0 -53
  55. data/fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_matching_user_if_exists.yml +0 -102
  56. data/fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_nil_if_customer_does_not_exist.yml +0 -101
  57. data/fixtures/vcr_cassettes/ChartMogul_CustomerInvoices/API_Interactions/correctly_interracts_with_the_API.yml +0 -337
  58. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_interracts_with_the_API.yml +0 -189
  59. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_404.yml +0 -46
  60. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_422.yml +0 -48
  61. data/fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/retrieves_existing_data_source_matching_uuid.yml +0 -101
  62. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice.yml +0 -37
  63. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice_with_class_method.yml +0 -37
  64. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/raises_error_on_deleting_non-existing_invoice.yml +0 -42
  65. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/retrieves_existing_invoice_by_uuid.yml +0 -50
  66. data/fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/returns_all_invoices_through_list_all_endpoint.yml +0 -46
  67. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -42
  68. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -42
  69. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -42
  70. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -42
  71. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -40
  72. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -40
  73. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ActivitiesExport/get_activities_export.yml +0 -43
  74. data/fixtures/vcr_cassettes/ChartMogul_Metrics_ActivitiesExport/post_activities_export.yml +0 -83
  75. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/behaves_like_PageableWithAnchor/should_be_pageable.yml +0 -44
  76. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/should_have_Activity_entries.yml +0 -44
  77. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Activity.yml +0 -37
  78. data/fixtures/vcr_cassettes/ChartMogul_Metrics_AllKeyMetric/should_have_entries.yml +0 -42
  79. data/fixtures/vcr_cassettes/ChartMogul_Metrics_AllKeyMetric/should_have_summary.yml +0 -42
  80. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -40
  81. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -40
  82. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -42
  83. data/fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -42
  84. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Activity/behaves_like_Pageable/should_be_pageable.yml +0 -41
  85. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Activity/should_have_Activity_entries.yml +0 -41
  86. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Subscription/behaves_like_Pageable/should_be_pageable.yml +0 -40
  87. data/fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Subscription/should_have_Subscription_entries.yml +0 -40
  88. data/fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -40
  89. data/fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -40
  90. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/behaves_like_Summary/should_have_summary.yml +0 -42
  91. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/should_have_entries.yml +0 -42
  92. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml +0 -40
  93. data/fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml +0 -40
  94. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_on_incorrect_credentials.yml +0 -38
  95. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_with_500_internal_server_error.yml +0 -40
  96. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_with_504_gateway_timeout_error.yml +0 -40
  97. data/fixtures/vcr_cassettes/ChartMogul_Ping/pings/when_credentials_correct.yml +0 -38
  98. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_handles_a_422_error.yml +0 -51
  99. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_interacts_with_the_API.yml +0 -152
  100. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/deletes_existing_plan.yml +0 -198
  101. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/retrieves_existing_plan_by_uuid.yml +0 -151
  102. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/updates_existing_plan.yml +0 -198
  103. data/fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/updates_existing_plan_using_class_method.yml +0 -164
  104. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/correctly_handles_a_422_error.yml +0 -50
  105. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/deletes_a_plan_group.yml +0 -293
  106. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/retrieves_existing_plan_group_by_uuid.yml +0 -251
  107. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/returns_an_array_of_plan_groups.yml +0 -357
  108. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_name.yml +0 -304
  109. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_name_via_class_method.yml +0 -297
  110. data/fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_plans.yml +0 -411
  111. data/fixtures/vcr_cassettes/ChartMogul_PlanGroups_Plans/API_interactions/given_a_plan_group_uuid_returns_an_array_of_plans_in_the_plan_group.yml +0 -252
  112. data/fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/connects_subscriptions.yml +0 -436
  113. data/fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/correctly_interracts_with_the_API.yml +0 -340
  114. data/fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/has_multiple_aliases.yml +0 -101
  115. data/fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_has_time_objects/is_setting_the_cancellation_dates_of_the_subscription.yml +0 -138
  116. data/fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_includes_invalid_entries/raises_an_exception.yml +0 -93
  117. data/fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_includes_valid_entries/is_setting_the_cancellation_dates_of_the_subscription.yml +0 -138
  118. data/fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_is_empty/makes_an_API_call_and_removes_the_cancellation_dates.yml +0 -138
  119. data/fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/creates_a_new_subscription_event.yml +0 -320
  120. data/fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/creates_a_new_subscription_event_through_initialization.yml +0 -320
  121. data/fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/deletes_the_subscription_event.yml +0 -377
  122. data/fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/lists_all_subscription_events.yml +0 -320
  123. data/fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/updates_the_subscription_event.yml +0 -377
  124. data/fixtures/vcr_cassettes/ChartMogul_Transactions_Payment/API_Interactions/correctly_interracts_with_the_API.yml +0 -243
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97bcbf7f93e375c5e4cd587ccdb8e150bca836c2d636b5fb401ad2563f1e1c59
4
- data.tar.gz: c50d53814cbda62472f2ca0ab7e48693b4ad775773749a728c1793b6c49752c7
3
+ metadata.gz: 66ebd465c81aa14f0e68e406fd7a4b29137d3d019d6ceb4e1da1aaf1d40b0ef4
4
+ data.tar.gz: 7380c7be4a87d8d8822702eeed51d50dbf36fabbb727d4469239d023282c14eb
5
5
  SHA512:
6
- metadata.gz: e54f974d97329f66bb5e5106d32471ca837aadb0cb03639b94e860e4f548def5a5b39ccd59768bab48552729fb6898f519731486e7892a2e186168749a46c677
7
- data.tar.gz: 1a5a5314317691556d11ee826e78f7d6468d96e629efe52a5d6b09a8703d3a5f76e450c741f36bd81fdf42ea130c9f239aa75d0b98e1e5d492bff7b1a715b78a
6
+ metadata.gz: 20c35e5c04d023dce1487916c10a543afe6773c2781ffe10b324045e9c6cad1c7e9b7521d16007fae4ce7345c1f34d06dfd40ed98dd8941ead4f435728ffda06
7
+ data.tar.gz: fd0be8d9cee2c624e945f33f55effcea1825d7f72913f0d765b97e70084a1ba3fc0561ad0b922f4691e3b2daa3a70a82b87b8d7b44ec72bb69a107e528bfb332
@@ -9,7 +9,7 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
  strategy:
11
11
  matrix:
12
- ruby-version: [2.6, 2.7, 3.0, 3.1, 3.2]
12
+ ruby-version: [2.7, 3.0, 3.1, 3.2]
13
13
  steps:
14
14
  - uses: actions/checkout@v2
15
15
  - name: Set up Ruby ${{ matrix.ruby-version }}
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
  /tmp/
10
10
  *.swp
11
11
  vendor/bundle
12
- /.idea
12
+ /.idea
13
+ .DS_Store
data/README.md CHANGED
@@ -47,7 +47,7 @@ Or install it yourself as:
47
47
  $ gem install chartmogul-ruby
48
48
 
49
49
  ### Supported Ruby Versions
50
- This gem supports Ruby 2.3 and above.
50
+ This gem supports Ruby 2.7 and above.
51
51
 
52
52
  ## Configuration
53
53
 
data/changelog.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # chartmogul-ruby Change Log
2
2
 
3
+ ## Version 4.0.0 - November 1 2023
4
+ - Remove support for old pagination using `page` parameter.
5
+ - Drop support for Ruby versions below 2.7.
6
+
7
+ ## Version 3.3.1 - October 27 2023
8
+ - Add support for cursor based pagination to `.all` endpoints.
9
+ - Add `.next` pagination method for all supported cursor based endpoints.
10
+ - Move `fixtures/` folder inside the `spec/` folder.
11
+ - Update `.merge!` methods to always return `true` when successful.
12
+ - Add new attributes to `ChartMogul::Customer` resource.
13
+ - Do not error when the server returns an empty body from `.custom!` methods.
14
+
15
+ ## Version 3.3.0 - August 14 2023
16
+ - Fix an issue with creating using `SubscriptionEvents.create!(attrs)`.
17
+
3
18
  ## Version 3.2.0 - June 14 2023
4
19
  - Adds support for Faraday 2.7
5
20
  - Removes support for Ruby 2.3, 2.4, and 2.5
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.description = 'Official Ruby client for ChartMogul\'s API'
15
15
  spec.homepage = 'https://github.com/chartmogul/chartmogul-ruby'
16
16
  spec.license = 'MIT'
17
- spec.required_ruby_version = '>= 2.3'
17
+ spec.required_ruby_version = '>= 2.7'
18
18
 
19
19
  spec.post_install_message = %q{
20
20
  Starting October 29 2021, we are updating our developer libraries to support the enhanced API Access Management. Please use the same API Key for both API Token and Secret Key.
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'faraday-retry', '~> 2.2'
32
32
 
33
33
  spec.add_development_dependency 'bundler', '~> 2'
34
- spec.add_development_dependency 'pry', '~> 0.12.2'
34
+ spec.add_development_dependency 'pry', '~> 0.14.2'
35
35
  spec.add_development_dependency 'rake', '~> 13.0'
36
36
  spec.add_development_dependency 'rspec', '~> 3.0'
37
37
  spec.add_development_dependency 'rubocop', '0.79'
@@ -25,7 +25,8 @@ module ChartMogul
25
25
  req.body = JSON.dump(body_data)
26
26
  end
27
27
  end
28
- ChartMogul::Utils::JSONParser.parse(resp.body, immutable_keys: immutable_keys)
28
+ parsed_body = resp.body.empty? ? '{}' : resp.body
29
+ ChartMogul::Utils::JSONParser.parse(parsed_body, immutable_keys: immutable_keys)
29
30
  end
30
31
 
31
32
  def custom!(http_method, http_path, body_data = {})
@@ -9,6 +9,10 @@ module ChartMogul
9
9
  readonly_attr :cursor
10
10
  end
11
11
  end
12
+
13
+ def next(options = {})
14
+ self.class.all(options.merge(cursor: cursor))
15
+ end
12
16
  end
13
17
  end
14
18
  end
@@ -34,6 +34,7 @@ module ChartMogul
34
34
 
35
35
  def self.merge!(into_uuid:, from_uuid:)
36
36
  custom!(:post, "/v1/contacts/#{into_uuid}/merge/#{from_uuid}")
37
+ true
37
38
  end
38
39
 
39
40
  def serialize_for_write
@@ -61,9 +62,5 @@ module ChartMogul
61
62
  include Concerns::PageableWithCursor
62
63
 
63
64
  set_entry_class Contact
64
-
65
- def next(options = {})
66
- Contacts.all(options.merge(cursor: cursor))
67
- end
68
65
  end
69
66
  end
@@ -34,6 +34,8 @@ module ChartMogul
34
34
  writeable_attr :data_source_uuid
35
35
  writeable_attr :lead_created_at, type: :time
36
36
  writeable_attr :free_trial_started_at, type: :time
37
+ writeable_attr :owner
38
+ writeable_attr :primary_contact
37
39
 
38
40
  include API::Actions::Create
39
41
  include API::Actions::Custom
@@ -53,6 +55,15 @@ module ChartMogul
53
55
  all(external_id: external_id).first
54
56
  end
55
57
 
58
+ def self.merge!(into_uuid:, from_uuid:)
59
+ options = {
60
+ from: { customer_uuid: from_uuid },
61
+ into: { customer_uuid: into_uuid }
62
+ }
63
+ custom!(:post, '/v1/customers/merges', options)
64
+ true
65
+ end
66
+
56
67
  def subscriptions(options = {})
57
68
  @subscriptions ||= ChartMogul::Subscription.all(uuid, options)
58
69
  end
@@ -109,7 +120,7 @@ module ChartMogul
109
120
  def remove_custom_attributes!(*custom_attrs)
110
121
  self.custom_attributes = custom_without_assign!(:delete,
111
122
  "/v1/customers/#{uuid}/attributes/custom",
112
- custom: custom_attrs)[:custom]
123
+ custom: custom_attrs)
113
124
  end
114
125
 
115
126
  def merge_into!(other_customer)
@@ -146,6 +157,7 @@ module ChartMogul
146
157
  include API::Actions::Custom
147
158
  include Concerns::Pageable
148
159
  include Concerns::Pageable2
160
+ include Concerns::PageableWithCursor
149
161
 
150
162
  set_entry_class Customer
151
163
 
@@ -17,6 +17,7 @@ module ChartMogul
17
17
  include API::Actions::All
18
18
  include API::Actions::Create
19
19
  include Concerns::Pageable2
20
+ include Concerns::PageableWithCursor
20
21
 
21
22
  def serialize_invoices
22
23
  map(&:serialize_for_write)
@@ -26,6 +27,10 @@ module ChartMogul
26
27
  super(options.merge(customer_uuid: customer_uuid))
27
28
  end
28
29
 
30
+ def next(options = {})
31
+ CustomerInvoices.all(customer_uuid, options.merge(cursor: cursor))
32
+ end
33
+
29
34
  def self.destroy_all!(data_source_uuid, customer_uuid)
30
35
  path = ChartMogul::ResourcePath.new('v1/data_sources/:data_source_uuid/customers/:customer_uuid/invoices')
31
36
  handling_errors do
@@ -34,7 +39,6 @@ module ChartMogul
34
39
  true
35
40
  end
36
41
 
37
-
38
42
  def_delegators :invoices, :each, :[], :<<, :size, :length, :empty?, :first
39
43
 
40
44
  private
@@ -120,6 +120,7 @@ module ChartMogul
120
120
  include Concerns::Entries
121
121
  include API::Actions::Custom
122
122
  include Concerns::Pageable
123
+ include Concerns::PageableWithCursor
123
124
 
124
125
  set_entry_class DeprecatedCustomer
125
126
 
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ChartMogul
4
+ class DeprecatedParameterError < ChartMogulError
5
+ end
6
+ end
@@ -83,6 +83,7 @@ module ChartMogul
83
83
 
84
84
  include Concerns::Entries
85
85
  include Concerns::Pageable2
86
+ include Concerns::PageableWithCursor
86
87
 
87
88
  set_entry_class Invoice
88
89
  end
@@ -29,12 +29,9 @@ module ChartMogul
29
29
 
30
30
  include Concerns::Entries
31
31
  include Concerns::PageableWithAnchor
32
+ include Concerns::PageableWithCursor
32
33
 
33
34
  set_entry_class Activity
34
-
35
- def self.all(options = {})
36
- super(options)
37
- end
38
35
  end
39
36
  end
40
37
  end
@@ -26,12 +26,17 @@ module ChartMogul
26
26
 
27
27
  include Concerns::Entries
28
28
  include Concerns::Pageable
29
+ include Concerns::PageableWithCursor
29
30
 
30
31
  set_entry_class Activity
31
32
 
32
33
  def self.all(customer_uuid, options = {})
33
34
  super(options.merge(customer_uuid: customer_uuid))
34
35
  end
36
+
37
+ def next(customer_uuid, options = {})
38
+ Activities.all(customer_uuid, options.merge(cursor: cursor))
39
+ end
35
40
  end
36
41
  end
37
42
  end
@@ -29,12 +29,17 @@ module ChartMogul
29
29
 
30
30
  include Concerns::Entries
31
31
  include Concerns::Pageable
32
+ include Concerns::PageableWithCursor
32
33
 
33
34
  set_entry_class Subscription
34
35
 
35
36
  def self.all(customer_uuid, options = {})
36
37
  super(options.merge(customer_uuid: customer_uuid))
37
38
  end
39
+
40
+ def next(customer_uuid, options = {})
41
+ Subscriptions.all(customer_uuid, options.merge(cursor: cursor))
42
+ end
38
43
  end
39
44
  end
40
45
  end
@@ -33,6 +33,7 @@ module ChartMogul
33
33
 
34
34
  include Concerns::Entries
35
35
  include Concerns::Pageable2
36
+ include Concerns::PageableWithCursor
36
37
 
37
38
  set_entry_class Plan
38
39
  end
@@ -32,6 +32,7 @@ module ChartMogul
32
32
 
33
33
  include Concerns::Entries
34
34
  include Concerns::Pageable2
35
+ include Concerns::PageableWithCursor
35
36
 
36
37
  set_entry_class PlanGroup
37
38
  end
@@ -10,8 +10,19 @@ module ChartMogul
10
10
 
11
11
  include Concerns::Entries
12
12
  include Concerns::Pageable2
13
+ include Concerns::PageableWithCursor
14
+ include API::Actions::Custom
13
15
 
14
16
  set_entry_class Plan
17
+
18
+ def self.all(plan_group_uuid, options = {})
19
+ super(options.merge(plan_group_uuid: plan_group_uuid))
20
+ end
21
+
22
+ def next(plan_group_uuid, options = {})
23
+ path = ChartMogul::ResourcePath.new("/v1/plan_groups/#{plan_group_uuid}/plans")
24
+ custom!(:get, path.apply_with_get_params(options.merge(cursor: cursor)))
25
+ end
15
26
  end
16
27
  end
17
28
  end
@@ -9,6 +9,8 @@ module ChartMogul
9
9
 
10
10
  class RequiredParameterMissing < StandardError; end
11
11
 
12
+ DEPRECATED_PARAMETER = 'page'
13
+
12
14
  def initialize(path)
13
15
  @path = path
14
16
  @named_params = path.scan(/:\w+/).each_with_object({}) do |named_param, hash|
@@ -22,7 +24,6 @@ module ChartMogul
22
24
 
23
25
  # For path = '/hello/:hello_id/say' & params = { hello_id: 1, search: 'cat' }
24
26
  # it will return '/hello/1/say?search=cat'
25
-
26
27
  def apply_with_get_params(params = {})
27
28
  base_path = apply_named_params(params)
28
29
  get_params = params.reject { |param_name| named_params.values.include?(param_name) }
@@ -33,6 +34,10 @@ module ChartMogul
33
34
  private
34
35
 
35
36
  def apply_named_params(params)
37
+ if params.keys.map(&:to_s).include?(DEPRECATED_PARAMETER)
38
+ raise(ChartMogul::DeprecatedParameterError, "#{DEPRECATED_PARAMETER} is deprecated.")
39
+ end
40
+
36
41
  path.dup.tap do |path|
37
42
  named_params.each do |named_param, param_key|
38
43
  unless params.key?(param_key)
@@ -55,11 +55,16 @@ module ChartMogul
55
55
 
56
56
  include Concerns::Entries
57
57
  include Concerns::Pageable2
58
+ include Concerns::PageableWithCursor
58
59
 
59
60
  set_entry_class Subscription
60
61
 
61
62
  def self.all(customer_uuid, options = {})
62
63
  super(options.merge(customer_uuid: customer_uuid))
63
64
  end
65
+
66
+ def next(customer_uuid, options = {})
67
+ Subscriptions.all(customer_uuid, options.merge(cursor: cursor))
68
+ end
64
69
  end
65
70
  end
@@ -72,6 +72,7 @@ module ChartMogul
72
72
 
73
73
  include API::Actions::All
74
74
  include Concerns::Entries
75
+ include Concerns::PageableWithCursor
75
76
 
76
77
  set_entry_class SubscriptionEvent
77
78
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChartMogul
4
- VERSION = '3.3.0'
4
+ VERSION = '4.0.0'
5
5
  end
data/lib/chartmogul.rb CHANGED
@@ -18,6 +18,7 @@ require 'chartmogul/errors/resource_invalid_error'
18
18
  require 'chartmogul/errors/schema_invalid_error'
19
19
  require 'chartmogul/errors/server_error'
20
20
  require 'chartmogul/errors/unauthorized_error'
21
+ require 'chartmogul/errors/deprecated_parameter_error'
21
22
 
22
23
  require 'chartmogul/config_attributes'
23
24
  require 'chartmogul/configuration'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chartmogul-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Petr Kopac
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-08-14 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.12.2
61
+ version: 0.14.2
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.12.2
68
+ version: 0.14.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -197,104 +197,6 @@ files:
197
197
  - bin/setup
198
198
  - changelog.md
199
199
  - chartmogul-ruby.gemspec
200
- - fixtures/vcr_cassettes/ChartMogul_APIResource/connection/works_in_a_threaded_environment.yml
201
- - fixtures/vcr_cassettes/ChartMogul_APIResource/connection/works_when_credentials_are_updated.yml
202
- - fixtures/vcr_cassettes/ChartMogul_Account/returns_details_of_current_account.yml
203
- - fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/creates_contact_correctly.yml
204
- - fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/destroys_contact_correctly.yml
205
- - fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/merges_contact_correctly.yml
206
- - fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/paginates_correctly.yml
207
- - fixtures/vcr_cassettes/ChartMogul_Contact/API_Interactions/updates_contact_correctly.yml
208
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_custom_attributes.yml
209
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/adds_required_tags.yml
210
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/can_page_through_search_endpoint.yml
211
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_handles_a_422_response.yml
212
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/correctly_interracts_with_the_API.yml
213
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/creates_a_contact_belonging_to_the_customer_correctly.yml
214
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/lists_the_contacts_belonging_to_the_customer_correctly.yml
215
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/merges_customers.yml
216
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_401_if_invalid_credentials.yml
217
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_404_if_no_customers_found.yml
218
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/raises_422_for_update_with_invalid_data.yml
219
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_custom_attributes.yml
220
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/removes_tags.yml
221
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/respects_camel_case_for_all_customers_endpoint.yml
222
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_all_customers_through_list_all_endpoint.yml
223
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_customer_through_retrieve_endpoint.yml
224
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/returns_right_customers_through_search_endpoint.yml
225
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_custom_attributes.yml
226
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_customer.yml
227
- - fixtures/vcr_cassettes/ChartMogul_Customer/API_Interactions/updates_customer_using_class_method.yml
228
- - fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_matching_user_if_exists.yml
229
- - fixtures/vcr_cassettes/ChartMogul_Customer/_find_by_external_id/when_external_id_is_provided/returns_nil_if_customer_does_not_exist.yml
230
- - fixtures/vcr_cassettes/ChartMogul_CustomerInvoices/API_Interactions/correctly_interracts_with_the_API.yml
231
- - fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_interracts_with_the_API.yml
232
- - fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_404.yml
233
- - fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/correctly_raises_errors_on_422.yml
234
- - fixtures/vcr_cassettes/ChartMogul_DataSource/API_Interactions/retrieves_existing_data_source_matching_uuid.yml
235
- - fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice.yml
236
- - fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/deletes_an_invoice_with_class_method.yml
237
- - fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/raises_error_on_deleting_non-existing_invoice.yml
238
- - fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/retrieves_existing_invoice_by_uuid.yml
239
- - fixtures/vcr_cassettes/ChartMogul_Invoice/API_Interactions/returns_all_invoices_through_list_all_endpoint.yml
240
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
241
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ARPA/behaves_like_Metrics_API_resource/should_have_entries.yml
242
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
243
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ARR/behaves_like_Metrics_API_resource/should_have_entries.yml
244
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
245
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ASP/behaves_like_Metrics_API_resource/should_have_entries.yml
246
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ActivitiesExport/get_activities_export.yml
247
- - fixtures/vcr_cassettes/ChartMogul_Metrics_ActivitiesExport/post_activities_export.yml
248
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Activity.yml
249
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/behaves_like_PageableWithAnchor/should_be_pageable.yml
250
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Activity/should_have_Activity_entries.yml
251
- - fixtures/vcr_cassettes/ChartMogul_Metrics_AllKeyMetric/should_have_entries.yml
252
- - fixtures/vcr_cassettes/ChartMogul_Metrics_AllKeyMetric/should_have_summary.yml
253
- - fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
254
- - fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml
255
- - fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
256
- - fixtures/vcr_cassettes/ChartMogul_Metrics_CustomerCount/behaves_like_Metrics_API_resource/should_have_entries.yml
257
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Activity/behaves_like_Pageable/should_be_pageable.yml
258
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Activity/should_have_Activity_entries.yml
259
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Subscription/behaves_like_Pageable/should_be_pageable.yml
260
- - fixtures/vcr_cassettes/ChartMogul_Metrics_Customers_Subscription/should_have_Subscription_entries.yml
261
- - fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
262
- - fixtures/vcr_cassettes/ChartMogul_Metrics_LTV/behaves_like_Metrics_API_resource/should_have_entries.yml
263
- - fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/behaves_like_Summary/should_have_summary.yml
264
- - fixtures/vcr_cassettes/ChartMogul_Metrics_MRR/should_have_entries.yml
265
- - fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/behaves_like_Summary/should_have_summary.yml
266
- - fixtures/vcr_cassettes/ChartMogul_Metrics_MRRChurnRate/behaves_like_Metrics_API_resource/should_have_entries.yml
267
- - fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_on_incorrect_credentials.yml
268
- - fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_with_500_internal_server_error.yml
269
- - fixtures/vcr_cassettes/ChartMogul_Ping/pings/and_fails_with_504_gateway_timeout_error.yml
270
- - fixtures/vcr_cassettes/ChartMogul_Ping/pings/when_credentials_correct.yml
271
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_handles_a_422_error.yml
272
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/correctly_interacts_with_the_API.yml
273
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/deletes_existing_plan.yml
274
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/retrieves_existing_plan_by_uuid.yml
275
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/updates_existing_plan.yml
276
- - fixtures/vcr_cassettes/ChartMogul_Plan/API_Interactions/updates_existing_plan_using_class_method.yml
277
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/correctly_handles_a_422_error.yml
278
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/deletes_a_plan_group.yml
279
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/retrieves_existing_plan_group_by_uuid.yml
280
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/returns_an_array_of_plan_groups.yml
281
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_name.yml
282
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_name_via_class_method.yml
283
- - fixtures/vcr_cassettes/ChartMogul_PlanGroup/API_interactions/updates_existing_plan_group_plans.yml
284
- - fixtures/vcr_cassettes/ChartMogul_PlanGroups_Plans/API_interactions/given_a_plan_group_uuid_returns_an_array_of_plans_in_the_plan_group.yml
285
- - fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/connects_subscriptions.yml
286
- - fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/correctly_interracts_with_the_API.yml
287
- - fixtures/vcr_cassettes/ChartMogul_Subscription/API_Interactions/has_multiple_aliases.yml
288
- - fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_has_time_objects/is_setting_the_cancellation_dates_of_the_subscription.yml
289
- - fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_includes_invalid_entries/raises_an_exception.yml
290
- - fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_includes_valid_entries/is_setting_the_cancellation_dates_of_the_subscription.yml
291
- - fixtures/vcr_cassettes/ChartMogul_Subscription/_update_cancellation_dates/when_array_is_empty/makes_an_API_call_and_removes_the_cancellation_dates.yml
292
- - fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/creates_a_new_subscription_event.yml
293
- - fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/creates_a_new_subscription_event_through_initialization.yml
294
- - fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/deletes_the_subscription_event.yml
295
- - fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/lists_all_subscription_events.yml
296
- - fixtures/vcr_cassettes/ChartMogul_SubscriptionEvent/API_interactions/updates_the_subscription_event.yml
297
- - fixtures/vcr_cassettes/ChartMogul_Transactions_Payment/API_Interactions/correctly_interracts_with_the_API.yml
298
200
  - lib/chartmogul.rb
299
201
  - lib/chartmogul/account.rb
300
202
  - lib/chartmogul/api/actions/all.rb
@@ -321,6 +223,7 @@ files:
321
223
  - lib/chartmogul/enrichment/customer.rb
322
224
  - lib/chartmogul/errors/chartmogul_error.rb
323
225
  - lib/chartmogul/errors/configuration_error.rb
226
+ - lib/chartmogul/errors/deprecated_parameter_error.rb
324
227
  - lib/chartmogul/errors/forbidden_error.rb
325
228
  - lib/chartmogul/errors/not_found_error.rb
326
229
  - lib/chartmogul/errors/resource_invalid_error.rb
@@ -377,7 +280,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
377
280
  requirements:
378
281
  - - ">="
379
282
  - !ruby/object:Gem::Version
380
- version: '2.3'
283
+ version: '2.7'
381
284
  required_rubygems_version: !ruby/object:Gem::Requirement
382
285
  requirements:
383
286
  - - ">="
@@ -1,112 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.chartmogul.com/v1/ping
6
- body:
7
- encoding: UTF-8
8
- string: "{}"
9
- headers:
10
- User-Agent:
11
- - Faraday v0.17.3
12
- Content-Type:
13
- - application/json
14
- Authorization:
15
- - Basic hidden
16
- response:
17
- status:
18
- code: 401
19
- message: Unauthorized
20
- headers:
21
- server:
22
- - nginx/1.10.1
23
- date:
24
- - Fri, 17 Jul 2020 08:25:06 GMT
25
- content-type:
26
- - application/json
27
- transfer-encoding:
28
- - chunked
29
- connection:
30
- - keep-alive
31
- status:
32
- - 401 Unauthorized
33
- body:
34
- encoding: UTF-8
35
- string: '{"code":401,"message":"No valid API key provided","param":null}'
36
- http_version:
37
- recorded_at: Fri, 17 Jul 2020 08:25:06 GMT
38
- - request:
39
- method: get
40
- uri: https://api.chartmogul.com/v1/ping
41
- body:
42
- encoding: UTF-8
43
- string: "{}"
44
- headers:
45
- User-Agent:
46
- - Faraday v0.17.3
47
- Content-Type:
48
- - application/json
49
- Authorization:
50
- - Basic hidden
51
- response:
52
- status:
53
- code: 200
54
- message: OK
55
- headers:
56
- server:
57
- - nginx/1.10.1
58
- date:
59
- - Fri, 17 Jul 2020 08:25:11 GMT
60
- content-type:
61
- - application/json
62
- transfer-encoding:
63
- - chunked
64
- connection:
65
- - keep-alive
66
- vary:
67
- - Accept-Encoding, Accept-Encoding
68
- status:
69
- - 200 OK
70
- access-control-allow-credentials:
71
- - 'true'
72
- body:
73
- encoding: ASCII-8BIT
74
- string: '{"data":"pong!"}'
75
- http_version:
76
- recorded_at: Fri, 17 Jul 2020 08:25:11 GMT
77
- - request:
78
- method: get
79
- uri: https://api.chartmogul.com/v1/ping
80
- body:
81
- encoding: UTF-8
82
- string: "{}"
83
- headers:
84
- User-Agent:
85
- - Faraday v0.17.3
86
- Content-Type:
87
- - application/json
88
- Authorization:
89
- - Basic hidden
90
- response:
91
- status:
92
- code: 401
93
- message: Unauthorized
94
- headers:
95
- server:
96
- - nginx/1.10.1
97
- date:
98
- - Fri, 17 Jul 2020 08:25:11 GMT
99
- content-type:
100
- - application/json
101
- transfer-encoding:
102
- - chunked
103
- connection:
104
- - keep-alive
105
- status:
106
- - 401 Unauthorized
107
- body:
108
- encoding: UTF-8
109
- string: '{"code":401,"message":"No valid API key provided","param":null}'
110
- http_version:
111
- recorded_at: Fri, 17 Jul 2020 08:25:11 GMT
112
- recorded_with: VCR 5.1.0