Source code for q2_cores.FiservCommunicatorOpenPremier.queries.demographic_info_query

import base64
import json
import logging

from q2_sdk.models.cores.queries.base_query import BaseQuery

from .mock_responses import demographic_info_response


[docs] class DemographicInfoQuery(BaseQuery): """ Builds the payload for the demographic call in the Fiserv Communicator Premier Open core """ def __init__(self, logger: logging.Logger, req_dict: dict) -> dict: self.req_dict = req_dict super().__init__(logger)
[docs] def build(self) -> dict: """ Creates a demographic info query to retrieve the user's demographic information. Example of query return to search by SSN: .. code-block:: json { "UrlPath": "/parties/parties/secured/list", "Method": "POST", "Base64Body": "eyJSZWNDdHJsSW4iOiB7fSwgIlBhcnR5TGlzdFNlbCI6IHsiVGF4SWRlbnQiOiAiMTQ3ODUxMjM1In19", } We convert below request into Base64 and add it to Base64Body .. code-block:: json { "RecCtrlIn":{}, "PartyListSel":{ "TaxIdent":"123456789" } } """ ssn_core_call = { "RecCtrlIn": {}, "PartyListSel": {"TaxIdent": self.req_dict.get("ssn")}, } json_str = json.dumps(ssn_core_call) b64_encoded = base64.b64encode(json_str.encode("utf-8")) base64_body = b64_encoded.decode("utf-8") ssn_query = { "UrlPath": "/parties/parties/secured/list", "Method": "POST", "Base64Body": base64_body, } return ssn_query
[docs] def mock_response(self): response = demographic_info_response() return response