Skip to content

Commit

Permalink
implementation of QueueList class to store queue list info for /api/g…
Browse files Browse the repository at this point in the history
…etQueues call
  • Loading branch information
Jacob Daniel Bennett committed Oct 30, 2020
1 parent 605d165 commit c807416
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 1 deletion.
63 changes: 62 additions & 1 deletion api/ECNQueue.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -1223,4 +1281,7 @@ def getQueues() -> list:
if isDirectory and isValid:
queues.append(Queue(file))

return queues
return queues
if __name__ == "__main__":
thing = QueueList().itemCount
print()
11 changes: 11 additions & 0 deletions api/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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/<string:queue>/<int:number>")
api.add_resource(Queue, "/api/<string:queue>")

Expand Down

0 comments on commit c807416

Please sign in to comment.