Source code for q2_sdk.hq.hq_api.q2_api.AddRecipientsNoc

# This is an autogenerated file from the command "q2 generate_hq_api" and will be overwritten if run again


import logging
from typing import List, Optional

from lxml import etree


from q2_sdk.core.q2_logging.logger import Q2LoggerType
from q2_sdk.hq.models.hq_response import HqResponse
from q2_sdk.hq.models.hq_credentials import HqCredentials
from q2_sdk.hq.models.hq_params.base import BaseParameter


from q2_sdk.hq.models.hq_params.q2_api import Q2ApiParamsObj
from q2_sdk.hq.models.hq_request.q2_api import Q2ApiRequest


[docs] class NOCDataItem(BaseParameter): def __init__( self, recipient_account_number: str, recipient_account_type: str, recipient_aba: str, received_date_time: str, reference_id: str, otel_id: str, correction_code: str, corrected_account_number: str, original_account_number: str, corrected_routing_number: str, original_routing_number: str, corrected_tran_code: str, original_tran_code: str, corrected_sec_code: str, original_sec_code: str, corrected_iat_receiving_id: str, original_iat_receiving_id: str, corrected_id_number: str, original_id_number: str, ): self.recipient_account_number = recipient_account_number self.recipient_account_type = recipient_account_type self.recipient_aba = recipient_aba self.received_date_time = received_date_time self.reference_id = reference_id self.otel_id = otel_id self.correction_code = correction_code self.corrected_account_number = corrected_account_number self.original_account_number = original_account_number self.corrected_routing_number = corrected_routing_number self.original_routing_number = original_routing_number self.corrected_tran_code = corrected_tran_code self.original_tran_code = original_tran_code self.corrected_sec_code = corrected_sec_code self.original_sec_code = original_sec_code self.corrected_iat_receiving_id = corrected_iat_receiving_id self.original_iat_receiving_id = original_iat_receiving_id self.corrected_id_number = corrected_id_number self.original_id_number = original_id_number
[docs] def serialize_as_xml(self): root = etree.Element("NOCDataItem") elem = etree.SubElement(root, "RecipientAccountNumber") elem.text = str(self.recipient_account_number) elem = etree.SubElement(root, "RecipientAccountType") elem.text = str(self.recipient_account_type) elem = etree.SubElement(root, "RecipientABA") elem.text = str(self.recipient_aba) elem = etree.SubElement(root, "ReceivedDateTime") elem.text = str(self.received_date_time) elem = etree.SubElement(root, "ReferenceID") elem.text = str(self.reference_id) elem = etree.SubElement(root, "OtelID") elem.text = str(self.otel_id) elem = etree.SubElement(root, "CorrectionCode") elem.text = str(self.correction_code) elem = etree.SubElement(root, "CorrectedAccountNumber") elem.text = str(self.corrected_account_number) elem = etree.SubElement(root, "OriginalAccountNumber") elem.text = str(self.original_account_number) elem = etree.SubElement(root, "CorrectedRoutingNumber") elem.text = str(self.corrected_routing_number) elem = etree.SubElement(root, "OriginalRoutingNumber") elem.text = str(self.original_routing_number) elem = etree.SubElement(root, "CorrectedTranCode") elem.text = str(self.corrected_tran_code) elem = etree.SubElement(root, "OriginalTranCode") elem.text = str(self.original_tran_code) elem = etree.SubElement(root, "CorrectedSecCode") elem.text = str(self.corrected_sec_code) elem = etree.SubElement(root, "OriginalSecCode") elem.text = str(self.original_sec_code) elem = etree.SubElement(root, "CorrectedIATReceivingID") elem.text = str(self.corrected_iat_receiving_id) elem = etree.SubElement(root, "OriginalIATReceivingID") elem.text = str(self.original_iat_receiving_id) elem = etree.SubElement(root, "CorrectedIDNumber") elem.text = str(self.corrected_id_number) elem = etree.SubElement(root, "OriginalIDNumber") elem.text = str(self.original_id_number) return root
[docs] def serialize_as_json(self): return { "RecipientAccountNumber": self.recipient_account_number, "RecipientAccountType": self.recipient_account_type, "RecipientABA": self.recipient_aba, "ReceivedDateTime": self.received_date_time, "ReferenceID": self.reference_id, "OtelID": self.otel_id, "CorrectionCode": self.correction_code, "CorrectedAccountNumber": self.corrected_account_number, "OriginalAccountNumber": self.original_account_number, "CorrectedRoutingNumber": self.corrected_routing_number, "OriginalRoutingNumber": self.original_routing_number, "CorrectedTranCode": self.corrected_tran_code, "OriginalTranCode": self.original_tran_code, "CorrectedSecCode": self.corrected_sec_code, "OriginalSecCode": self.original_sec_code, "CorrectedIATReceivingID": self.corrected_iat_receiving_id, "OriginalIATReceivingID": self.original_iat_receiving_id, "CorrectedIDNumber": self.corrected_id_number, "OriginalIDNumber": self.original_id_number, }
[docs] class NOCData(BaseParameter): def __init__(self, noc_data_item: Optional[List[NOCDataItem]] = None): self.noc_data_item = noc_data_item
[docs] def serialize_as_xml(self): root = etree.Element("NOCData") if self.noc_data_item is not None: for elem in self.noc_data_item: root.append(elem.serialize_as_xml()) return root
[docs] def serialize_as_json(self): return [x.serialize_as_json() for x in self.noc_data_item]
[docs] class request(BaseParameter): def __init__( self, customer_id: int, tax_id: str, noc_data: Optional[NOCData] = None ): self.customer_id = customer_id self.tax_id = tax_id self.noc_data = noc_data
[docs] def serialize_as_xml(self): root = etree.Element("request") elem = etree.SubElement(root, "CustomerID") elem.text = str(self.customer_id) elem = etree.SubElement(root, "TaxID") elem.text = str(self.tax_id) if self.noc_data is not None: for elem in self.noc_data: root.append(elem.serialize_as_xml()) return root
[docs] def serialize_as_json(self): return { "CustomerID": self.customer_id, "TaxID": self.tax_id, "NOCData": self.noc_data, }
[docs] class ParamsObj(Q2ApiParamsObj): """Parameters definition for AddRecipientsNoc""" def __init__( self, logger: Q2LoggerType, request: Optional[request] = None, hq_credentials: Optional[HqCredentials] = None, ): """ :param logger: Reference to calling request's logger (self.logger in your extension) :param request: :param hq_credentials: Defaults to settings.HQ_CREDENTIALS """ super().__init__(logger, hq_credentials) self.request_params.update({ "request": request, })
[docs] async def execute(params_obj: ParamsObj, use_json=False, **kwargs) -> HqResponse: """ This is the default way to submit the request to HQ. In theory, both json and soap payloads are equally accepted by HQ, though several variables may affect that (HQ version, Q2SDK implementation bugs, etc). This should not affect anything about the way your code deals with the data. In fact, the only difference to consuming extensions is the logging. Basically, call this with default parameters unless you find a compelling reason not to. :param params_obj: Object containing everything necessary to call this HQ endpoint :param use_json: If True, will call HQ's .ashx (json) endpoint instead of .asmx (soap) """ request = Q2ApiRequest("AddRecipientsNoc", use_json=use_json, **kwargs) return await request.execute(params_obj, **kwargs)
[docs] async def get_soap(params_obj: ParamsObj, **kwargs) -> HqResponse: """Deprecated. Please use execute instead""" params_obj.logger.warning( "AddRecipientsNoc.get_soap is deprecated. Please use AddRecipientsNoc.execute instead." ) return await execute(params_obj, **kwargs)
[docs] async def get_json(params_obj: ParamsObj, **kwargs) -> HqResponse: """Deprecated. Please use execute instead""" params_obj.logger.warning( "AddRecipientsNoc.get_json is deprecated. Please use AddRecipientsNoc.execute instead." ) return await execute(params_obj, use_json=True, **kwargs)
[docs] def build_json(params_obj: ParamsObj): return Q2ApiRequest.build_json(params_obj)
[docs] def build_soap(params_obj: ParamsObj): return Q2ApiRequest("AddRecipientsNoc", use_json=False).build_soap(params_obj)