Source code for q2_sdk.hq.db.remote_deposit_capture

from argparse import _SubParsersAction
from functools import partial
from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from .db_object import DbObject
from q2_sdk.hq.table_row import TableRow
from q2_sdk.core.exceptions import HqResponseError
from q2_sdk.tools.decorators import dev_only


[docs] class RemoteDepositCaptureVendorRow(TableRow): RDCVendorID: int VendorName: str
[docs] class RemoteDepositCaptureMetaDataRow(TableRow): CustomerName: str FirstName: str LastName: str SingleTransactionLimit: str DailyDepositLimit: str
[docs] class RemoteDepositCapture(DbObject): NAME = "RemoteDepositCapture" REPRESENTATION_ROW_CLASS = RemoteDepositCaptureVendorRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("add_rdc_vendor") subparser.set_defaults(parser="add_vendor") subparser.set_defaults(func=partial(self.add_vendor, serialize_for_cli=True)) subparser.add_argument("vendor_name", help="Q2_RDCVendors.VendorName") subparser = parser.add_parser("get_rdc_vendors") subparser.set_defaults(parser="get_vendors") subparser.set_defaults(func=partial(self.get_vendors, serialize_for_cli=True)) subparser = parser.add_parser("get_rdc_meta_data") subparser.set_defaults(parser="get_meta_data") subparser.set_defaults(func=partial(self.get_meta_data, serialize_for_cli=True))
[docs] async def get_vendors( self, serialize_for_cli=False ) -> list[RemoteDepositCaptureVendorRow]: response = await self.call_hq( "sdk_GetRDCVendors", ) if serialize_for_cli: response = self.serialize_for_cli(response) return response
[docs] async def get_meta_data( self, serialize_for_cli=False ) -> list[RemoteDepositCaptureMetaDataRow]: try: response = await self.call_hq( "sdk_GetRdcMetaData", representation_class_override=RemoteDepositCaptureMetaDataRow, ) except HqResponseError as err: if "Invalid object name 'Q2_RDCMetaData'" in err.args[0]: self.logger.error( "Q2_RDCMetaData table does not exist. Ensure that the RemoteDepositCapture feature is enabled in this stack." ) raise if serialize_for_cli: columns = [ "CustomerName", "FirstName", "LastName", "SingleTransactionLimit", "DailyDepositLimit", ] response = self.serialize_for_cli(response, fields_to_display=columns) return response
[docs] @dev_only async def add_vendor(self, vendor_name: str, serialize_for_cli=False): assert isinstance(vendor_name, str), "Please supply a valid vendor_name" response = await self.call_hq( "sdk_AddRDCVendor", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "vendor_name", vendor_name ) ]), ) if serialize_for_cli: response = self.serialize_for_cli(response) return response