Update routes/support.py
Browse files- routes/support.py +22 -6
routes/support.py
CHANGED
|
@@ -61,7 +61,7 @@ class CreateTicketRequest(BaseModel):
|
|
| 61 |
|
| 62 |
def format_datetime(dt_str):
|
| 63 |
dt = parser.isoparse(dt_str)
|
| 64 |
-
return dt.strftime("%m/%d/%Y, %
|
| 65 |
|
| 66 |
@router.get("/ticket/user")
|
| 67 |
async def get_user_tickets(
|
|
@@ -84,7 +84,8 @@ async def get_user_tickets(
|
|
| 84 |
|
| 85 |
for ticket in tickets:
|
| 86 |
ticket_id = ticket["id"]
|
| 87 |
-
ticket_created =
|
|
|
|
| 88 |
|
| 89 |
# Buscar a primeira mensagem (ordem crescente)
|
| 90 |
async with session.get(
|
|
@@ -103,21 +104,36 @@ async def get_user_tickets(
|
|
| 103 |
) as all_msg_resp:
|
| 104 |
all_messages = await all_msg_resp.json() if all_msg_resp.status == 200 else []
|
| 105 |
|
| 106 |
-
history = [f"Ticket created on {ticket_created}"]
|
| 107 |
|
| 108 |
# Verifica se houve resposta do suporte
|
| 109 |
support_reply = next((m for m in all_messages if m["user"] != user_id), None)
|
| 110 |
if support_reply:
|
| 111 |
assigned_time = format_datetime(support_reply["created_at"])
|
| 112 |
-
history.append(f"Assigned to Fernando J. on {assigned_time}")
|
| 113 |
|
| 114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 115 |
if not support_reply and all_messages:
|
| 116 |
last_msg_time = format_datetime(all_messages[-1]["created_at"])
|
| 117 |
history.append(f"Last updated on {last_msg_time}")
|
| 118 |
|
|
|
|
|
|
|
|
|
|
| 119 |
ticket_results.append({
|
| 120 |
-
"ticket":
|
| 121 |
"first_message": first_message,
|
| 122 |
"history": history
|
| 123 |
})
|
|
|
|
| 61 |
|
| 62 |
def format_datetime(dt_str):
|
| 63 |
dt = parser.isoparse(dt_str)
|
| 64 |
+
return dt.strftime("%m/%d/%Y, %I:%M %p") # Hora com AM/PM
|
| 65 |
|
| 66 |
@router.get("/ticket/user")
|
| 67 |
async def get_user_tickets(
|
|
|
|
| 84 |
|
| 85 |
for ticket in tickets:
|
| 86 |
ticket_id = ticket["id"]
|
| 87 |
+
ticket_created = parser.isoparse(ticket["created_at"])
|
| 88 |
+
formatted_ticket_date = ticket_created.strftime("%m/%d/%Y")
|
| 89 |
|
| 90 |
# Buscar a primeira mensagem (ordem crescente)
|
| 91 |
async with session.get(
|
|
|
|
| 104 |
) as all_msg_resp:
|
| 105 |
all_messages = await all_msg_resp.json() if all_msg_resp.status == 200 else []
|
| 106 |
|
| 107 |
+
history = [f"Ticket created on {ticket_created.strftime('%m/%d/%Y, %I:%M %p')}"]
|
| 108 |
|
| 109 |
# Verifica se houve resposta do suporte
|
| 110 |
support_reply = next((m for m in all_messages if m["user"] != user_id), None)
|
| 111 |
if support_reply:
|
| 112 |
assigned_time = format_datetime(support_reply["created_at"])
|
|
|
|
| 113 |
|
| 114 |
+
# Buscar nome do suporte
|
| 115 |
+
async with session.get(
|
| 116 |
+
f"{SUPABASE_URL}/rest/v1/users?id=eq.{support_reply['user']}",
|
| 117 |
+
headers=SUPABASE_ROLE_HEADERS
|
| 118 |
+
) as user_resp:
|
| 119 |
+
support_name = "Support"
|
| 120 |
+
if user_resp.status == 200:
|
| 121 |
+
user_data = await user_resp.json()
|
| 122 |
+
if user_data:
|
| 123 |
+
support_name = user_data[0].get("name", "Support")
|
| 124 |
+
|
| 125 |
+
history.append(f"Assigned to {support_name} on {assigned_time}")
|
| 126 |
+
|
| 127 |
+
# Última atualização (se não teve resposta de suporte)
|
| 128 |
if not support_reply and all_messages:
|
| 129 |
last_msg_time = format_datetime(all_messages[-1]["created_at"])
|
| 130 |
history.append(f"Last updated on {last_msg_time}")
|
| 131 |
|
| 132 |
+
ticket_data = dict(ticket) # cópia do ticket original
|
| 133 |
+
ticket_data["formatted_date"] = formatted_ticket_date
|
| 134 |
+
|
| 135 |
ticket_results.append({
|
| 136 |
+
"ticket": ticket_data,
|
| 137 |
"first_message": first_message,
|
| 138 |
"history": history
|
| 139 |
})
|