Изменения в создании чатов

This commit is contained in:
urec56 2024-02-10 18:54:07 +03:00
parent 6579b43bdc
commit db9c3514a7
4 changed files with 39 additions and 9 deletions

View file

@ -0,0 +1,30 @@
"""Изменения таблицы чатов
Revision ID: 7bb5f34b11d2
Revises: 3a44aa43d35d
Create Date: 2024-02-10 18:49:33.988568
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '7bb5f34b11d2'
down_revision: Union[str, None] = '3a44aa43d35d'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('chats', sa.Column('chat_name', sa.String(), nullable=False))
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('chats', 'chat_name')
# ### end Alembic commands ###

View file

@ -10,8 +10,8 @@ class ChatDAO(BaseDAO):
model = Chats
@classmethod
async def create(cls, user_id: int):
query = insert(Chats).values(chat_for=user_id)
async def create(cls, user_id: int, chat_name: str):
query = insert(Chats).values(chat_for=user_id, chat_name=chat_name)
async with async_session_maker() as session:
await session.execute(query)
await session.commit()

View file

@ -12,6 +12,7 @@ class Chats(Base):
id: Mapped[int] = mapped_column(primary_key=True)
chat_for = mapped_column(ForeignKey("users.id"))
chat_name: Mapped[str]
message = relationship("Messages", back_populates="chat")
usersxchats = relationship("UsersXChats", back_populates="chat")

View file

@ -6,7 +6,7 @@ from app.users.chat.shemas import SMessage, SLastMessages
from app.users.dao import UserDAO
from app.users.dependencies import get_current_user
from app.users.auth import validate_user_access_to_chat, validate_user_admin
from app.users.auth import validate_user_access_to_chat, validate_user_admin, get_user_allowed_chats
from app.users.models import Users
router = APIRouter(
@ -15,11 +15,9 @@ router = APIRouter(
)
# Мусор
@router.get("")
async def root(user: Users = Depends(get_current_user)):
print(user)
return user.id
@router.get('')
async def get_all_chats(user: Users = Depends(get_current_user)):
return await get_user_allowed_chats(user.id)
@router.post("", status_code=status.HTTP_201_CREATED)
@ -54,11 +52,12 @@ async def delete_message_from_chat(
@router.post("/create_chat", status_code=status.HTTP_201_CREATED)
async def create_chat(
user_to_exclude: int,
chat_name: str,
user: Users = Depends(get_current_user)
):
if user.id == user_to_exclude:
raise UserCanNotReadThisChatException
created_chat = await ChatDAO.create(user_id=user_to_exclude)
created_chat = await ChatDAO.create(user_id=user_to_exclude, chat_name=chat_name)
return created_chat