Source code for q2_sdk.hq.db.wire_international

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 WireInternationalRow(RepresentationRowBase): # object name: type hinting = "column name in the db response" WireInternationalID: IntElement = "WireInternationalID" WireTransferID: IntElement = "WireTransferID" TransactionID: IntElement = "TransactionID" SwiftCodeOrBicMasked: StringElement = "SwiftCodeOrBicMasked" IBAN: StringElement = "IBAN" IntermedSwiftOrBicMasked: StringElement = "IntermedSwiftOrBicMasked" IntermedFiIbanMasked: StringElement = "IntermedFiIbanMasked" RecipientFiName: StringElement = "RecipientFiName" 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 WireInternational(DbObject): # GET_BY_NAME_KEY = "column in the db response" NAME = "WireInternational" REPRESENTATION_ROW_CLASS = WireInternationalRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_wire_international") 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[WireInternationalRow]: 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_GetWireInternational", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "transaction_id", transaction_id, ) ]), ) if serialize_for_cli: columns = [ "WireInternationalID", "WireTransferID", "TransactionID", "RecipientFiName", "RecipientFiCountryID", "CustomerID", "UserID", "TransactionStatusID", "TransactionTypeID", "OriginatingAccountID", "TransactionAmount", "ToAccount", ] response = self.serialize_for_cli(response, columns) return response