async (not working tbh)

This commit is contained in:
2024-04-14 14:45:01 +03:00
parent 17e0f78ecf
commit 033dbc538e
11 changed files with 95 additions and 50 deletions

View File

@ -1,6 +1,7 @@
from fastapi import Depends, HTTPException, status
from typing import Annotated
from sqlalchemy.orm import Session
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from uuid import UUID
from ...dependencies import get_db
@ -12,24 +13,23 @@ from ..auth import schemas as auth_schemas
from . import schemas
def get_news(
db: Annotated[Session, Depends(get_db)],
async def get_news(
db: Annotated[AsyncSession, Depends(get_db)],
) -> list[schemas.NewsInDb]:
return [
schemas.NewsInDb.model_validate(n)
for n in db.query(models.News).order_by(models.News.created.desc()).all()
]
news = await db.execute(select(models.News).order_by(models.News.created.desc()))
return [schemas.NewsInDb.model_validate(n) for n in news.scalars().all()]
def create_news(
async def create_news(
news: schemas.CreateNews,
current_user: auth_schemas.UserInDB,
db: Session,
db: AsyncSession,
) -> schemas.NewsInDb:
if current_user.username == "admin":
n = models.News(title=news.title, content=news.content)
db.add(n)
db.commit()
await db.commit()
print(f"\n\n{n.title}\n\n", flush=True)
return schemas.NewsInDb.model_validate(n)
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
@ -38,7 +38,7 @@ def create_news(
)
def tap_news(news_id: UUID, db: Session):
async def tap_news(news_id: UUID, db: AsyncSession):
n = db.query(models.News).filter(models.News.id == news_id).first()
if n:
setattr(n, "taps", n.taps + 1)