generated from Luis/nextjs-python-web-template
readmes added comments and some links to the openapi docs mds :)
This commit is contained in:
1
pkgs/clan-cli/clan_cli/webui/routers/README.md
Normal file
1
pkgs/clan-cli/clan_cli/webui/routers/README.md
Normal file
@@ -0,0 +1 @@
|
||||
In the <endpoints.py> are the api endpoints implemented which could be used of the user/s.
|
||||
@@ -27,11 +27,21 @@ router = APIRouter()
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
# API Endpoints for all tables
|
||||
# see the default api documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/DefaultApi.md
|
||||
|
||||
|
||||
#########################
|
||||
# #
|
||||
# Service #
|
||||
# #
|
||||
#########################
|
||||
# see the corresponding documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/Service.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/ServiceCreate.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/ServiceUsageCreate.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/ServicesApi.md
|
||||
@router.post("/api/v1/service", response_model=Service, tags=[Tags.services])
|
||||
def create_service(
|
||||
service: ServiceCreate, db: Session = Depends(sql_db.get_db)
|
||||
@@ -134,6 +144,10 @@ def delete_service(
|
||||
# Entity #
|
||||
# #
|
||||
#########################
|
||||
# see the corresponding documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/Entity.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/EntityCreate.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/EntitiesApi.md
|
||||
@router.post("/api/v1/entity", response_model=Entity, tags=[Tags.entities])
|
||||
def create_entity(
|
||||
entity: EntityCreate, db: Session = Depends(sql_db.get_db)
|
||||
@@ -298,6 +312,9 @@ def get_rpc_by_role(db: Session, role: Role, path: str) -> Any:
|
||||
# Resolution #
|
||||
# #
|
||||
#########################
|
||||
# see the corresponding documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/Resolution.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/ResolutionApi.md
|
||||
@router.get(
|
||||
"/api/v1/resolutions", response_model=List[Resolution], tags=[Tags.resolutions]
|
||||
)
|
||||
@@ -312,6 +329,8 @@ def get_all_resolutions(
|
||||
# Repository #
|
||||
# #
|
||||
#########################
|
||||
# see the corresponding documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/RepositoriesApi.md
|
||||
@router.get(
|
||||
"/api/v1/repositories", tags=[Tags.repositories], response_model=List[Service]
|
||||
)
|
||||
@@ -326,6 +345,10 @@ def get_all_repositories(
|
||||
# Eventmessage #
|
||||
# #
|
||||
#########################
|
||||
# see the corresponding documentation under:
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/Eventmessage.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/EventmessageCreate.md
|
||||
### pkgs/clan-cli/tests/openapi_client/docs/EventmessageApi.md
|
||||
@router.post(
|
||||
"/api/v1/event_message", response_model=Eventmessage, tags=[Tags.eventmessages]
|
||||
)
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
# Requires: `starlette`, `uvicorn`, `jinja2`
|
||||
# Run with `uvicorn example:app`
|
||||
import logging
|
||||
import os
|
||||
|
||||
import anyio
|
||||
from broadcaster import Broadcast
|
||||
from fastapi import APIRouter, WebSocket
|
||||
from fastapi.responses import HTMLResponse
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
brd = Broadcast("memory://")
|
||||
|
||||
|
||||
@router.get("/ws2_example")
|
||||
async def get() -> HTMLResponse:
|
||||
html = open(f"{os.getcwd()}/webui/routers/messenger.html").read()
|
||||
return HTMLResponse(html)
|
||||
|
||||
|
||||
@router.websocket("/ws2")
|
||||
async def chatroom_ws(websocket: WebSocket) -> None:
|
||||
await websocket.accept()
|
||||
|
||||
async with anyio.create_task_group() as task_group:
|
||||
# run until first is complete
|
||||
async def run_chatroom_ws_receiver() -> None:
|
||||
await chatroom_ws_receiver(websocket=websocket)
|
||||
task_group.cancel_scope.cancel()
|
||||
|
||||
task_group.start_soon(run_chatroom_ws_receiver)
|
||||
log.warning("Started chatroom_ws_sender")
|
||||
|
||||
await chatroom_ws_sender(websocket)
|
||||
|
||||
|
||||
async def chatroom_ws_receiver(websocket: WebSocket) -> None:
|
||||
async for message in websocket.iter_text():
|
||||
log.warning(f"Received message: {message}")
|
||||
await brd.publish(channel="chatroom", message=message)
|
||||
|
||||
|
||||
async def chatroom_ws_sender(websocket: WebSocket) -> None:
|
||||
async with brd.subscribe(channel="chatroom") as subscriber:
|
||||
if subscriber is None:
|
||||
log.error("Subscriber is None")
|
||||
return
|
||||
async for event in subscriber: # type: ignore
|
||||
await websocket.send_text(event.message)
|
||||
Reference in New Issue
Block a user