|
3 | 3 | from fastapi import APIRouter, Depends, status |
4 | 4 | from fastapi.exceptions import HTTPException |
5 | 5 | from sqlmodel import Session |
| 6 | +from sqlalchemy.exc import NoResultFound |
6 | 7 | from ...common.response_code import ApiResponse |
7 | 8 | from ...common.auth_casbin import Authority |
8 | 9 | from ...common.database import get_session |
@@ -53,17 +54,37 @@ async def get_roles(search: Pagination[RoleBase], session: Session = Depends(get |
53 | 54 | ) |
54 | 55 |
|
55 | 56 |
|
| 57 | +@router.get('/roles/exist', summary='角色是否存在') |
| 58 | +async def check_uname_exist(name: str, session: Session = Depends(get_session)): |
| 59 | + try: |
| 60 | + crud.internal.role.check_exist(session, name) |
| 61 | + except NoResultFound: |
| 62 | + return ApiResponse() |
| 63 | + else: |
| 64 | + return ApiResponse( |
| 65 | + message='error', |
| 66 | + data='error' |
| 67 | + ) |
| 68 | + |
| 69 | + |
56 | 70 | @router.post('/roles', summary="新建角色", response_model=ApiResponse[Role], |
57 | 71 | dependencies=[Depends(Authority('role:add'))]) |
58 | 72 | async def add_roles(role_info: RoleInsert, session: Session = Depends(get_session)): |
59 | 73 | logger.debug(role_info) |
60 | 74 | enable_menus = role_info.menus |
61 | 75 | delattr(role_info, 'menus') |
62 | | - db_obj = crud.internal.role.insert(session, Role(**role_info.dict())) |
63 | | - crud.internal.role.update_menus(session, db_obj, enable_menus) |
64 | | - return ApiResponse( |
65 | | - data=db_obj |
66 | | - ) |
| 76 | + try: |
| 77 | + db_obj = crud.internal.role.insert(session, Role(**role_info.dict())) |
| 78 | + crud.internal.role.update_menus(session, db_obj, enable_menus) |
| 79 | + return ApiResponse( |
| 80 | + data=db_obj |
| 81 | + ) |
| 82 | + except Exception as e: |
| 83 | + logger.error(f"add role error:{str(e)}") |
| 84 | + return ApiResponse( |
| 85 | + code=500, |
| 86 | + message=f"新建角色错误" |
| 87 | + ) |
67 | 88 |
|
68 | 89 |
|
69 | 90 | @router.put('/roles', summary="更新角色", response_model=ApiResponse[Role], |
|
0 commit comments