"""DEPRECATED: ``api.payments`` is being phased out.
All payment operations now live at
:class:`~ab.api.endpoints.jobs.payment.JobPaymentEndpoint`, reached as
``api.jobs.payment``. This module is retained only as a thin deprecation
shim: every method emits a :class:`DeprecationWarning` and forwards the
call. Method names are unchanged.
"""
from __future__ import annotations
import warnings
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ab.api.models.payments import (
ACHCreditTransferRequest,
ACHSessionRequest,
ACHSessionResponse,
AttachBankRequest,
BankSourceRequest,
PayBySourceRequest,
PaymentInfo,
PaymentSource,
VerifyACHRequest,
)
from ab.api.models.shared import ServiceBaseResponse
from ab.api.base import BaseEndpoint
from ab.api.endpoints.jobs.payment import JobPaymentEndpoint
def _deprecated(method: str) -> None:
warnings.warn(
f"api.payments.{method}() is deprecated; use api.jobs.payment.{method}() instead.",
DeprecationWarning,
stacklevel=3,
)
[docs]
class PaymentsEndpoint(BaseEndpoint):
"""Deprecated shim — every method forwards to ``api.jobs.payment``."""
def __init__(self, client) -> None:
super().__init__(client)
self._payment = JobPaymentEndpoint(client)
[docs]
def get(self, job_display_id: int) -> PaymentInfo:
"""Deprecated. Use ``api.jobs.payment.get(...)``."""
_deprecated("get")
return self._payment.get(job_display_id)
[docs]
def get_create(self, job_display_id: int) -> PaymentInfo:
"""Deprecated. Use ``api.jobs.payment.get_create(...)``."""
_deprecated("get_create")
return self._payment.get_create(job_display_id)
[docs]
def get_sources(self, job_display_id: int) -> list[PaymentSource]:
"""Deprecated. Use ``api.jobs.payment.get_sources(...)``."""
_deprecated("get_sources")
return self._payment.get_sources(job_display_id)
[docs]
def pay_by_source(self, job_display_id: int, *, data: PayBySourceRequest | dict) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.pay_by_source(...)``."""
_deprecated("pay_by_source")
return self._payment.pay_by_source(job_display_id, data=data)
[docs]
def create_ach_session(self, job_display_id: int, *, data: ACHSessionRequest | dict) -> ACHSessionResponse:
"""Deprecated. Use ``api.jobs.payment.create_ach_session(...)``."""
_deprecated("create_ach_session")
return self._payment.create_ach_session(job_display_id, data=data)
[docs]
def ach_credit_transfer(
self, job_display_id: int, *, data: ACHCreditTransferRequest | dict,
) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.ach_credit_transfer(...)``."""
_deprecated("ach_credit_transfer")
return self._payment.ach_credit_transfer(job_display_id, data=data)
[docs]
def attach_customer_bank(
self, job_display_id: int, *, data: AttachBankRequest | dict,
) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.attach_customer_bank(...)``."""
_deprecated("attach_customer_bank")
return self._payment.attach_customer_bank(job_display_id, data=data)
[docs]
def verify_ach_source(self, job_display_id: int, *, data: VerifyACHRequest | dict) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.verify_ach_source(...)``."""
_deprecated("verify_ach_source")
return self._payment.verify_ach_source(job_display_id, data=data)
[docs]
def cancel_ach_verification(self, job_display_id: int) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.cancel_ach_verification(...)``."""
_deprecated("cancel_ach_verification")
return self._payment.cancel_ach_verification(job_display_id)
[docs]
def set_bank_source(self, job_display_id: int, *, data: BankSourceRequest | dict) -> ServiceBaseResponse:
"""Deprecated. Use ``api.jobs.payment.set_bank_source(...)``."""
_deprecated("set_bank_source")
return self._payment.set_bank_source(job_display_id, data=data)