Compare commits
No commits in common. "f60d86e91d5f138777a902ef29c08d34ba56fdff" and "01c49ca34cf5f24ef1c8d55c501d18f15642f240" have entirely different histories.
f60d86e91d
...
01c49ca34c
2 changed files with 19 additions and 53 deletions
|
|
@ -3,19 +3,6 @@ Router endpoints for the <this> module
|
||||||
|
|
||||||
Exports:
|
Exports:
|
||||||
- router: fastapi.APIRouter
|
- router: fastapi.APIRouter
|
||||||
|
|
||||||
### Router Guidelines ###
|
|
||||||
- Add responses to decorators
|
|
||||||
- Add status_codes to decorators
|
|
||||||
- All endpoints should either return a response object or 204
|
|
||||||
- Ensure response_model is declared in the decorator
|
|
||||||
- All query and path params should have validation and descriptions
|
|
||||||
- All endpoints should have a docstring (this is used in place of a description)
|
|
||||||
- All endpoints should have a summary
|
|
||||||
- All modules should have metadata in main.py
|
|
||||||
- All exceptions should have a custom definition in exceptions.py
|
|
||||||
- Dependencies should be used for db model get and validation where possible
|
|
||||||
- Verify module level docstring is still accurate after updates
|
|
||||||
"""
|
"""
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,7 @@ router = APIRouter(
|
||||||
prefix="/service",
|
prefix="/service",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@router.get("/", status_code=status.HTTP_200_OK, response_model=ServiceGetServiceResponse, responses={
|
||||||
@router.get("/",
|
|
||||||
summary="Get all services",
|
|
||||||
status_code=status.HTTP_200_OK,
|
|
||||||
response_model=ServiceGetServiceResponse,
|
|
||||||
responses={
|
|
||||||
status.HTTP_200_OK: {"description": "Successful retrieval from database"},
|
status.HTTP_200_OK: {"description": "Successful retrieval from database"},
|
||||||
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
||||||
})
|
})
|
||||||
|
|
@ -43,12 +38,7 @@ async def get_all_services(db: db_dependency, org_model: org_model_root_claim_qu
|
||||||
|
|
||||||
return {"services": permission_models}
|
return {"services": permission_models}
|
||||||
|
|
||||||
|
@router.post("/", status_code=status.HTTP_200_OK, response_model=ServicePostServiceResponse, responses={
|
||||||
@router.post("/",
|
|
||||||
summary="Register a new service.",
|
|
||||||
status_code=status.HTTP_200_OK,
|
|
||||||
response_model=ServicePostServiceResponse,
|
|
||||||
responses={
|
|
||||||
status.HTTP_200_OK: {"description": "Successfully registered a new service"},
|
status.HTTP_200_OK: {"description": "Successfully registered a new service"},
|
||||||
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
||||||
status.HTTP_409_CONFLICT: {"description": "Service with this name already exists"},
|
status.HTTP_409_CONFLICT: {"description": "Service with this name already exists"},
|
||||||
|
|
@ -71,17 +61,11 @@ async def register_service(db: db_dependency, su: super_admin_dependency, reques
|
||||||
db.commit()
|
db.commit()
|
||||||
return {"service": response}
|
return {"service": response}
|
||||||
|
|
||||||
|
@router.patch("/key", status_code=status.HTTP_200_OK, response_model=ServicePatchKeyResponse, responses={
|
||||||
@router.patch("/key",
|
|
||||||
summary="Regenerate service API key.",
|
|
||||||
status_code=status.HTTP_200_OK,
|
|
||||||
response_model=ServicePatchKeyResponse,
|
|
||||||
responses={
|
|
||||||
status.HTTP_200_OK: {"description": "Successful update of API key"},
|
status.HTTP_200_OK: {"description": "Successful update of API key"},
|
||||||
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
||||||
})
|
})
|
||||||
async def regenerate_api_key(db: db_dependency, su: super_admin_dependency,
|
async def regenerate_api_key(db: db_dependency, su: super_admin_dependency, service_model: service_model_body_dependency, request_model: ServicePatchKeyRequest):
|
||||||
service_model: service_model_body_dependency, request_model: ServicePatchKeyRequest):
|
|
||||||
"""
|
"""
|
||||||
Generates and returns a new API key for the service to access the hub.
|
Generates and returns a new API key for the service to access the hub.
|
||||||
"""
|
"""
|
||||||
|
|
@ -93,16 +77,11 @@ async def regenerate_api_key(db: db_dependency, su: super_admin_dependency,
|
||||||
db.commit()
|
db.commit()
|
||||||
return {"service": response}
|
return {"service": response}
|
||||||
|
|
||||||
|
@router.delete("/", status_code=status.HTTP_204_NO_CONTENT, responses={
|
||||||
@router.delete("/",
|
|
||||||
summary="Remove a service.",
|
|
||||||
status_code=status.HTTP_204_NO_CONTENT,
|
|
||||||
responses={
|
|
||||||
status.HTTP_204_NO_CONTENT: {"description": "Successfully removed service from db"},
|
status.HTTP_204_NO_CONTENT: {"description": "Successfully removed service from db"},
|
||||||
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
status.HTTP_401_UNAUTHORIZED: {"description": "Unauthorized"},
|
||||||
})
|
})
|
||||||
async def remove_service(db: db_dependency, service_model: service_model_body_dependency, su: super_admin_dependency,
|
async def remove_service(db: db_dependency, service_model: service_model_body_dependency, su: super_admin_dependency, request_model: ServiceDeleteServiceRequest):
|
||||||
request_model: ServiceDeleteServiceRequest):
|
|
||||||
"""
|
"""
|
||||||
Removes a service from the hub.
|
Removes a service from the hub.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue