from typing import Optional
from lxml import objectify
from q2_sdk.models.recursive_encoder import JsonSerializable
[docs]
class LoginVerifyResponse(JsonSerializable):
def __init__(self, raw_response: str):
self.raw_response: str = raw_response
self.status: Optional[str] = None
self.error: Optional[str] = None
self.person_serial: Optional[str] = None
self.account_serial: Optional[str] = None
self.login_serial: Optional[str] = None
root = objectify.fromstring(raw_response)
self.status = root.sequence.transaction.attrib["result"]
# Check for possible error
status = root.sequence.transaction.step.loginVerify.success.text
if status.lower() != "yes":
self.error = root.sequence.transaction.step.loginVerify.failure.message.text
return
self.login_serial = int(
root.sequence.transaction.step.loginVerify.loginSerialResult.text
)
self.person_serial = int(
root.sequence.transaction.step.loginVerify.personSerialResult.text
)
try:
self.account_serial = int(
root.sequence.transaction.step.loginVerify.accountSerialResult.text
)
except AttributeError:
pass