diff --git a/src/webqueue2api/parser/item.py b/src/webqueue2api/parser/item.py index 3efecaa..d4c599f 100644 --- a/src/webqueue2api/parser/item.py +++ b/src/webqueue2api/parser/item.py @@ -8,6 +8,7 @@ from typing import Union from pathlib import Path from .config import config +from .errors import ItemDoesNotExistError @@ -36,6 +37,9 @@ class Item: department: The most recent department for this item. dateReceived: The date this item was created. jsonData: A JSON serializable representation of the Item. + + Raises: + ItemDoesNotExistError: If an item does not exist on the filesystem. """ def __init__(self, queue: str, number: int) -> None: @@ -47,6 +51,9 @@ def __init__(self, queue: str, number: int) -> None: raise ValueError(f"Could not convert {number} to an integer") self.__path = Path(config.queue_directory, self.queue, str(self.number)) + if not self.__path.exists(): + raise ItemDoesNotExistError(str(self.__path)) + self.lastUpdated = self.__getLastUpdated() self.__rawItem = self.__getRawItem() self.headers = self.__parseHeaders()