Source code for q2_cores.SymXchange.queries.account_query

import logging
from typing import Type

from lxml.builder import ElementMaker, E
from q2_cores.SymXchange.models import namespaces
from q2_cores.SymXchange.models import Credentials, DeviceInformation
from q2_cores.SymXchange.queries.base_query import SymXchangeBaseQuery


[docs] class AccountQuery(SymXchangeBaseQuery): def __init__( self, logger: logging.Logger, account_number: str, credentials: Type[Credentials], device_info: DeviceInformation, request: ElementMaker, mock_failure: bool = False, ): self.account_number = account_number self._request = request super().__init__(logger, credentials, device_info, mock_failure) @property def service(self) -> str: return "account"
[docs] @staticmethod def create_request() -> ElementMaker: return ElementMaker( namespace=namespaces.SYMXCHANGE_ACCOUNT, nsmap={"acc": namespaces.SYMXCHANGE_ACCOUNT}, )
[docs] def build(self) -> str: # Grab the first child element which should be the <Request> element request = self._request[0] if request: request.insert(0, E("AccountNumber", self.account_number)) request.insert(1, self.create_credentials()) request.insert(2, self.create_device_info()) envelope = self.create_envelope(self._request) return super().serialize(envelope)