ForcePilot/backend/package/yuxi/channel/gateway/device_registry_db.py

32 lines
951 B
Python
Raw Normal View History

import logging
from yuxi.repositories.channel_device_identity_repo import DeviceIdentityRepository
logger = logging.getLogger(__name__)
_repo = DeviceIdentityRepository()
async def db_lookup_public_key(device_id: str) -> str | None:
record = await _repo.get_by_device_id(device_id)
if record is None or record.status != "active":
return None
await _repo.mark_used(device_id)
return record.public_key_pem
async def db_save_device(device_id: str, public_key_pem: str) -> None:
existing = await _repo.get_by_device_id(device_id)
if existing is not None:
await _repo.update(device_id, {"public_key_pem": public_key_pem, "status": "active"})
else:
await _repo.create(
{
"device_id": device_id,
"public_key_pem": public_key_pem,
"status": "active",
}
)
logger.debug("Device saved to DB: device_id=%s", device_id)