Source code for q2_cores.FiservCommunicatorOpenPremier.core

import logging
from typing import Optional

from q2_sdk.hq.models.hq_credentials import HqCredentials
from q2_sdk.models.cores.base_core import BaseCore
from q2_sdk.models.cores.models.core_user import CoreUser

from ..exceptions import MissingCoreParameters
from .mappers.demographic_info_mapper import DemographicInfoMapper
from .queries.demographic_info_query import DemographicInfoQuery


[docs] class Core(BaseCore): CONFIG_FILE_NAME = "FiservCommunicatorOpenPremier_Core" OPTIONAL_CONFIGURATIONS = {"BUSINESS": False, "GET_NAME_IDS": False} def __init__( self, logger: logging.Logger, core_user: CoreUser, hq_credentials: Optional[HqCredentials] = None, **kwargs, ): super().__init__(logger, core_user, hq_credentials=hq_credentials, **kwargs) self.orginating_branch = None
[docs] async def build_demographic_info(self) -> DemographicInfoMapper: """ Builds a request to retrieve a user's demographic information from the core with the user's social security number. """ if not self.configured_user.ssn: raise MissingCoreParameters("Social security number not found") self.logger.debug( "Attempting to build request to retrieve user's demographic information..." ) req_dict = {"ssn": self.configured_user.ssn} demo_query = DemographicInfoQuery(self.logger, req_dict=req_dict) demo_mapper = DemographicInfoMapper( list_of_queries=[demo_query], get_name_ids=getattr(self.config, "GET_NAME_IDS", None), is_business=getattr(self.config, "BUSINESS", None), hq_credentials=self.hq_credentials, ) return demo_mapper