Files
2026-03-17 18:32:44 +03:00

26 lines
772 B
Python

from __future__ import annotations
from uuid import UUID
from fastapi import HTTPException, status
from sqlalchemy.ext.asyncio import AsyncSession
from app.models import Capability, User, UserRole
from app.services.capability_service import CapabilityService
async def get_capability_or_404(
session: AsyncSession,
capability_id: UUID,
current_user: User,
) -> Capability:
capability_service = CapabilityService(session)
capability = await capability_service.get_capability(
capability_id,
owner_user_id=current_user.id,
include_all=current_user.role == UserRole.ADMIN,
)
if capability is None:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Capability not found")
return capability