Fixed user logout #28
Some checks failed
Test API before pr merge / test-lint (pull_request) Failing after 12s
Test before pr merge / test-translation-lint (pull_request) Successful in 43s
Test before pr merge / test-lint (pull_request) Failing after 46s
Test before pr merge / test-before-merge (pull_request) Failing after 1m48s

This commit is contained in:
Sven Heidemann 2025-05-02 03:25:58 +02:00
parent 27c908e1ed
commit 20dee26991

View File

@ -1,3 +1,7 @@
from typing import AsyncGenerator
from api.broadcast import broadcast
from api.route import Route
from api_graphql.abc.subscription_abc import SubscriptionABC
from api_graphql.field.subscription_field_builder import SubscriptionFieldBuilder
from api_graphql.require_any_resolvers import has_assigned_user_spaces
@ -50,9 +54,16 @@ class Subscription(SubscriptionABC):
.with_public(True)
)
async def _user_logout_generator(*args, **kwargs) -> AsyncGenerator[str, None]:
async with broadcast.subscribe(channel="userLogout") as subscriber:
async for message in subscriber:
if message.message == (await Route.get_user()).id:
yield message
self.subscribe(
SubscriptionFieldBuilder("userLogout")
.with_resolver(lambda message, *_: message.message)
.with_generator(_user_logout_generator)
.with_public(True)
)