make devices actually unique

This commit is contained in:
Georges-Antoine Assi
2026-03-15 20:09:33 -04:00
parent 29112b4ddc
commit e1b07cacfc
3 changed files with 42 additions and 11 deletions

View File

@@ -36,6 +36,7 @@ class DBDevicesHandler(DBBaseHandler):
user_id: int,
mac_address: str | None = None,
hostname: str | None = None,
ip_address: str | None = None,
platform: str | None = None,
session: Session = None, # type: ignore
) -> Device | None:
@@ -48,6 +49,13 @@ class DBDevicesHandler(DBBaseHandler):
if device:
return device
if ip_address and platform:
return session.scalar(
select(Device)
.filter_by(user_id=user_id, ip_address=ip_address, platform=platform)
.limit(1)
)
if hostname and platform:
return session.scalar(
select(Device)