fix(chat): fix pydantic warnings for channel name
This commit is contained in:
@@ -93,7 +93,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]):
|
||||
target_user_id = next(u for u in users if u != user.id)
|
||||
target_name = await session.exec(select(User.username).where(User.id == target_user_id))
|
||||
return target_name.one()
|
||||
return channel.name
|
||||
return channel.channel_name
|
||||
|
||||
@included
|
||||
@staticmethod
|
||||
@@ -208,7 +208,7 @@ class ChatChannelModel(DatabaseModel[ChatChannelDict]):
|
||||
class ChatChannel(ChatChannelModel, table=True):
|
||||
__tablename__: str = "chat_channels"
|
||||
|
||||
name: str = Field(sa_column=Column(VARCHAR(50), index=True))
|
||||
channel_name: str = Field(sa_column=Column(name="name", type_=VARCHAR(50), index=True))
|
||||
|
||||
@classmethod
|
||||
async def get(cls, channel: str | int, session: AsyncSession) -> "ChatChannel | None":
|
||||
@@ -218,7 +218,7 @@ class ChatChannel(ChatChannelModel, table=True):
|
||||
channel_ = result.first()
|
||||
if channel_ is not None:
|
||||
return channel_
|
||||
result = await session.exec(select(ChatChannel).where(ChatChannel.name == channel))
|
||||
result = await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))
|
||||
return result.first()
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -99,7 +99,7 @@ async def join_channel(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
@@ -126,7 +126,7 @@ async def leave_channel(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
@@ -182,14 +182,14 @@ async def get_channel(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
|
||||
# 立即提取需要的属性
|
||||
channel_type = db_channel.type
|
||||
channel_name = db_channel.name
|
||||
channel_name = db_channel.channel_name
|
||||
|
||||
users = []
|
||||
if channel_type == ChannelType.PM:
|
||||
@@ -270,7 +270,7 @@ async def create_channel(
|
||||
channel_name = f"pm_{current_user.id}_{req.target_id}"
|
||||
else:
|
||||
channel_name = req.channel.name if req.channel else "Unnamed Channel"
|
||||
result = await session.exec(select(ChatChannel).where(ChatChannel.name == channel_name))
|
||||
result = await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel_name))
|
||||
channel = result.first()
|
||||
|
||||
if channel is None:
|
||||
|
||||
@@ -87,7 +87,7 @@ async def send_message(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
@@ -95,7 +95,7 @@ async def send_message(
|
||||
# 立即提取所有需要的属性,避免后续延迟加载
|
||||
channel_id = db_channel.channel_id
|
||||
channel_type = db_channel.type
|
||||
channel_name = db_channel.name
|
||||
channel_name = db_channel.channel_name
|
||||
user_id = current_user.id
|
||||
|
||||
# 对于多人游戏房间,在发送消息前进行Redis键检查
|
||||
@@ -169,7 +169,7 @@ async def get_message(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
@@ -231,7 +231,7 @@ async def mark_as_read(
|
||||
if channel.isdigit():
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_id == int(channel)))).first()
|
||||
else:
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.name == channel))).first()
|
||||
db_channel = (await session.exec(select(ChatChannel).where(ChatChannel.channel_name == channel))).first()
|
||||
|
||||
if db_channel is None:
|
||||
raise HTTPException(status_code=404, detail="Channel not found")
|
||||
|
||||
Reference in New Issue
Block a user