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:
parent
aaa304c256
commit
630bcc9da5
2 changed files with 46 additions and 2 deletions
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue