Class: AdvancedBilling::Client

Inherits:
Object
  • Object
show all
Includes:
CoreLibrary
Defined in:
lib/advanced_billing/client.rb

Overview

advanced_billing client class.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection: nil, adapter: :net_http_persistent, timeout: 120, max_retries: 0, retry_interval: 1, backoff_factor: 2, retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524], retry_methods: %i[get put],, http_callback: nil, proxy_settings: nil, environment: Environment::US, site: 'subdomain', basic_auth_credentials: nil, config: nil) ⇒ Client

Returns a new instance of Client.



208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'lib/advanced_billing/client.rb', line 208

def initialize(
  connection: nil, adapter: :net_http_persistent, timeout: 120,
  max_retries: 0, retry_interval: 1, backoff_factor: 2,
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
  retry_methods: i[get put], http_callback: nil, proxy_settings: nil,
  environment: Environment::US, site: 'subdomain',
  basic_auth_credentials: nil, config: nil
)
  @config = if config.nil?
              Configuration.new(
                connection: connection, adapter: adapter, timeout: timeout,
                max_retries: max_retries, retry_interval: retry_interval,
                backoff_factor: backoff_factor,
                retry_statuses: retry_statuses,
                retry_methods: retry_methods, http_callback: http_callback,
                proxy_settings: proxy_settings, environment: environment,
                site: site, basic_auth_credentials: basic_auth_credentials
              )
            else
              config
            end
  user_agent_params = BaseController.user_agent_parameters

  @global_configuration = GlobalConfiguration.new(client_configuration: @config)
                                             .base_uri_executor(@config.method(:get_base_uri))
                                             .global_errors(BaseController::GLOBAL_ERRORS)
                                             .user_agent(BaseController.user_agent,
                                                         agent_parameters: user_agent_params)

  initialize_auth_managers(@global_configuration)
  @global_configuration = @global_configuration.auth_managers(@auth_managers)
end

Instance Attribute Details

#auth_managersObject (readonly)

Returns the value of attribute auth_managers.



10
11
12
# File 'lib/advanced_billing/client.rb', line 10

def auth_managers
  @auth_managers
end

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/advanced_billing/client.rb', line 10

def config
  @config
end

Class Method Details

.from_env(**overrides) ⇒ Object

Creates a client directly from environment variables.



251
252
253
254
255
# File 'lib/advanced_billing/client.rb', line 251

def self.from_env(**overrides)
  default_config = Configuration.build_default_config_from_env
  new_config = default_config.clone_with(**overrides)
  new(config: new_config)
end

Instance Method Details

#advance_invoiceAdvanceInvoiceController

Access to advance_invoice controller.

Returns:



24
25
26
# File 'lib/advanced_billing/client.rb', line 24

def advance_invoice
  @advance_invoice ||= AdvanceInvoiceController.new @global_configuration
end

#api_exportsAPIExportsController

Access to api_exports controller.

Returns:



18
19
20
# File 'lib/advanced_billing/client.rb', line 18

def api_exports
  @api_exports ||= APIExportsController.new @global_configuration
end

#billing_portalBillingPortalController

Access to billing_portal controller.

Returns:



30
31
32
# File 'lib/advanced_billing/client.rb', line 30

def billing_portal
  @billing_portal ||= BillingPortalController.new @global_configuration
end

#component_price_pointsComponentPricePointsController

Access to component_price_points controller.

Returns:



48
49
50
# File 'lib/advanced_billing/client.rb', line 48

def component_price_points
  @component_price_points ||= ComponentPricePointsController.new @global_configuration
end

#componentsComponentsController

Access to components controller.

Returns:



42
43
44
# File 'lib/advanced_billing/client.rb', line 42

def components
  @components ||= ComponentsController.new @global_configuration
end

#couponsCouponsController

Access to coupons controller.

Returns:



36
37
38
# File 'lib/advanced_billing/client.rb', line 36

def coupons
  @coupons ||= CouponsController.new @global_configuration
end

#custom_fieldsCustomFieldsController

Access to custom_fields controller.

Returns:



60
61
62
# File 'lib/advanced_billing/client.rb', line 60

def custom_fields
  @custom_fields ||= CustomFieldsController.new @global_configuration
end

#customersCustomersController

Access to customers controller.

Returns:



54
55
56
# File 'lib/advanced_billing/client.rb', line 54

def customers
  @customers ||= CustomersController.new @global_configuration
end

#eventsEventsController

Access to events controller.

Returns:



66
67
68
# File 'lib/advanced_billing/client.rb', line 66

def events
  @events ||= EventsController.new @global_configuration
end

#events_based_billing_segmentsEventsBasedBillingSegmentsController

Access to events_based_billing_segments controller.

Returns:



72
73
74
# File 'lib/advanced_billing/client.rb', line 72

def events_based_billing_segments
  @events_based_billing_segments ||= EventsBasedBillingSegmentsController.new @global_configuration
end

#initialize_auth_managers(global_config) ⇒ Object

Initializes the auth managers hash used for authenticating API calls.

Parameters:

  • global_config (GlobalConfiguration)

    The global configuration of the SDK)



243
244
245
246
247
248
# File 'lib/advanced_billing/client.rb', line 243

def initialize_auth_managers(global_config)
  @auth_managers = {}
  http_client_config = global_config.client_configuration
  %w[BasicAuth].each { |auth| @auth_managers[auth] = nil }
  @auth_managers['BasicAuth'] = BasicAuth.new(http_client_config.basic_auth_credentials)
end

#insightsInsightsController

Access to insights controller.

Returns:



78
79
80
# File 'lib/advanced_billing/client.rb', line 78

def insights
  @insights ||= InsightsController.new @global_configuration
end

#invoicesInvoicesController

Access to invoices controller.

Returns:



84
85
86
# File 'lib/advanced_billing/client.rb', line 84

def invoices
  @invoices ||= InvoicesController.new @global_configuration
end

#offersOffersController

Access to offers controller.

Returns:



90
91
92
# File 'lib/advanced_billing/client.rb', line 90

def offers
  @offers ||= OffersController.new @global_configuration
end

#payment_profilesPaymentProfilesController

Access to payment_profiles controller.

Returns:



96
97
98
# File 'lib/advanced_billing/client.rb', line 96

def payment_profiles
  @payment_profiles ||= PaymentProfilesController.new @global_configuration
end

#product_familiesProductFamiliesController

Access to product_families controller.

Returns:



102
103
104
# File 'lib/advanced_billing/client.rb', line 102

def product_families
  @product_families ||= ProductFamiliesController.new @global_configuration
end

#product_price_pointsProductPricePointsController

Access to product_price_points controller.

Returns:



114
115
116
# File 'lib/advanced_billing/client.rb', line 114

def product_price_points
  @product_price_points ||= ProductPricePointsController.new @global_configuration
end

#productsProductsController

Access to products controller.

Returns:



108
109
110
# File 'lib/advanced_billing/client.rb', line 108

def products
  @products ||= ProductsController.new @global_configuration
end

#proforma_invoicesProformaInvoicesController

Access to proforma_invoices controller.

Returns:



120
121
122
# File 'lib/advanced_billing/client.rb', line 120

def proforma_invoices
  @proforma_invoices ||= ProformaInvoicesController.new @global_configuration
end

#reason_codesReasonCodesController

Access to reason_codes controller.

Returns:



126
127
128
# File 'lib/advanced_billing/client.rb', line 126

def reason_codes
  @reason_codes ||= ReasonCodesController.new @global_configuration
end

#referral_codesReferralCodesController

Access to referral_codes controller.

Returns:



132
133
134
# File 'lib/advanced_billing/client.rb', line 132

def referral_codes
  @referral_codes ||= ReferralCodesController.new @global_configuration
end

#sales_commissionsSalesCommissionsController

Access to sales_commissions controller.

Returns:



138
139
140
# File 'lib/advanced_billing/client.rb', line 138

def sales_commissions
  @sales_commissions ||= SalesCommissionsController.new @global_configuration
end

#sitesSitesController

Access to sites controller.

Returns:



144
145
146
# File 'lib/advanced_billing/client.rb', line 144

def sites
  @sites ||= SitesController.new @global_configuration
end

#subscription_componentsSubscriptionComponentsController

Access to subscription_components controller.

Returns:



156
157
158
# File 'lib/advanced_billing/client.rb', line 156

def subscription_components
  @subscription_components ||= SubscriptionComponentsController.new @global_configuration
end

#subscription_group_invoice_accountSubscriptionGroupInvoiceAccountController

Access to subscription_group_invoice_account controller.

Returns:



168
169
170
# File 'lib/advanced_billing/client.rb', line 168

def 
   ||= SubscriptionGroupInvoiceAccountController.new @global_configuration
end

#subscription_group_statusSubscriptionGroupStatusController

Access to subscription_group_status controller.

Returns:



174
175
176
# File 'lib/advanced_billing/client.rb', line 174

def subscription_group_status
  @subscription_group_status ||= SubscriptionGroupStatusController.new @global_configuration
end

#subscription_groupsSubscriptionGroupsController

Access to subscription_groups controller.

Returns:



162
163
164
# File 'lib/advanced_billing/client.rb', line 162

def subscription_groups
  @subscription_groups ||= SubscriptionGroupsController.new @global_configuration
end

#subscription_invoice_accountSubscriptionInvoiceAccountController

Access to subscription_invoice_account controller.

Returns:



180
181
182
# File 'lib/advanced_billing/client.rb', line 180

def 
   ||= SubscriptionInvoiceAccountController.new @global_configuration
end

#subscription_notesSubscriptionNotesController

Access to subscription_notes controller.

Returns:



186
187
188
# File 'lib/advanced_billing/client.rb', line 186

def subscription_notes
  @subscription_notes ||= SubscriptionNotesController.new @global_configuration
end

#subscription_productsSubscriptionProductsController

Access to subscription_products controller.

Returns:



192
193
194
# File 'lib/advanced_billing/client.rb', line 192

def subscription_products
  @subscription_products ||= SubscriptionProductsController.new @global_configuration
end

#subscription_statusSubscriptionStatusController

Access to subscription_status controller.

Returns:



198
199
200
# File 'lib/advanced_billing/client.rb', line 198

def subscription_status
  @subscription_status ||= SubscriptionStatusController.new @global_configuration
end

#subscriptionsSubscriptionsController

Access to subscriptions controller.

Returns:



150
151
152
# File 'lib/advanced_billing/client.rb', line 150

def subscriptions
  @subscriptions ||= SubscriptionsController.new @global_configuration
end

#user_agent_detailObject



12
13
14
# File 'lib/advanced_billing/client.rb', line 12

def user_agent_detail
  config.user_agent_detail
end

#webhooksWebhooksController

Access to webhooks controller.

Returns:



204
205
206
# File 'lib/advanced_billing/client.rb', line 204

def webhooks
  @webhooks ||= WebhooksController.new @global_configuration
end