import logging
from lxml import etree
from q2_sdk.models.cores.queries.base_query import BaseQuery
from q2_cores.Metavante.queries import mock_responses
[docs]
class DemographicInfoQuery(BaseQuery):
"""Returns demographic info for a Metavante Entity, given an SSN"""
def __init__(self, logger: logging.Logger, ssn: str):
self.ssn = ssn
super().__init__(logger)
[docs]
def build(self):
root = etree.Element("Q2")
etree.SubElement(
root,
"cfg",
attrib={"svcID": "CICustTaxNbrSrch", "svcVer": "4.0", "appID": "CI"},
)
payload = etree.SubElement(root, "payload")
data_wrap = etree.SubElement(payload, "CICustTaxNbrSrchReqData")
etree.SubElement(data_wrap, "E10202").text = str(self.ssn)
xml_as_bytes = etree.tostring(root)
return xml_as_bytes.decode("utf8")
[docs]
def mock_response(self):
return mock_responses.mock_demo_info_response()