from fastapi import APIRouter, Depends from services.role_service import RoleService from models.schemas import Role from config.database import get_db from fastapi.security import OAuth2PasswordBearer router = APIRouter() oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/token") @router.post("/", status_code=201) async def create_role(role: Role, db=Depends(get_db), token: str = Depends(oauth2_scheme)): return await RoleService.create_role(role, db, token) @router.get("/{role_id}") async def get_role(role_id: int, db=Depends(get_db)): return await RoleService.get_role(role_id, db) @router.get("/") async def get_all_roles(db=Depends(get_db)): return await RoleService.get_all_roles(db) @router.put("/{role_id}") async def update_role(role_id: int, data: dict, db=Depends(get_db), token: str = Depends(oauth2_scheme)): return await RoleService.update_role(role_id, data, db, token) @router.delete("/{role_id}") async def delete_role(role_id: int, db=Depends(get_db), token: str = Depends(oauth2_scheme)): return await RoleService.delete_role(role_id, db, token)