diff --git a/api/ECNQueue.py b/api/ECNQueue.py index f5e7c47..9135972 100644 --- a/api/ECNQueue.py +++ b/api/ECNQueue.py @@ -1207,6 +1207,64 @@ def toJson (self) -> dict: def __len__(self) -> int: return len(self.items) +class QueueList: + """[summary] + + Example: + [example] + """ + def __init__(self) -> None: + self.__directory = queueDirectory + self.queueList = self.__getQueueList() + self.itemCount = self.__getItemCount(self.queueList) + + self.jsonData = self.itemCount + + def __getItemCount(self, queueList: list) -> dict: + """[summary] + + Example: + [example] + + Returns: + int: [description] + """ + itemCountList = [] + + for queue in queueList: + itemCount = 0 + for item in os.listdir(queueDirectory + "/" + queue): + itemPath = queueDirectory + "/" + queue + "/" + item + + isFile = True if os.path.isfile(itemPath) else False + + itemPattern = re.compile("^[0123456789]{1,3}$") + isItem = True if itemPattern.match(item) else False + + if isFile and isItem: + itemCount = itemCount + 1 + + itemCountList.append( + {"name": queue, + "number_of_items": itemCount + } + ) + return itemCountList + + def __getQueueList(self) -> list: + queues = [] + + for file in os.listdir(queueDirectory): + currentFile = queueDirectory + "/" + file + isDirectory = os.path.isdir(currentFile) + isValid = file not in queuesToIgnore + + if isDirectory and isValid: + queues.append(file) + + return queues + + def getQueues() -> list: """Return a list of Queues for each queue. @@ -1223,4 +1281,7 @@ def getQueues() -> list: if isDirectory and isValid: queues.append(Queue(file)) - return queues \ No newline at end of file + return queues +if __name__ == "__main__": + thing = QueueList().itemCount + print() \ No newline at end of file diff --git a/api/api.py b/api/api.py index 1e91580..4b9865f 100644 --- a/api/api.py +++ b/api/api.py @@ -60,8 +60,19 @@ def get(self, queue: str) -> str: return queues +class QueueList(Resource): + def get(self) -> list: + """Returns a list of queues and the number of items in the queue + Example: + [example] + Returns: + list: [description] + """ + return ECNQueue.QueueList().itemCount + +api.add_resource(QueueList, "/api/getQueues") api.add_resource(Item, "/api//") api.add_resource(Queue, "/api/")