diff --git a/core/data/schema/arcade.py b/core/data/schema/arcade.py index 117c3fe..921e5b5 100644 --- a/core/data/schema/arcade.py +++ b/core/data/schema/arcade.py @@ -50,9 +50,20 @@ arcade_owner = Table( class ArcadeData(BaseData): def get_machine(self, serial: str = None, id: int = None) -> Optional[Dict]: if serial is not None: - sql = machine.select(machine.c.serial == serial) + serial = serial.replace("-", "") + if len(serial) == 11: + sql = machine.select(machine.c.serial.like(f"{serial}%")) + + elif len(serial) == 15: + sql = machine.select(machine.c.serial == serial) + + else: + self.logger.error(f"{__name__ }: Malformed serial {serial}") + return None + elif id is not None: sql = machine.select(machine.c.id == id) + else: self.logger.error(f"{__name__ }: Need either serial or ID to look up!") return None @@ -110,4 +121,4 @@ class ArcadeData(BaseData): return result.lastrowid def generate_keychip_serial(self, platform_id: int) -> str: - pass \ No newline at end of file + pass