add verify_admin_token
This commit is contained in:
+27
-3
@@ -1,7 +1,10 @@
|
||||
from fastapi import APIRouter
|
||||
from fastapi import Depends, HTTPException, Query
|
||||
from api.routes.base_crud import generate_crud_router
|
||||
from api.schemas import ReferralResponse
|
||||
from database.models import Referral
|
||||
from database.models import Referral, Admin
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy import select, delete
|
||||
from api.depends import get_session, verify_admin_token
|
||||
|
||||
router = generate_crud_router(
|
||||
model=Referral,
|
||||
@@ -9,5 +12,26 @@ router = generate_crud_router(
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="referrer_tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete", "get_all_by_field"]
|
||||
enabled_methods=["get_all", "get_one", "get_all_by_field"]
|
||||
)
|
||||
|
||||
|
||||
@router.delete("/one")
|
||||
async def delete_one_referral(
|
||||
referrer_tg_id: int = Query(..., description="ID пригласившего"),
|
||||
referred_tg_id: int = Query(..., description="ID приглашённого"),
|
||||
admin: Admin = Depends(verify_admin_token),
|
||||
session: AsyncSession = Depends(get_session)
|
||||
):
|
||||
result = await session.execute(
|
||||
select(Referral).where(
|
||||
Referral.referrer_tg_id == referrer_tg_id,
|
||||
Referral.referred_tg_id == referred_tg_id
|
||||
)
|
||||
)
|
||||
obj = result.scalar_one_or_none()
|
||||
if not obj:
|
||||
raise HTTPException(status_code=404, detail="Referral not found")
|
||||
await session.delete(obj)
|
||||
await session.commit()
|
||||
return {"status": "deleted_one"}
|
||||
Reference in New Issue
Block a user