From df2a936d707dc1583126e9fa191bc45f4cd56b08 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Sun, 26 Jul 2020 15:30:34 -0400 Subject: [PATCH] Implmenet getUserEmail and getUserName in Item class --- api/ECNQueue.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 03d0695..99b3d8e 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -34,6 +34,7 @@ def __init__(self, queue: str, number: int) -> None: self.content = self.__getContent() self.isLocked = self.__isLocked() self.userEmail = self.__getUserEmail() + self.userName = self.__getUserName() def __getLastUpdated(self) -> float: """Returns last modified time of item reported by the filesystem in mm-dd-yy hh:mm am/pm format. @@ -171,15 +172,32 @@ def __getMostRecentHeaderByType(self, headerType: str) -> Union[dict, None]: if header["type"] == headerType: return header return None - def __getUserEmail(self) -> str: - """Returns the email address that the item originated from. + def __parseFromData(self, data: str) -> str: + """Parse From header and return requested data. + Returns empty string if requested data is unavailable. + + Examples: From data is "From: Campbell, Justin " + __parseFromData(data="userName") returns "Campbell, Justin" + __parseFromData(data="userEmail") returns "campb303@purdue.edu" + + Args: + data (str): The data desired; can be "userName" or "userEmail". Returns: - str: Email address that the item originated from. + str: userName, userEmail or empty string. """ fromHeader = self.__getMostRecentHeaderByType("From") - userEmail = email.utils.parseaddr(fromHeader["content"])[1] - return userEmail + userName, userEmail = email.utils.parseaddr(fromHeader["content"]) + + if data == "userName": return userName + elif data == "userEmail": return userEmail + else: raise ValueError(str(data) + "is not a valid option. data must be \"userName\" or \"userEmail\".") + + def __getUserName(self, data="userName") -> Union[str, None]: + return self.__parseFromData(data) + + def __getUserEmail(self, data="userEmail") -> str: + return self.__parseFromData(data) def __repr__(self) -> str: return self.queue + str(self.number) @@ -217,7 +235,3 @@ def __getItems(self) -> list: def __len__(self) -> int: return len(self.items) -if __name__ == "__main__": - # queue = Queue("ce") - item = Item("ce", 9) - print("s") \ No newline at end of file