import logging
import uuid
from lxml.builder import E
from ..queries.account_query import AccountQuery
from ..models.credentials import CardCredentials
from ..models.device_information import DeviceInformation
from ..queries import mock_responses
[docs]
class AccountDemographicQuery(AccountQuery):
def __init__(
self,
logger: logging.Logger,
account_number: str,
device_number: str,
device_type: str,
card_prefix: str,
):
acct = self.create_request()
get_account_select_fields = acct.getAccountSelectFields(
E.Request(
E.SelectableFields(
E.IncludeAllAccountFields("false"),
E.AccountFields(
E.CloseDate("true"),
E.Number("true"),
E.RecordChangeDate("true"),
E.Type("true"),
),
E.NameSelectableFields(E.IncludeAllNameFields("true")),
E.ShareSelectableFields(
E.IncludeAllShareFields("false"), E.ShareFields(E.Id("true"))
),
),
MessageId=str(uuid.uuid4()),
)
)
super().__init__(
logger,
account_number,
CardCredentials(card_prefix, account_number),
DeviceInformation(device_type, device_number),
get_account_select_fields,
)
[docs]
def mock_response(self):
return mock_responses.mock_account_demographic_response()