From 696692729bcfa0299933d56f02b32aa43eab713a Mon Sep 17 00:00:00 2001 From: Jacob Daniel Bennett Date: Wed, 9 Sep 2020 11:40:51 -0400 Subject: [PATCH 1/4] Added __getFormattedDate function to return UTC formatted dates --- api/ECNQueue.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index e38cb70..41ba393 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -3,7 +3,8 @@ #------------------------------------------------------------------------------# # Imports #------------------------------------------------------------------------------# -import os, time, email, re +import os, time, email, re, datetime +from dateutil.parser import parse from typing import Union import json @@ -264,6 +265,22 @@ def __getAssignedTo(self) -> str: """ assignedTo = self.__getMostRecentHeaderByType("Assigned-To") return assignedTo + + def __getFormattedDate(self, date: str) -> str: + """Returns the date/time recieved properly formatted. + Returns empty string if the string argument passed to the function is not a datetime + + Returns: + str: Properly formatted date/time recieved or empty string. + """ + try: + objDateRecieved = parse(date) + except: + return "" + + formattedDateRecieved = objDateRecieved.strftime("%Y-%m-%dT%H:%M:%S%z") + + return formattedDateRecieved def toJson(self) -> dict: """Returns a JSON safe representation of the item. @@ -345,4 +362,4 @@ def getQueues() -> list: if isDirectory and isValid: queues.append(Queue(file)) - return queues \ No newline at end of file + return queues \ No newline at end of file From b522fe468826799ab5b3a9755947fcac11f065d7 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Wed, 9 Sep 2020 13:49:01 -0400 Subject: [PATCH 2/4] Parse dateReceived --- api/ECNQueue.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 41ba393..2da3d1b 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -54,7 +54,7 @@ def __init__(self, queue: str, number: int) -> None: self.priority = self.__getMostRecentHeaderByType("Priority") self.department = self.__getMostRecentHeaderByType("Department") self.building = self.__getMostRecentHeaderByType("Building") - self.dateReceived = self.__getMostRecentHeaderByType("Date") + self.dateReceived = self.__getParsedDate(self.__getMostRecentHeaderByType("Date")) self.jsonData = { "queue": self.queue, @@ -274,13 +274,13 @@ def __getFormattedDate(self, date: str) -> str: str: Properly formatted date/time recieved or empty string. """ try: - objDateRecieved = parse(date) + parsedDate = parse(date) except: return "" - formattedDateRecieved = objDateRecieved.strftime("%Y-%m-%dT%H:%M:%S%z") + parsedDateString = parsedDate.strftime("%Y-%m-%dT%H:%M:%S%z") - return formattedDateRecieved + return parsedDateString def toJson(self) -> dict: """Returns a JSON safe representation of the item. @@ -362,4 +362,4 @@ def getQueues() -> list: if isDirectory and isValid: queues.append(Queue(file)) - return queues \ No newline at end of file + return queues \ No newline at end of file From e452fb0e09993d987de516b6593b86897c0cbeca Mon Sep 17 00:00:00 2001 From: Jacob Daniel Bennett Date: Thu, 10 Sep 2020 12:59:05 -0400 Subject: [PATCH 3/4] Added to pip requirements --- requirements.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..60a7d4a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,31 @@ +aniso8601==8.0.0 +astroid==2.4.2 +attrs==20.1.0 +click==7.1.2 +Flask==1.1.2 +Flask-RESTful==0.3.8 +gunicorn==20.0.4 +importlib-metadata==1.7.0 +iniconfig==1.0.1 +isort==4.3.21 +itsdangerous==1.1.0 +Jinja2==2.11.2 +lazy-object-proxy==1.4.3 +MarkupSafe==1.1.1 +mccabe==0.6.1 +more-itertools==8.5.0 +packaging==20.4 +pkg-resources==0.0.0 +pluggy==0.13.1 +py==1.9.0 +pylint==2.5.3 +pyparsing==2.4.7 +pytest==6.0.1 +python-dateutil==2.8.1 +pytz==2020.1 +six==1.15.0 +toml==0.10.1 +typed-ast==1.4.1 +Werkzeug==1.0.1 +wrapt==1.12.1 +zipp==3.1.0 From c342885d43401cd1c207d51f645b793d16af45fe Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Thu, 17 Sep 2020 13:59:03 -0400 Subject: [PATCH 4/4] Update docs for explicit date format --- api/ECNQueue.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/api/ECNQueue.py b/api/ECNQueue.py index 2da3d1b..53c376c 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -267,8 +267,9 @@ def __getAssignedTo(self) -> str: return assignedTo def __getFormattedDate(self, date: str) -> str: - """Returns the date/time recieved properly formatted. - Returns empty string if the string argument passed to the function is not a datetime + """Returns the date/time formatted as RFC 8601 YYYY-MM-DDTHH:MM:SS+00:00. + Returns empty string if the string argument passed to the function is not a datetime. + See: https://en.wikipedia.org/wiki/ISO_8601 Returns: str: Properly formatted date/time recieved or empty string.