From db9c3514a7ca4e08dca21f7a387a80e842c7291c Mon Sep 17 00:00:00 2001 From: urec56 Date: Sat, 10 Feb 2024 18:54:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B2=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D1=87=D0=B0=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../7bb5f34b11d2_изменения_таблицы_чатов.py | 30 +++++++++++++++++++ chat_test/app/users/chat/dao.py | 4 +-- chat_test/app/users/chat/models.py | 1 + chat_test/app/users/chat/router.py | 13 ++++---- 4 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 chat_test/app/migrations/versions/7bb5f34b11d2_изменения_таблицы_чатов.py 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