Source code for terminusgps.authorizenet.api.subscriptions
from authorizenet import apicontractsv1, apicontrollers
from authorizenet.apicontrollersbase import APIOperationBase
from lxml.objectify import ObjectifiedElement
__all__ = [
"create_subscription",
"get_subscription",
"get_subscription_status",
"update_subscription",
"cancel_subscription",
]
[docs]
def create_subscription(
subscription: apicontractsv1.ARBSubscriptionType,
) -> tuple[ObjectifiedElement, type[APIOperationBase]]:
"""
`ARBCreateSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-create-a-subscription>`_.
:param subscription: An Authorizenet ARBSubscriptionType element.
:type subscription: ~authorizenet.apicontractsv1.ARBSubscriptionType
:returns: A tuple containing an Authorizenet API request element and controller class.
:rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]]
"""
request = apicontractsv1.ARBCreateSubscriptionRequest()
request.subscription = subscription
return request, apicontrollers.ARBCreateSubscriptionController
[docs]
def get_subscription(
subscription_id: int, include_transactions: bool = True
) -> tuple[ObjectifiedElement, type[APIOperationBase]]:
"""
`ARBGetSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-get-subscription>`_.
:param subscription_id: An Authorizenet subscription id.
:type subscription_id: int
:param include_transactions: Whether to include the subscription transaction list in the response. Default is True.
:type include_transactions: bool
:returns: A tuple containing an Authorizenet API request element and controller class.
:rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]]
"""
request = apicontractsv1.ARBGetSubscriptionRequest()
request.subscriptionId = str(subscription_id)
request.includeTransactions = str(include_transactions).lower()
return request, apicontrollers.ARBGetSubscriptionController
[docs]
def get_subscription_status(
subscription_id: int,
) -> tuple[ObjectifiedElement, type[APIOperationBase]]:
"""
`ARBGetSubscriptionStatusRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-get-subscription-status>`_.
:param subscription_id: An Authorizenet subscription id.
:type subscription_id: int
:returns: A tuple containing an Authorizenet API request element and controller class.
:rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]]
"""
request = apicontractsv1.ARBGetSubscriptionStatusRequest()
request.subscriptionId = str(subscription_id)
return request, apicontrollers.ARBGetSubscriptionStatusController
[docs]
def update_subscription(
subscription_id: int, subscription: apicontractsv1.ARBSubscriptionType
) -> tuple[ObjectifiedElement, type[APIOperationBase]]:
"""
`ARBUpdateSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-update-a-subscription>`_.
:param subscription_id: An Authorizenet subscription id.
:type subscription_id: int
:param subscription: An Authorizenet ARBSubscriptionType element.
:type subscription: ~authorizenet.apicontractsv1.ARBSubscriptionType
:returns: A tuple containing an Authorizenet API request element and controller class.
:rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]]
"""
request = apicontractsv1.ARBUpdateSubscriptionRequest()
request.subscriptionId = str(subscription_id)
request.subscription = subscription
return request, apicontrollers.ARBUpdateSubscriptionController
[docs]
def cancel_subscription(
subscription_id: int,
) -> tuple[ObjectifiedElement, type[APIOperationBase]]:
"""
`ARBCancelSubscriptionRequest <https://developer.authorize.net/api/reference/index.html#recurring-billing-cancel-a-subscription>`_.
:param subscription_id: An Authorizenet subscription id.
:type subscription_id: int
:returns: A tuple containing an Authorizenet API request element and controller class.
:rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]]
"""
request = apicontractsv1.ARBCancelSubscriptionRequest()
request.subscriptionId = str(subscription_id)
return request, apicontrollers.ARBCancelSubscriptionController