diff --git a/chat_test/app/migrations/versions/7bb5f34b11d2_изменения_таблицы_чатов.py b/chat_test/app/migrations/versions/7bb5f34b11d2_изменения_таблицы_чатов.py new file mode 100644 index 0000000..6366686 --- /dev/null +++ b/chat_test/app/migrations/versions/7bb5f34b11d2_изменения_таблицы_чатов.py @@ -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 ### diff --git a/chat_test/app/users/chat/dao.py b/chat_test/app/users/chat/dao.py index e795ea8..67f10a1 100644 --- a/chat_test/app/users/chat/dao.py +++ b/chat_test/app/users/chat/dao.py @@ -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() diff --git a/chat_test/app/users/chat/models.py b/chat_test/app/users/chat/models.py index 5392085..9a53fdd 100644 --- a/chat_test/app/users/chat/models.py +++ b/chat_test/app/users/chat/models.py @@ -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") diff --git a/chat_test/app/users/chat/router.py b/chat_test/app/users/chat/router.py index d7f466e..2b5bdb9 100644 --- a/chat_test/app/users/chat/router.py +++ b/chat_test/app/users/chat/router.py @@ -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