Skip to content

Model brokers

components.payment_gateway.subcomponents.payments.models.brokers.payment_request

PaymentRequestModelBroker

Bases: BaseModelBroker

create_payment_request classmethod

create_payment_request(
    session,
    /,
    *,
    workspace_key,
    external_id,
    account_id,
    raw=None,
)
Source code in components/payment_gateway/subcomponents/payments/models/brokers/payment_request.py
@classmethod
def create_payment_request(
    cls,
    session: Session,
    /,
    *,
    workspace_key: str,
    external_id: str,
    account_id: UUID,
    raw: dict[str, Any] | None = None,
) -> PaymentRequest:
    payment_request = cls.model(
        workspace_key=workspace_key,
        external_id=external_id,
        account_id=account_id,
        raw=raw,
    )
    session.add(payment_request)
    session.flush()

    return payment_request

get_payment_request classmethod

get_payment_request(session, /, *, id)
Source code in components/payment_gateway/subcomponents/payments/models/brokers/payment_request.py
@classmethod
def get_payment_request(
    cls,
    session: Session,
    /,
    *,
    id: UUID,
) -> PaymentRequest:
    payment_request = session.execute(
        select(cls.model).filter(
            PaymentRequest.id == id,
        )
    ).scalar_one()
    return payment_request

get_payment_request_by_external_id classmethod

get_payment_request_by_external_id(
    session, /, *, workspace_key, external_id
)
Source code in components/payment_gateway/subcomponents/payments/models/brokers/payment_request.py
@classmethod
def get_payment_request_by_external_id(
    cls,
    session: Session,
    /,
    *,
    workspace_key: str,
    external_id: str,
) -> PaymentRequest:
    payment_request = session.execute(
        select(cls.model).filter(
            PaymentRequest.workspace_key == workspace_key,
            PaymentRequest.external_id == external_id,
        )
    ).scalar_one()
    return payment_request

model class-attribute instance-attribute

model = PaymentRequest

set_bank_transfer classmethod

set_bank_transfer(session, /, *, id, bank_transfer_id)

Set the bank transfer for a payment request.

Parameters:

Name Type Description Default
session Session

Database session

required
id UUID

ID of the payment request

required
bank_transfer_id UUID

ID of the bank transfer to link

required

Returns:

Type Description
PaymentRequest

Updated PaymentRequest instance

Source code in components/payment_gateway/subcomponents/payments/models/brokers/payment_request.py
@classmethod
def set_bank_transfer(
    cls,
    session: Session,
    /,
    *,
    id: UUID,
    bank_transfer_id: UUID,
) -> PaymentRequest:
    """
    Set the bank transfer for a payment request.

    Args:
        session: Database session
        id: ID of the payment request
        bank_transfer_id: ID of the bank transfer to link

    Returns:
        Updated PaymentRequest instance
    """
    payment_request = cls.get_payment_request(session, id=id)

    payment_request.bank_transfer_id = bank_transfer_id

    return payment_request