Source code for ab.api.endpoints.payments

"""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)