Skip to content

Commit fb08a61

Browse files
committed
adding dependencies
1 parent 7bb697f commit fb08a61

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

backend/message_listener.py

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@
66
import string
77
import time
88
from datetime import datetime
9-
9+
from app.models.files import (
10+
FileDB,
11+
FileOut,
12+
)
13+
from app.models.users import (
14+
UserOut,
15+
)
16+
from app.routers.feeds import check_feed_listeners
1017
from aio_pika import connect_robust
1118
from aio_pika.abc import AbstractIncomingMessage
1219
from app.main import startup_beanie
@@ -16,6 +23,8 @@
1623
EventListenerJobStatus,
1724
EventListenerJobUpdateDB,
1825
)
26+
import os
27+
from app.config import settings
1928
from beanie import PydanticObjectId
2029

2130
logging.basicConfig(level=logging.INFO)
@@ -24,6 +33,8 @@
2433

2534
timeout = 5 * 60 # five minute timeout
2635
time_ran = 0
36+
from app.dependencies import get_elasticsearchclient, get_rabbitmq
37+
2738

2839

2940
def parse_message_status(msg):
@@ -99,12 +110,27 @@ async def callback(message: AbstractIncomingMessage):
99110

100111
# Convert string IDs back to PydanticObjectId if needed
101112
file_data = msg.get("file_data", {})
113+
user = msg.get("user", {})
102114
if "id" in file_data and isinstance(file_data["id"], str):
103115
file_data["id"] = PydanticObjectId(file_data["id"])
104116

105-
# Now you can create your FileOut object
106-
# file_out = FileOut(**file_data)
107-
# TODO - process file indexed event here
117+
if "id" in file_data and isinstance(file_data["id"], str):
118+
file_data["id"] = PydanticObjectId(file_data["id"])
119+
120+
# Create FileOut object
121+
file_out = FileOut(**file_data)
122+
123+
# Create UserOut object from the user data in the message
124+
user = UserOut(**user_data)
125+
126+
# Now call check_feed_listeners with the injected dependencies
127+
await check_feed_listeners(
128+
es, # Elasticsearch client
129+
file_out,
130+
user,
131+
rabbitmq_client, # RabbitMQ client
132+
)
133+
108134
else:
109135
job_id = msg["job_id"]
110136
message_str = msg["status"]
@@ -180,6 +206,9 @@ async def callback(message: AbstractIncomingMessage):
180206
async def listen_for_messages():
181207
await startup_beanie()
182208

209+
# Initialize dependencies using your existing functions
210+
es = await get_elasticsearchclient()
211+
183212
# For some reason, Pydantic Settings environment variable overrides aren't being applied, so get them here.
184213
RABBITMQ_USER = os.getenv("RABBITMQ_USER", "guest")
185214
RABBITMQ_PASS = os.getenv("RABBITMQ_PASS", "guest")

0 commit comments

Comments
 (0)