"""
LogonAdmin
"""
import uuid
from typing import Optional
from q2_sdk.core.q2_logging.logger import Q2LoggerType
from q2_sdk.hq.models.hq_request.backoffice import BackOfficeRequest
from q2_sdk.hq.models.backoffice_response import BackOfficeResponse
from q2_sdk.hq.models.hq_params.backoffice import BackOfficeParamsObj
from q2_sdk.hq.models.hq_credentials import HqCredentials
[docs]
class ParamsObj(BackOfficeParamsObj):
"""Parameters definition for LogonAdmin"""
def __init__(
self,
logger: Q2LoggerType,
hq_credentials: HqCredentials,
client_address: str,
login_name: str,
user_password: str,
client_session_id: Optional[str] = None,
):
"""
:param logger: Reference to calling request's logger (self.logger in your extension)
:param client_address: IP of the client (for logging)
:param client_session_id: (Optional) self.online_session.session_id
:param hq_credentials: HqCredentials instance
"""
super().__init__(logger, hq_credentials)
if not client_session_id:
client_session_id = uuid.uuid4()
self.request_params = {
"clientAddress": client_address,
"clientSessionId": client_session_id,
"loginName": login_name,
"userPassword": user_password,
}
[docs]
async def execute(params_obj: ParamsObj, **kwargs) -> BackOfficeResponse:
"""
:param params_obj: Object containing everything necessary to call this HQ endpoint
"""
request = BackOfficeRequest("LogonAdmin", **kwargs)
return await request.execute(params_obj, **kwargs)