34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
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)
|