Class: AdvancedBilling::SubscriptionGroupStatusController
- Inherits:
-
BaseController
- Object
- BaseController
- AdvancedBilling::SubscriptionGroupStatusController
- Defined in:
- lib/advanced_billing/controllers/subscription_group_status_controller.rb
Overview
SubscriptionGroupStatusController
Constant Summary
Constants inherited from BaseController
Instance Attribute Summary
Attributes inherited from BaseController
Instance Method Summary collapse
-
#cancel_delayed_cancellation_for_group(uid) ⇒ void
Removing the delayed cancellation on a subscription group will ensure that the subscriptions do not get canceled at the end of the period.
-
#cancel_subscriptions_in_group(uid, body: nil) ⇒ void
This endpoint will immediately cancel all subscriptions within the specified group.
-
#initiate_delayed_cancellation_for_group(uid) ⇒ void
This endpoint will schedule all subscriptions within the specified group to be canceled at the end of their billing period.
-
#reactivate_subscription_group(uid, body: nil) ⇒ ReactivateSubscriptionGroupResponse
This endpoint will attempt to reactivate or resume a cancelled subscription group.
Methods inherited from BaseController
#initialize, #new_api_call_builder, #new_parameter, #new_request_builder, #new_response_handler, user_agent, user_agent_parameters
Constructor Details
This class inherits a constructor from AdvancedBilling::BaseController
Instance Method Details
#cancel_delayed_cancellation_for_group(uid) ⇒ void
This method returns an undefined value.
Removing the delayed cancellation on a subscription group will ensure that the subscriptions do not get canceled at the end of the period. The request will reset the ‘cancel_at_end_of_period` flag to false on each member in the group. group
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/advanced_billing/controllers/subscription_group_status_controller.rb', line 77 def cancel_delayed_cancellation_for_group(uid) new_api_call_builder .request(new_request_builder(HttpMethodEnum::DELETE, '/subscription_groups/{uid}/delayed_cancel.json', Server::PRODUCTION) .template_param(new_parameter(uid, key: 'uid') .is_required(true) .should_encode(true)) .auth(Single.new('BasicAuth'))) .response(new_response_handler .is_response_void(true) .local_error_template('422', 'HTTP Response Not OK. Status code: {$statusCode}.'\ ' Response: \'{$response.body}\'.', ErrorListResponseException)) .execute end |
#cancel_subscriptions_in_group(uid, body: nil) ⇒ void
This method returns an undefined value.
This endpoint will immediately cancel all subscriptions within the specified group. The group is identified by it’s ‘uid` passed in the URL. To successfully cancel the group, the primary subscription must be on automatic billing. The group members as well must be on automatic billing or they must be prepaid. In order to cancel a subscription group while also charging for any unbilled usage on metered or prepaid components, the `charge_unbilled_usage=true` parameter must be included in the request. group Example:
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/advanced_billing/controllers/subscription_group_status_controller.rb', line 22 def cancel_subscriptions_in_group(uid, body: nil) new_api_call_builder .request(new_request_builder(HttpMethodEnum::POST, '/subscription_groups/{uid}/cancel.json', Server::PRODUCTION) .template_param(new_parameter(uid, key: 'uid') .is_required(true) .should_encode(true)) .header_param(new_parameter('application/json', key: 'Content-Type')) .body_param(new_parameter(body)) .body_serializer(proc do |param| param.to_json unless param.nil? end) .auth(Single.new('BasicAuth'))) .response(new_response_handler .is_response_void(true) .local_error_template('422', 'HTTP Response Not OK. Status code: {$statusCode}.'\ ' Response: \'{$response.body}\'.', ErrorListResponseException)) .execute end |
#initiate_delayed_cancellation_for_group(uid) ⇒ void
This method returns an undefined value.
This endpoint will schedule all subscriptions within the specified group to be canceled at the end of their billing period. The group is identified by it’s uid passed in the URL. All subscriptions in the group must be on automatic billing in order to successfully cancel them, and the group must not be in a “past_due” state. group
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/advanced_billing/controllers/subscription_group_status_controller.rb', line 52 def initiate_delayed_cancellation_for_group(uid) new_api_call_builder .request(new_request_builder(HttpMethodEnum::POST, '/subscription_groups/{uid}/delayed_cancel.json', Server::PRODUCTION) .template_param(new_parameter(uid, key: 'uid') .is_required(true) .should_encode(true)) .auth(Single.new('BasicAuth'))) .response(new_response_handler .is_response_void(true) .local_error_template('422', 'HTTP Response Not OK. Status code: {$statusCode}.'\ ' Response: \'{$response.body}\'.', ErrorListResponseException)) .execute end |
#reactivate_subscription_group(uid, body: nil) ⇒ ReactivateSubscriptionGroupResponse
This endpoint will attempt to reactivate or resume a cancelled subscription group. Upon reactivation, any canceled invoices created after the beginning of the primary subscription’s billing period will be reopened and payment will be attempted on them. If the subscription group is being reactivated (as opposed to resumed), new charges will also be assessed for the new billing period. Whether a subscription group is reactivated (a new billing period is created) or resumed (the current billing period is respected) will depend on the parameters that are sent with the request as well as the date of the request relative to the primary subscription’s period. ## Reactivating within the current period If a subscription group is cancelled and reactivated within the primary subscription’s current period, we can choose to either start a new billing period or maintain the existing one. If we want to maintain the existing billing period the ‘resume=true` option must be passed in request parameters. An exception to the above are subscriptions that are on calendar billing. These subscriptions cannot be reactivated within the current period. If the `resume=true` option is not passed the request will return an error. The `resume_members` option is ignored in this case. All eligible group members will be automatically resumed. ## Reactivating beyond the current period In this case, a subscription group can only be reactivated with a new billing period. If the `resume=true` option is passed it will be ignored. Member subscriptions can have billing periods that are longer than the primary (e.g. a monthly primary with annual group members). If the primary subscription in a group cannot be reactivated within the current period, but other group members can be, passing `resume_members=true` will resume the existing billing period for eligible group members. The primary subscription will begin a new billing period. For calendar billing subscriptions, the new billing period created will be a partial one, spanning from the date of reactivation to the next corresponding calendar renewal date. group Example:
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/advanced_billing/controllers/subscription_group_status_controller.rb', line 133 def reactivate_subscription_group(uid, body: nil) new_api_call_builder .request(new_request_builder(HttpMethodEnum::POST, '/subscription_groups/{uid}/reactivate.json', Server::PRODUCTION) .template_param(new_parameter(uid, key: 'uid') .is_required(true) .should_encode(true)) .header_param(new_parameter('application/json', key: 'Content-Type')) .body_param(new_parameter(body)) .header_param(new_parameter('application/json', key: 'accept')) .body_serializer(proc do |param| param.to_json unless param.nil? end) .auth(Single.new('BasicAuth'))) .response(new_response_handler .deserializer(APIHelper.method(:custom_type_deserializer)) .deserialize_into(ReactivateSubscriptionGroupResponse.method(:from_hash)) .local_error_template('422', 'HTTP Response Not OK. Status code: {$statusCode}.'\ ' Response: \'{$response.body}\'.', ErrorListResponseException)) .execute end |