Изменения в создании чатов
This commit is contained in:
parent
6579b43bdc
commit
db9c3514a7
4 changed files with 39 additions and 9 deletions
|
@ -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 ###
|
|
@ -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()
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue