2022-12-06 08:44:29 +00:00
|
|
|
from sse_starlette.sse import EventSourceResponse
|
2022-12-06 11:58:52 +00:00
|
|
|
from starlette.requests import Request
|
|
|
|
from resolvers.inbox.messages import messages_generator_by_user
|
|
|
|
from base.exceptions import Unauthorized
|
2022-12-06 08:44:29 +00:00
|
|
|
|
|
|
|
|
2022-12-06 11:58:52 +00:00
|
|
|
async def sse_messages(request: Request):
|
|
|
|
print(f'[SSE] {request.scope}')
|
2022-12-06 08:44:29 +00:00
|
|
|
# https://github.com/enisdenjo/graphql-sse/blob/master/PROTOCOL.md
|
2022-12-06 11:58:52 +00:00
|
|
|
if request['user']:
|
|
|
|
return EventSourceResponse(messages_generator_by_user(request['user'].user_id))
|
|
|
|
else:
|
|
|
|
raise Unauthorized("Please login")
|