Update routes/support.py
Browse files- routes/support.py +39 -2
routes/support.py
CHANGED
@@ -97,7 +97,7 @@ async def get_user_tickets(user_id: str):
|
|
97 |
@router.get("/ticket/detail")
|
98 |
async def get_ticket_details(ticket_id: int):
|
99 |
async with aiohttp.ClientSession() as session:
|
100 |
-
# 1. Buscar ticket
|
101 |
async with session.get(
|
102 |
f"{SUPABASE_URL}/rest/v1/Tickets?id=eq.{ticket_id}",
|
103 |
headers=SUPABASE_ROLE_HEADERS
|
@@ -121,9 +121,46 @@ async def get_ticket_details(ticket_id: int):
|
|
121 |
|
122 |
messages = await msg_resp.json()
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
return {
|
125 |
"ticket": ticket,
|
126 |
-
"messages":
|
127 |
}
|
128 |
|
129 |
@router.post("/ticket/create")
|
|
|
97 |
@router.get("/ticket/detail")
|
98 |
async def get_ticket_details(ticket_id: int):
|
99 |
async with aiohttp.ClientSession() as session:
|
100 |
+
# 1. Buscar o ticket
|
101 |
async with session.get(
|
102 |
f"{SUPABASE_URL}/rest/v1/Tickets?id=eq.{ticket_id}",
|
103 |
headers=SUPABASE_ROLE_HEADERS
|
|
|
121 |
|
122 |
messages = await msg_resp.json()
|
123 |
|
124 |
+
# 3. Enriquecer as mensagens com dados dos usuários
|
125 |
+
unique_user_ids = list(set(msg["user"] for msg in messages))
|
126 |
+
|
127 |
+
# Buscar dados dos usuários únicos
|
128 |
+
user_data_map = {}
|
129 |
+
for user_id in unique_user_ids:
|
130 |
+
async with session.get(
|
131 |
+
f"{SUPABASE_URL}/rest/v1/User?id=eq.{user_id}",
|
132 |
+
headers=SUPABASE_ROLE_HEADERS
|
133 |
+
) as user_resp:
|
134 |
+
if user_resp.status != 200:
|
135 |
+
continue
|
136 |
+
|
137 |
+
user_data = await user_resp.json()
|
138 |
+
if not user_data:
|
139 |
+
continue
|
140 |
+
|
141 |
+
user_info = user_data[0]
|
142 |
+
user_data_map[user_id] = {
|
143 |
+
"name": user_info.get("name"),
|
144 |
+
"avatar": user_info.get("avatar_url"),
|
145 |
+
"type": user_info.get("type", "cliente") # 'cliente' ou 'suporte'
|
146 |
+
}
|
147 |
+
|
148 |
+
# Substituir campo "user" nas mensagens pelo objeto enriquecido
|
149 |
+
enriched_messages = []
|
150 |
+
for msg in messages:
|
151 |
+
user_info = user_data_map.get(msg["user"], {
|
152 |
+
"name": None,
|
153 |
+
"avatar": None,
|
154 |
+
"type": "desconhecido"
|
155 |
+
})
|
156 |
+
enriched_messages.append({
|
157 |
+
**msg,
|
158 |
+
"user": user_info
|
159 |
+
})
|
160 |
+
|
161 |
return {
|
162 |
"ticket": ticket,
|
163 |
+
"messages": enriched_messages
|
164 |
}
|
165 |
|
166 |
@router.post("/ticket/create")
|