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