Source code for q2_sdk.hq.models.hq_params.q2_api

from typing import Optional
from q2_sdk.core.exceptions import ConfigurationError
from q2_sdk.core.q2_logging.logger import Q2LoggerType

from q2_sdk.hq.models.hq_credentials import HqCredentials, BackOfficeHqCredentials
from q2_sdk.core.configuration import get_settings
from q2_sdk.core import contexts
from .base import BaseParamsObj


[docs] class Q2ApiParamsObj(BaseParamsObj): """ For use with HQ Endpoints defined within the Q2API.asmx route """ ENDPOINT_PATH = "Q2API" def __init__( self, logger: Q2LoggerType, hq_credentials: Optional[HqCredentials] = None ): settings = get_settings() if not hq_credentials: current_request = contexts.get_current_request(raise_if_none=False) if current_request: hq_credentials = current_request.request_handler.hq_credentials if settings.MULTITENANT and not hq_credentials and settings.DEBUG: logger.error( f'Multitenant mode set to TRUE: this requires HQ credentials to be explicitly passed to ParamsObj for "{self.__class__.__module__}".', stack_info=True, ) raise ConfigurationError( "Multitenant mode enabled but no credentials available" ) if isinstance(hq_credentials, BackOfficeHqCredentials): hq_credentials = hq_credentials.base_hq_credentials super().__init__(logger, hq_credentials=hq_credentials) self.request_params.update({ "CsrLogonName": self.hq_credentials.csr_user, "CsrPassword": self.hq_credentials.csr_pwd, "ABA": self.hq_credentials.aba, })