debug: add detailed logging with emojis for orders endpoint

Backend (order_handler.go):
- Log URL, method, pagination
- Log requester role and company ID
- Log role query param and filter values
- Log service call results and errors

Frontend (Orders.tsx):
- Styled console logs with colors
- Log tab, endpoint, response data
- Detailed error logging with response data
This commit is contained in:
Tiago Yamamoto 2025-12-26 22:44:34 -03:00
parent aaa304c256
commit 630bcc9da5
2 changed files with 46 additions and 2 deletions

View file

@ -2,6 +2,7 @@ package handler
import (
"errors"
"log"
"net/http"
"github.com/saveinmed/backend-go/internal/domain"
@ -52,32 +53,53 @@ func (h *Handler) CreateOrder(w http.ResponseWriter, r *http.Request) {
// @Success 200 {array} domain.Order
// @Router /api/v1/orders [get]
func (h *Handler) ListOrders(w http.ResponseWriter, r *http.Request) {
log.Printf("📦 [ListOrders] ========== INÍCIO ==========")
log.Printf("📦 [ListOrders] URL: %s", r.URL.String())
log.Printf("📦 [ListOrders] Method: %s", r.Method)
page, pageSize := parsePagination(r)
log.Printf("📦 [ListOrders] Paginação: page=%d, pageSize=%d", page, pageSize)
filter := domain.OrderFilter{}
// Parse role query param for filtering
log.Printf("🔐 [ListOrders] Obtendo requester do contexto...")
requester, err := getRequester(r)
if err != nil {
log.Printf("❌ [ListOrders] ERRO ao obter requester: %v", err)
writeError(w, http.StatusUnauthorized, err)
return
}
log.Printf("✅ [ListOrders] Requester obtido: Role=%s, CompanyID=%v",
requester.Role, requester.CompanyID)
role := r.URL.Query().Get("role")
log.Printf("🎭 [ListOrders] Role query param: '%s'", role)
if role != "" && requester.CompanyID != nil {
log.Printf("🏢 [ListOrders] CompanyID do requester: %s", *requester.CompanyID)
switch role {
case "buyer":
filter.BuyerID = requester.CompanyID
log.Printf("🛒 [ListOrders] Filtro aplicado: BuyerID=%s", *requester.CompanyID)
case "seller":
filter.SellerID = requester.CompanyID
log.Printf("💰 [ListOrders] Filtro aplicado: SellerID=%s", *requester.CompanyID)
}
} else {
log.Printf("⚠️ [ListOrders] Sem filtro de role aplicado. role='%s', CompanyID=%v", role, requester.CompanyID)
}
log.Printf("🔍 [ListOrders] Chamando svc.ListOrders com filter=%+v", filter)
result, err := h.svc.ListOrders(r.Context(), filter, page, pageSize)
if err != nil {
log.Printf("❌ [ListOrders] ERRO no service ListOrders: %v", err)
writeError(w, http.StatusInternalServerError, err)
return
}
log.Printf("✅ [ListOrders] Sucesso! Total de pedidos: %d", result.Total)
log.Printf("📦 [ListOrders] ========== FIM ==========")
writeJSON(w, http.StatusOK, result)
}

View file

@ -41,19 +41,41 @@ export function OrdersPage() {
}, [activeTab])
const loadOrders = async () => {
console.log('%c📦 [Orders] ========== CARREGANDO PEDIDOS ==========', 'color: #3B82F6; font-weight: bold; font-size: 14px')
console.log('%c🔄 [Orders] Tab ativo:', 'color: #10B981; font-weight: bold', activeTab)
try {
setLoading(true)
const endpoint = activeTab === 'compras'
? '/v1/orders?role=buyer'
: '/v1/orders?role=seller'
console.log('%c🌐 [Orders] Endpoint:', 'color: #8B5CF6; font-weight: bold', endpoint)
console.log('%c🔑 [Orders] Chamando apiClient.get...', 'color: #F59E0B')
const response = await apiClient.get<{ orders: Order[]; total: number }>(endpoint)
console.log('%c✅ [Orders] Resposta recebida!', 'color: #10B981; font-weight: bold')
console.log('%c📊 [Orders] Response completa:', 'color: #6366F1', response)
console.log('%c📋 [Orders] Pedidos:', 'color: #6366F1', response?.orders)
console.log('%c🔢 [Orders] Total:', 'color: #6366F1', response?.total)
setOrders(response?.orders || [])
setError(null)
} catch (err) {
console.log('%c✅ [Orders] Estado atualizado com sucesso!', 'color: #10B981; font-weight: bold')
} catch (err: any) {
console.log('%c❌ [Orders] ERRO AO CARREGAR PEDIDOS!', 'color: #EF4444; font-weight: bold; font-size: 16px')
console.log('%c❌ [Orders] Erro completo:', 'color: #EF4444', err)
console.log('%c❌ [Orders] Response do erro:', 'color: #EF4444', err?.response)
console.log('%c❌ [Orders] Status:', 'color: #EF4444', err?.response?.status)
console.log('%c❌ [Orders] Data:', 'color: #EF4444', err?.response?.data)
console.log('%c❌ [Orders] Message:', 'color: #EF4444', err?.message)
setError('Erro ao carregar pedidos')
console.error(err)
} finally {
setLoading(false)
console.log('%c📦 [Orders] ========== FIM ==========', 'color: #3B82F6; font-weight: bold')
}
}