38 lines
1.1 KiB
Python
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))
|