diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 99b3d8e..b9d07df 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -35,6 +35,7 @@ def __init__(self, queue: str, number: int) -> None: self.isLocked = self.__isLocked() self.userEmail = self.__getUserEmail() self.userName = self.__getUserName() + self.userAlias = self.__getUserAlias() def __getLastUpdated(self) -> float: """Returns last modified time of item reported by the filesystem in mm-dd-yy hh:mm am/pm format. @@ -191,7 +192,7 @@ def __parseFromData(self, data: str) -> str: 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\".") + else: raise ValueError("data='" + 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) @@ -199,6 +200,22 @@ def __getUserName(self, data="userName") -> Union[str, None]: def __getUserEmail(self, data="userEmail") -> str: return self.__parseFromData(data) + def __getUserAlias(self) -> Union[str, None]: + """Returns user's Career Account alias if present. + If Career Account alias isn't present, returns none. + + Example: Email from campb303@purdue.edu + userAlias = 'campb303' + + Example: Email from spam@spammer.net + userAlias = None + + Returns: + Union[str, None]: User's Career Account alias if present or None + """ + emailUser, emailDomain = self.userEmail.split("@") + return emailUser if emailDomain.endswith("purdue.edu") else None + def __repr__(self) -> str: return self.queue + str(self.number) @@ -234,4 +251,3 @@ def __getItems(self) -> list: def __len__(self) -> int: return len(self.items) -