1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- from typing import Annotated
- from app.admin.schema.org import CreateOrgParam, GetOrgListDetails, UpdateOrgParam
- from app.admin.service.org_service import org_service
- from common.pagination import DependsPagination, paging_data
- from common.response.response_schema import ResponseModel, response_base
- from common.security.jwt_call_center import DependsJwtAuth
- from common.security.permission import RequestPermission
- from database.db_mysql import CurrentSession
- from fastapi import APIRouter, Depends, Path, Query
- router = APIRouter()
- @router.get('/{pk}', summary='获取 org 详情', dependencies=[DependsJwtAuth])
- async def get_org(pk: Annotated[int, Path(...)]) -> ResponseModel:
- org = await org_service.get(pk=pk)
- return response_base.success(data=org)
- @router.get(
- '',
- summary='(模糊条件)分页获取所有 org',
- dependencies=[
- DependsJwtAuth,
- DependsPagination,
- ],
- )
- async def get_pagination_org(db: CurrentSession) -> ResponseModel:
- org_select = await org_service.get_select()
- page_data = await paging_data(db, org_select, GetOrgListDetails)
- return response_base.success(data=page_data)
- @router.post(
- '',
- summary='创建 org',
- dependencies=[
- Depends(RequestPermission('org:add')),
- ],
- )
- async def create_org(obj: CreateOrgParam) -> ResponseModel:
- await org_service.create(obj=obj)
- return response_base.success()
- @router.put(
- '/{pk}',
- summary='更新 org',
- dependencies=[
- Depends(RequestPermission('org:edit')),
- ],
- )
- async def update_org(pk: Annotated[int, Path(...)], obj: UpdateOrgParam) -> ResponseModel:
- count = await org_service.update(pk=pk, obj=obj)
- if count > 0:
- return response_base.success()
- return response_base.fail()
- @router.delete(
- '',
- summary='(批量)删除 org',
- dependencies=[
- Depends(RequestPermission('org:del')),
- ],
- )
- async def delete_org(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
- count = await org_service.delete(pk=pk)
- if count > 0:
- return response_base.success()
- return response_base.fail()
|