Skip to content

Commit

Permalink
Implmenet getUserEmail and getUserName in Item class
Browse files Browse the repository at this point in the history
  • Loading branch information
Justin Campbell committed Jul 26, 2020
1 parent 89ad2a1 commit df2a936
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions api/ECNQueue.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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 <campb303@purdue.edu>"
__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)
Expand Down Expand Up @@ -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")

0 comments on commit df2a936

Please sign in to comment.