Files
FeatureOrientedSkeleton/entry/log_user_messages.py
2026-07-08 23:01:55 +04:00

38 lines
1.1 KiB
Python

import asyncio
from punq import Container
from aio_pika.abc import AbstractIncomingMessage
from pyee import EventEmitter
from shared.application.factory.application import Application as ApplicationFactory
from shared.event.type import Type as EventType
from feature.listen_user_message.listen_user_message import ListenUserMessage
from feature.log_bus_message.log_bus_message import LogBusMessage
from feature.listen_user_message.manager.message import Message as MessageManager
async def main(container: Container, message: AbstractIncomingMessage) -> None:
manager = container.resolve(MessageManager, message=message)
emitter = container.resolve(EventEmitter)
event = EventType.MESSAGE_RECEIVED
try:
received = manager.get_message()
emitter.emit(event, received)
await message.ack()
except Exception:
await message.reject()
if __name__ == "__main__":
factory = ApplicationFactory()
application = factory.create_rabbitmq([
ListenUserMessage,
LogBusMessage
])
asyncio.run(application.launch(main))