Source code for q2_sdk.hq.db.wire_domestic

from argparse import _SubParsersAction
from functools import partial
from typing import List
from lxml.objectify import IntElement, StringElement, FloatElement
from q2_sdk.core.exceptions import DatabaseDataError
from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from .db_object import DbObject
from .generated_transactions import GeneratedTransactions
from .representation_row_base import RepresentationRowBase


[docs] class WireDomesticRow(RepresentationRowBase): # object name: type hinting = "column name in the db response" WireDomesticID: IntElement = "WireDomesticID" WireTransferID: IntElement = "WireTransferID" TransactionID: IntElement = "TransactionID" ABA: StringElement = "ABA" RecipientFiName: StringElement = "RecipientFiName" RecipientFiAddress1: StringElement = "RecipientFiAddress1" RecipientFiAddress2: StringElement = "RecipientFiAddress2" RecipientFiCity: StringElement = "RecipientFiCity" RecipientFiState: StringElement = "RecipientFiState" RecipientFiPostalCode: StringElement = "RecipientFiPostalCode" RecipientFiCountryID: IntElement = "RecipientFiCountryID" CustomerID: IntElement = "CustomerID" UserID: IntElement = "UserID" CreateDate: StringElement = "CreateDate" TransactionStatusID: IntElement = "TransactionStatusID" TransactionTypeID: IntElement = "TransactionTypeID" ProcessDate: StringElement = "ProcessDate" ProcessedDate: StringElement = "ProcessedDate" OriginatingAccountID: IntElement = "OriginatingAccountID" TransactionAmount: FloatElement = "TransactionAmount" ToAccount: StringElement = "ToAccount" ToAccountType: StringElement = "ToAccountType" PayerName: StringElement = "PayerName" PayerCountryID: IntElement = "PayerCountryID"
[docs] class WireDomestic(DbObject): # GET_BY_NAME_KEY = "column in the db response" NAME = "WireDomestic" REPRESENTATION_ROW_CLASS = WireDomesticRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_wire_domestic") subparser.set_defaults(parser="get") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser.add_argument( "transaction_id", help="Q2_GeneratedTransactions.TransactionID" )
[docs] async def get( self, transaction_id: int, serialize_for_cli=False ) -> List[WireDomesticRow]: transaction = GeneratedTransactions( self.logger, self.hq_credentials, ret_table_obj=True ) transaction_row = await transaction.get_by_id(transaction_id=transaction_id) if not transaction_row: raise DatabaseDataError( f"GeneratedTransactions with ID {transaction_id} does not exist" ) response = await self.call_hq( "sdk_GetWireDomestic", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "transaction_id", transaction_id, ) ]), ) if serialize_for_cli: columns = [ "WireDomesticID", "WireTransferID", "TransactionID", "RecipientFiName", "RecipientFiCountryID", "CustomerID", "UserID", "TransactionStatusID", "TransactionTypeID", "OriginatingAccountID", "TransactionAmount", "ToAccount", ] response = self.serialize_for_cli(response, columns) return response