chore(release): bump version to 1.9.1 and apply pending changes
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
核心操作是「覆盖」而非「新增」,使用 INSERT ... ON CONFLICT DO UPDATE 保证原子性。
|
||||
"""
|
||||
|
||||
from uuid import UUID
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.dialects.postgresql import insert
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
@@ -20,18 +22,16 @@ class UserDeviceCRUD(CRUDBase[UserDevice]):
|
||||
def __init__(self) -> None:
|
||||
super().__init__(UserDevice)
|
||||
|
||||
async def get_by_user_id(self, db: AsyncSession, *, user_id: str) -> UserDevice | None:
|
||||
async def get_by_user_id(self, db: AsyncSession, *, user_id: UUID | str) -> UserDevice | None:
|
||||
"""根据用户 ID 获取设备记录"""
|
||||
result = await db.execute(
|
||||
select(UserDevice).where(UserDevice.user_id == user_id)
|
||||
)
|
||||
result = await db.execute(select(UserDevice).where(UserDevice.user_id == user_id))
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def create_or_update(
|
||||
self,
|
||||
db: AsyncSession,
|
||||
*,
|
||||
user_id: str,
|
||||
user_id: UUID | str,
|
||||
device_id: str,
|
||||
device_name: str | None = None,
|
||||
os_info: str | None = None,
|
||||
@@ -80,12 +80,10 @@ class UserDeviceCRUD(CRUDBase[UserDevice]):
|
||||
await db.commit()
|
||||
|
||||
# 返回最新的记录
|
||||
result = await db.execute(
|
||||
select(UserDevice).where(UserDevice.user_id == user_id)
|
||||
)
|
||||
result = await db.execute(select(UserDevice).where(UserDevice.user_id == user_id))
|
||||
return result.scalar_one()
|
||||
|
||||
async def delete_by_user_id(self, db: AsyncSession, *, user_id: str) -> bool:
|
||||
async def delete_by_user_id(self, db: AsyncSession, *, user_id: UUID | str) -> bool:
|
||||
"""根据用户 ID 删除设备记录(登出时使用)"""
|
||||
device = await self.get_by_user_id(db, user_id=user_id)
|
||||
if device is None:
|
||||
@@ -100,9 +98,7 @@ class UserDeviceCRUD(CRUDBase[UserDevice]):
|
||||
) -> UserDevice | None:
|
||||
"""根据 Refresh Token 哈希获取设备记录"""
|
||||
result = await db.execute(
|
||||
select(UserDevice).where(
|
||||
UserDevice.refresh_token_hash == refresh_token_hash
|
||||
)
|
||||
select(UserDevice).where(UserDevice.refresh_token_hash == refresh_token_hash)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user