Source code for q2_sdk.models.tip.schemas.domestic_wire

from typing import Optional
from lxml import objectify, etree
from dataclasses import dataclass, field
from q2_sdk.models.tip.schemas.base import TIPModel, TIPRequest
from q2_sdk.models.tip.schemas import descriptions
from q2_sdk.models.tip.exceptions import (
    TIPModelValidationFromLxmlObjectifyException,
    TIPModelParsingException,
)
from q2_sdk.models.tip.variables import TransactionTypeEnum


[docs] @dataclass class DomesticWireTransactionDetails(TIPModel): """ DomesticWireTransactionDetails TIPModel """ originating_account_id: int = field( metadata={ "description": descriptions.DW_ORIGINATING_ACCOUNT_ID_DESCRIPTION, } ) originating_account: Optional[str] = field( metadata={ "description": descriptions.DW_ORIGINATING_ACCOUNT_DESCRIPTION, } ) to_account: Optional[str] = field( metadata={ "description": descriptions.DW_TO_ACCOUNT_DESCRIPTION, } ) to_account_aba: Optional[str] = field( metadata={ "description": descriptions.DW_TO_ACCOUNT_ABA_DESCRIPTION, } )
[docs] @classmethod def model_validate_from_elem( cls, data: etree.Element ) -> "DomesticWireTransactionDetails": """ Create a DomesticWireTransactionDetails instance from XML element data. :param data: etree Element containing domestic wire transaction details :return: DomesticWireTransactionDetails instance :raises TIPModelValidationFromLxmlObjectifyException: If data is not an ObjectifiedElement """ if isinstance(data, objectify.ObjectifiedElement): try: try: originating_account = data.OriginatingAccount.text except AttributeError: originating_account = None try: to_account = data.ToAccount.text except AttributeError: to_account = None try: to_account_aba = data.ToAccountABA.text except AttributeError: to_account_aba = None return cls( originating_account_id=TIPModel.parse_int( data.OriginatingAccountID ), originating_account=TIPModel.parse_str_optional( originating_account ), to_account=TIPModel.parse_str_optional(to_account), to_account_aba=TIPModel.parse_str_optional(to_account_aba), ) except AttributeError as e: raise TIPModelParsingException( f"Missing required attribute in obj_elem: {str(e)}" ) raise TIPModelValidationFromLxmlObjectifyException(cls.__name__, type(data))
[docs] @dataclass class DomesticWireTIPRequest(TIPRequest): """ DomesticWireTIPRequest TIPRequest. TIPRequests are converted to this class when TransactionType is DomesticWire. """ domestic_wire: DomesticWireTransactionDetails
[docs] @classmethod def model_validate_from_elem(cls, data: etree.Element) -> "DomesticWireTIPRequest": """ Create a DomesticWireTIPRequest instance from XML element data. :param data: etree Element containing domestic wire TIP request data :return: DomesticWireTIPRequest instance :raises TIPModelValidationFromLxmlObjectifyException: If data is not an ObjectifiedElement """ if isinstance(data, objectify.ObjectifiedElement): tip_request_dc = TIPRequest.model_validate_from_elem(data) return cls( domestic_wire=DomesticWireTransactionDetails.model_validate_from_elem( TIPModel.try_getattr_from_elem( data, TransactionTypeEnum.DomesticWire.value ) ), **(tip_request_dc.to_kwargs()), ) raise TIPModelValidationFromLxmlObjectifyException(cls.__name__, type(data))