Source code for q2_cores.JXchange.queries.demographic_info_query

import logging

from lxml import etree
from lxml.builder import E

from q2_sdk.models.cores.queries.base_query import BaseQuery
from q2_cores.JXchange.queries import mock_responses


[docs] class DemographicInfoQuery(BaseQuery): def __init__(self, logger: logging.Logger, cust_id: str, change_tag=False): self.cust_id = cust_id self.change_tag = change_tag super().__init__(logger)
[docs] def build(self) -> str: xtend_elems_names = ["x_TaxDetail", "x_IdVerify", "x_CustRec"] xtend_elems = [] for node_name in xtend_elems_names: xtend_elems.append(E.IncXtendElemInfo(E.XtendElem(node_name), E.Ver_1)) msg_rq_hqr_element = E.SrchMsgRqHdr() if not self.change_tag else E.MsgRqHdr root = E.passthru( E.CustInq( msg_rq_hqr_element, E.CustId(self.cust_id), E.IncXtendElemArray(*xtend_elems), xmlns="http://jackhenry.com/jxchange/TPG/2008", ), servicename="Customer", ) xml_as_bytes = etree.tostring(root) return xml_as_bytes.decode()
[docs] def mock_response(self): return mock_responses.mock_demographic_info_response(self.cust_id)