Removed id, using param instead

This commit is contained in:
benarc 2022-12-01 14:41:57 +00:00
parent 4aeb7683e5
commit a220acb583
3 changed files with 20 additions and 12 deletions

View File

@ -388,9 +388,9 @@ class WebsocketConnectionManager:
def __init__(self): def __init__(self):
self.active_connections: List[WebSocket] = [] self.active_connections: List[WebSocket] = []
async def connect(self, websocket: WebSocket, item_id: str): async def connect(self, websocket: WebSocket):
await websocket.accept() await websocket.accept()
websocket.id = item_id logger.debug(websocket)
self.active_connections.append(websocket) self.active_connections.append(websocket)
def disconnect(self, websocket: WebSocket): def disconnect(self, websocket: WebSocket):
@ -398,7 +398,7 @@ class WebsocketConnectionManager:
async def send_data(self, message: str, item_id: str): async def send_data(self, message: str, item_id: str):
for connection in self.active_connections: for connection in self.active_connections:
if connection.id == item_id: if connection.path_params["item_id"] == item_id:
await connection.send_text(message) await connection.send_text(message)

View File

@ -9,9 +9,18 @@ from io import BytesIO
from typing import Dict, List, Optional, Tuple, Union from typing import Dict, List, Optional, Tuple, Union
from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse
import async_timeout
import httpx import httpx
import pyqrcode import pyqrcode
from fastapi import Depends, Header, Query, Response, Request, WebSocket, WebSocketDisconnect from fastapi import (
Depends,
Header,
Query,
Request,
Response,
WebSocket,
WebSocketDisconnect,
)
from fastapi.exceptions import HTTPException from fastapi.exceptions import HTTPException
from fastapi.params import Body from fastapi.params import Body
from loguru import logger from loguru import logger
@ -20,7 +29,6 @@ from pydantic.fields import Field
from sse_starlette.sse import EventSourceResponse, ServerSentEvent from sse_starlette.sse import EventSourceResponse, ServerSentEvent
from starlette.responses import HTMLResponse, StreamingResponse from starlette.responses import HTMLResponse, StreamingResponse
import async_timeout
from lnbits import bolt11, lnurl from lnbits import bolt11, lnurl
from lnbits.core.models import Payment, Wallet from lnbits.core.models import Payment, Wallet
from lnbits.decorators import ( from lnbits.decorators import (
@ -706,7 +714,7 @@ async def api_auditor(wallet: WalletTypeInfo = Depends(get_key_type)):
@core_app.websocket("/api/v1/ws/{item_id}") @core_app.websocket("/api/v1/ws/{item_id}")
async def websocket_connect(websocket: WebSocket, item_id: str): async def websocket_connect(websocket: WebSocket, item_id: str):
await websocketManager.connect(websocket, item_id) await websocketManager.connect(websocket)
try: try:
while True: while True:
data = await websocket.receive_text() data = await websocket.receive_text()