Class: ChartMogul::Metrics::Customers::Subscriptions

Inherits:
APIResource show all
Includes:
API::Actions::Custom, Concerns::Entries, Concerns::Pageable, Concerns::PageableWithCursor
Defined in:
lib/chartmogul/metrics/customers/subscription.rb

Constant Summary

Constants inherited from APIResource

APIResource::BACKOFF_FACTOR, APIResource::INTERVAL, APIResource::INTERVAL_RANDOMNESS, APIResource::MAX_INTERVAL, APIResource::RETRY_EXCEPTIONS, APIResource::RETRY_STATUSES, APIResource::THREAD_CONNECTION_KEY

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Concerns::PageableWithCursor

included

Methods included from Concerns::Pageable

included

Methods included from Concerns::Entries

included

Methods included from API::Actions::Custom

#custom!, #custom_without_assign!, included

Methods inherited from APIResource

build_connection, connection, custom_with_query_params!, #custom_with_query_params!, extract_query_params, #extract_query_params, handle_other_error, handle_request_error, handling_errors, immutable_keys, #path_with_query_params, query_params, set_immutable_keys, set_resource_name, set_resource_path, set_resource_root_key, writeable_query_param

Methods inherited from Object

#allowed_for_write?, #assign_all_attributes, #assign_writeable_attributes, attributes, define_private_writer, define_reader, define_writer, #initialize, #instance_attributes, new_from_json, readonly_attr, #serialize_for_write, #serialized_value_for_attr, writeable_attr, writeable_attributes

Constructor Details

This class inherits a constructor from ChartMogul::Object

Class Method Details

.all(customer_uuid, options = {}) ⇒ Object



48
49
50
# File 'lib/chartmogul/metrics/customers/subscription.rb', line 48

def self.all(customer_uuid, options = {})
  super(options.merge(customer_uuid: customer_uuid))
end

.connect(data_source_uuid, customer_uuid, subscriptions) ⇒ Object



52
53
54
55
56
# File 'lib/chartmogul/metrics/customers/subscription.rb', line 52

def self.connect(data_source_uuid, customer_uuid, subscriptions)
  custom!(:post,
          "/v1/customers/#{customer_uuid}/connect_subscriptions",
          connect_disconnect_body(data_source_uuid, subscriptions))
end

.connect_disconnect_body(data_source_uuid, subscriptions) ⇒ Object



64
65
66
67
68
69
70
71
72
73
# File 'lib/chartmogul/metrics/customers/subscription.rb', line 64

def self.connect_disconnect_body(data_source_uuid, subscriptions)
  {
    subscriptions: subscriptions.uniq.map do |subscription|
      {
        data_source_uuid: data_source_uuid,
        uuid: subscription.uuid
      }
    end
  }
end

.disconnect(data_source_uuid, customer_uuid, subscriptions) ⇒ Object



58
59
60
61
62
# File 'lib/chartmogul/metrics/customers/subscription.rb', line 58

def self.disconnect(data_source_uuid, customer_uuid, subscriptions)
  custom!(:post,
          "/v1/customers/#{customer_uuid}/disconnect_subscriptions",
          connect_disconnect_body(data_source_uuid, subscriptions))
end

Instance Method Details

#next(customer_uuid, options = {}) ⇒ Object



75
76
77
# File 'lib/chartmogul/metrics/customers/subscription.rb', line 75

def next(customer_uuid, options = {})
  Subscriptions.all(customer_uuid, options.merge(cursor: cursor))
end