From 3496143962a061c980875a7cc35d33f2cdca7b3d Mon Sep 17 00:00:00 2001
From: Gregoo <versatile.mailbox@gmail.com>
Date: Sat, 8 Feb 2025 10:15:54 +0100
Subject: [PATCH] Fix None being submitted to a metadata get()

---
 bricktracker/metadata_list.py | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/bricktracker/metadata_list.py b/bricktracker/metadata_list.py
index 44bf18f..13b9629 100644
--- a/bricktracker/metadata_list.py
+++ b/bricktracker/metadata_list.py
@@ -3,7 +3,7 @@ from typing import List, overload, Self, Type, TypeVar
 
 from flask import url_for
 
-from .exceptions import NotFoundException
+from .exceptions import ErrorException, NotFoundException
 from .fields import BrickRecordFields
 from .record_list import BrickRecordList
 from .set_owner import BrickSetOwner
@@ -113,12 +113,17 @@ class BrickMetadataList(BrickRecordList[T]):
 
     # Grab a specific status
     @classmethod
-    def get(cls, id: str, /, *, allow_none: bool = False) -> T:
+    def get(cls, id: str | None, /, *, allow_none: bool = False) -> T:
         new = cls.new()
 
-        if allow_none and id == '':
+        if allow_none and (id == '' or id is None):
             return new.model()
 
+        if id is None:
+            raise ErrorException('Cannot get {kind} with no ID'.format(
+                kind=new.kind.capitalize()
+            ))
+
         if id not in new.mapping:
             raise NotFoundException(
                 '{kind} with ID {id} was not found in the database'.format(