Source code for terminusgps.authorizenet.api.customer_profiles

from authorizenet import apicontractsv1, apicontrollers
from authorizenet.apicontrollersbase import APIOperationBase
from lxml.objectify import ObjectifiedElement

__all__ = [
    "create_customer_profile",
    "get_customer_profile",
    "get_customer_profile_ids",
    "update_customer_profile",
    "delete_customer_profile",
]


[docs] def create_customer_profile( merchant_id: str, email: str, description: str = "" ) -> tuple[ObjectifiedElement, type[APIOperationBase]]: """ `createCustomerProfileRequest <https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile>`_. :param merchant_id: A merchant designated customer id. :type merchant_id: str :param email: A customer email address. :type email: str :param description: An optional customer description. :type description: str :returns: A tuple containing an Authorizenet API request element and controller class. :rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]] """ request = apicontractsv1.createCustomerProfileRequest() request.profile = apicontractsv1.customerProfileType() request.profile.merchantCustomerId = merchant_id request.profile.description = description request.profile.email = email return request, apicontrollers.createCustomerProfileController
[docs] def get_customer_profile( customer_profile_id: int, include_issuer_info: bool = False ) -> tuple[ObjectifiedElement, type[APIOperationBase]]: """ `getCustomerProfileRequest <https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile>`_. :param customer_profile_id: Authorizenet customer profile id. :type customer_profile_id: int :param include_issuer_info: Whether to include issuer info in the response. Default is :py:obj:`False`. :type include_issuer_info: bool :returns: A tuple containing an Authorizenet API request element and controller class. :rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]] """ request = apicontractsv1.getCustomerProfileRequest() request.customerProfileId = str(customer_profile_id) request.includeIssuerInfo = str(include_issuer_info).lower() return request, apicontrollers.getCustomerProfileController
[docs] def get_customer_profile_ids() -> tuple[ ObjectifiedElement, type[APIOperationBase] ]: """ `getCustomerProfileIdsRequest <https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile-ids>`_. :returns: A tuple containing an Authorizenet API request element and controller class. :rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]] """ request = apicontractsv1.getCustomerProfileIdsRequest() return request, apicontrollers.getCustomerProfileIdsController
[docs] def update_customer_profile( profile: apicontractsv1.customerProfileExType, ) -> tuple[ObjectifiedElement, type[APIOperationBase]]: """ `updateCustomerProfileRequest <https://developer.authorize.net/api/reference/index.html#customer-profiles-update-customer-profile>`_. :param profile: An Authorizenet customer profile ex element. :type profile: ~authorizenet.apicontractsv1.customerProfileExType :returns: A tuple containing an Authorizenet API request element and controller class. :rtype: tuple[~lxml.objectify.ObjectifiedElement, type[~authorizenet.apicontrollersbase.APIOperationBase]] """ request = apicontractsv1.updateCustomerProfileRequest() request.profile = profile return request, apicontrollers.updateCustomerProfileController
[docs] def delete_customer_profile( customer_profile_id: int, ) -> tuple[ObjectifiedElement, type[APIOperationBase]]: """ `deleteCustomerProfileRequest <https://developer.authorize.net/api/reference/index.html#customer-profiles-delete-customer-profile>`_. :param customer_profile_id: An Authorizenet customer profile id. :type customer_profile_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.deleteCustomerProfileRequest() request.customerProfileId = str(customer_profile_id) return request, apicontrollers.deleteCustomerProfileController