pyceo/ceod/model/UWLDAPRecord.py

31 lines
801 B
Python

from typing import List, Dict, Union
from .utils import bytes_to_strings
class UWLDAPRecord:
"""Represents a record from the UW LDAP."""
def __init__(
self,
uid: str,
program: Union[str, None],
mail_local_addresses: List[str],
):
self.uid = uid
self.program = program
self.mail_local_addresses = mail_local_addresses
@staticmethod
def deserialize_from_ldap(self, data: Dict[str, List[bytes]]):
"""
Deserializes a dict returned from ldap.search_s() into a
UWLDAPRecord.
"""
data = bytes_to_strings(data)
return UWLDAPRecord(
uid=data['uid'][0],
program=data.get('ou', [None])[0],
mail_local_addresses=data['mailLocalAddress'],
)