Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
39
code-server-config/data/User/History/-26d8d76b/E63S.py
Executable file
39
code-server-config/data/User/History/-26d8d76b/E63S.py
Executable file
@@ -0,0 +1,39 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException, status
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from typing import List
|
||||
|
||||
from app.db.session import get_db
|
||||
from app.schemas.social import ServiceProviderCreate, ServiceProviderResponse, VoteCreate
|
||||
from app.models.social import ServiceProvider, Vote
|
||||
from app.models.user import User
|
||||
# --- JAVÍTÁS: Nem osztályt, hanem függvényeket importálunk ---
|
||||
from app.services.social_service import vote_for_provider, get_leaderboard
|
||||
# -------------------------------------------------------------
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
# ... (itt lehetnek a create_provider stb. végpontok, azokat hagyd meg) ...
|
||||
|
||||
@router.post("/vote", status_code=status.HTTP_200_OK)
|
||||
async def cast_vote(
|
||||
vote_data: VoteCreate,
|
||||
db: AsyncSession = Depends(get_db),
|
||||
# Itt ideális esetben a current_user-t használnánk, de most egyszerűsítünk:
|
||||
# current_user: User = Depends(get_current_user)
|
||||
):
|
||||
# Most a teszt kedvéért feltételezzük, hogy a vote_data-ban jön a user_id is,
|
||||
# vagy fix userrel tesztelünk. A Seed script úgyis közvetlenül a service-t hívja.
|
||||
|
||||
# Hívjuk meg a szerviz függvényt:
|
||||
result = await vote_for_provider(db, vote_data.user_id, vote_data.provider_id, vote_data.vote_value)
|
||||
|
||||
if "error" in result:
|
||||
raise HTTPException(status_code=400, detail=result["error"])
|
||||
|
||||
return result
|
||||
|
||||
@router.get("/competitions/{competition_id}/leaderboard")
|
||||
async def leaderboard(competition_id: int, db: AsyncSession = Depends(get_db)):
|
||||
results = await get_leaderboard(db, competition_id)
|
||||
# Formázzuk a választ
|
||||
return [{"user": row.full_name, "points": row.points} for row in results]
|
||||
Reference in New Issue
Block a user