Restructure to activeclient so it always has DiscordId object for active token (if active)
All checks were successful
release-image / release-image (push) Successful in 2m8s
All checks were successful
release-image / release-image (push) Successful in 2m8s
This commit is contained in:
@@ -191,22 +191,22 @@ class ActiveClient:
|
|||||||
"""
|
"""
|
||||||
client_id: str = None
|
client_id: str = None
|
||||||
websocket = None
|
websocket = None
|
||||||
active_token: str = None
|
active_token: DiscordId = None
|
||||||
nickname: str = None
|
nickname: str = None
|
||||||
access_token: str = None
|
access_token: str = None
|
||||||
|
|
||||||
def __init__(self, client_id: str=None, websocket=None, active_token: str = None, nickname: str = None, access_token: str = None):
|
def __init__(self, client_id: str=None, websocket=None, active_token: DiscordId = None, nickname: str = None, access_token: str = None):
|
||||||
self.client_id = client_id
|
self.client_id = client_id
|
||||||
self.active_token = active_token
|
self.active_token = active_token
|
||||||
self.websocket = websocket
|
self.websocket = websocket
|
||||||
self.nickname = nickname
|
self.nickname = nickname
|
||||||
self.access_token = access_token
|
self.access_token = access_token
|
||||||
|
|
||||||
def json(self):
|
def to_dict(self):
|
||||||
return {
|
return {
|
||||||
"client_id": self.client_id,
|
"client_id": self.client_id,
|
||||||
"nickname": self.nickname,
|
"nickname": self.nickname,
|
||||||
"active_token": self.active_token
|
"active_token": self.active_token.to_dict()
|
||||||
}
|
}
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ async def send_command_to_all_clients(command_name, *args):
|
|||||||
@role_required(UserRoles.USER)
|
@role_required(UserRoles.USER)
|
||||||
async def get_nodes():
|
async def get_nodes():
|
||||||
"""API endpoint to list currently connected client IDs."""
|
"""API endpoint to list currently connected client IDs."""
|
||||||
return jsonify([current_app.active_clients[client_id].json() for client_id in current_app.active_clients])
|
return jsonify([current_app.active_clients[client_id].to_dict() for client_id in current_app.active_clients])
|
||||||
|
|
||||||
|
|
||||||
@nodes_bp.route("/online", methods=['GET'])
|
@nodes_bp.route("/online", methods=['GET'])
|
||||||
|
|||||||
@@ -43,6 +43,11 @@ async def websocket_server_handler(websocket):
|
|||||||
client_id = handshake_data["id"]
|
client_id = handshake_data["id"]
|
||||||
client_nickname = handshake_data.get("nickname")
|
client_nickname = handshake_data.get("nickname")
|
||||||
client_active_token = handshake_data.get("active_token")
|
client_active_token = handshake_data.get("active_token")
|
||||||
|
# Get the DiscordId for the passed token
|
||||||
|
if client_active_token:
|
||||||
|
active_discord_id = await app.d_id_db_h.find_discord_id({"token":client_active_token})
|
||||||
|
if active_discord_id:
|
||||||
|
client_active_token = active_discord_id
|
||||||
await register_client(websocket, client_id, client_nickname, client_active_token)
|
await register_client(websocket, client_id, client_nickname, client_active_token)
|
||||||
if not app.active_clients[client_id].access_token:
|
if not app.active_clients[client_id].access_token:
|
||||||
abort(500, "Error retrieving access token")
|
abort(500, "Error retrieving access token")
|
||||||
|
|||||||
Reference in New Issue
Block a user