Update routes/support.py
Browse files- routes/support.py +43 -39
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
|
101 |
async with session.get(
|
102 |
f"{SUPABASE_URL}/rest/v1/Tickets?id=eq.{ticket_id}",
|
103 |
headers=SUPABASE_ROLE_HEADERS
|
@@ -111,7 +111,7 @@ async def get_ticket_details(ticket_id: int):
|
|
111 |
|
112 |
ticket = ticket_data[0]
|
113 |
|
114 |
-
# 2. Buscar
|
115 |
async with session.get(
|
116 |
f"{SUPABASE_URL}/rest/v1/messages_tickets?ticket_id=eq.{ticket_id}&order=created_at.desc&limit=50",
|
117 |
headers=SUPABASE_ROLE_HEADERS
|
@@ -119,48 +119,52 @@ async def get_ticket_details(ticket_id: int):
|
|
119 |
if msg_resp.status != 200:
|
120 |
raise HTTPException(status_code=500, detail="Erro ao buscar mensagens")
|
121 |
|
122 |
-
|
123 |
-
|
124 |
-
# 3.
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
enriched_messages.append({
|
157 |
**msg,
|
158 |
-
"user":
|
|
|
|
|
|
|
|
|
|
|
159 |
})
|
160 |
|
161 |
return {
|
162 |
"ticket": ticket,
|
163 |
-
"messages":
|
164 |
}
|
165 |
|
166 |
@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 dados do ticket
|
101 |
async with session.get(
|
102 |
f"{SUPABASE_URL}/rest/v1/Tickets?id=eq.{ticket_id}",
|
103 |
headers=SUPABASE_ROLE_HEADERS
|
|
|
111 |
|
112 |
ticket = ticket_data[0]
|
113 |
|
114 |
+
# 2. Buscar as 50 últimas mensagens
|
115 |
async with session.get(
|
116 |
f"{SUPABASE_URL}/rest/v1/messages_tickets?ticket_id=eq.{ticket_id}&order=created_at.desc&limit=50",
|
117 |
headers=SUPABASE_ROLE_HEADERS
|
|
|
119 |
if msg_resp.status != 200:
|
120 |
raise HTTPException(status_code=500, detail="Erro ao buscar mensagens")
|
121 |
|
122 |
+
messages_raw = await msg_resp.json()
|
123 |
+
|
124 |
+
# 3. Buscar info dos usuários das mensagens
|
125 |
+
user_cache = {}
|
126 |
+
|
127 |
+
for msg in messages_raw:
|
128 |
+
user_id = msg["user"]
|
129 |
+
if user_id not in user_cache:
|
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 |
+
user_data = await user_resp.json()
|
136 |
+
if user_data:
|
137 |
+
u = user_data[0]
|
138 |
+
user_cache[user_id] = {
|
139 |
+
"id": u["id"],
|
140 |
+
"name": u.get("name", "Desconhecido"),
|
141 |
+
"avatar": u.get("avatar", None),
|
142 |
+
"type": "support" if u.get("role") == "admin" else "customer"
|
143 |
+
}
|
144 |
+
else:
|
145 |
+
user_cache[user_id] = {
|
146 |
+
"id": user_id,
|
147 |
+
"name": "Desconhecido",
|
148 |
+
"avatar": None,
|
149 |
+
"type": "unknown"
|
150 |
+
}
|
151 |
+
|
152 |
+
# 4. Substituir o campo user nas mensagens
|
153 |
+
messages = []
|
154 |
+
for msg in messages_raw:
|
155 |
+
messages.append({
|
|
|
156 |
**msg,
|
157 |
+
"user": user_cache.get(msg["user"], {
|
158 |
+
"id": msg["user"],
|
159 |
+
"name": "Desconhecido",
|
160 |
+
"avatar": None,
|
161 |
+
"type": "unknown"
|
162 |
+
})
|
163 |
})
|
164 |
|
165 |
return {
|
166 |
"ticket": ticket,
|
167 |
+
"messages": messages
|
168 |
}
|
169 |
|
170 |
@router.post("/ticket/create")
|