mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-14 02:38:58 +02:00
Reduce production latency by conditionally logging API requests and responses
Conditionally disable verbose logging in production to resolve latency issues caused by excessive console output in API requests and responses. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7c468936-2a88-4686-ac0a-84921a45222d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/7c468936-2a88-4686-ac0a-84921a45222d/B7k6m01
This commit is contained in:
1 parent
947896c212
commit
da2af1e29d
6 files changed
+57
-26
No files matched your search
@@ -13,7 +13,10 @@ export async function apiRequest(
|
||||
body?: unknown,
|
||||
headers: Record<string, string> = {}
|
||||
): Promise<any> {
|
||||
console.log("🌐 API Request:", { url, method, body });
|
||||
// Logging désactivé en production pour éviter la latence
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("🌐 API Request:", { url, method });
|
||||
}
|
||||
|
||||
const res = await fetch(url, {
|
||||
method,
|
||||
@@ -25,7 +28,10 @@ export async function apiRequest(
|
||||
credentials: "include",
|
||||
});
|
||||
|
||||
console.log("🌐 API Response:", { status: res.status, ok: res.ok });
|
||||
// Logging des erreurs uniquement en production
|
||||
if (!res.ok || import.meta.env.DEV) {
|
||||
console.log("🌐 API Response:", { status: res.status, ok: res.ok, url });
|
||||
}
|
||||
|
||||
await throwIfResNotOk(res);
|
||||
|
||||
|
||||
@@ -206,10 +206,10 @@ export default function BLReconciliation() {
|
||||
|
||||
const deliveries = await response.json();
|
||||
|
||||
// Debug : examiner les données des groupes en production
|
||||
console.log('🔍 DEBUG Production - Première livraison:', deliveries[0]);
|
||||
console.log('🔍 DEBUG Production - Groupe de la première livraison:', deliveries[0]?.group);
|
||||
console.log('🔍 DEBUG Production - Champs disponibles dans group:', deliveries[0]?.group ? Object.keys(deliveries[0].group) : 'Pas de groupe');
|
||||
// Debug désactivé en production pour éviter latence
|
||||
if (import.meta.env.DEV && deliveries[0]) {
|
||||
console.log('🔍 DEBUG - Première livraison:', deliveries[0]);
|
||||
}
|
||||
const filtered = Array.isArray(deliveries) ? deliveries.filter((d: any) => d.status === 'delivered') : [];
|
||||
|
||||
return filtered.sort((a: any, b: any) => new Date(b.deliveredDate || b.updatedAt).getTime() - new Date(a.deliveredDate || a.updatedAt).getTime());
|
||||
@@ -222,12 +222,16 @@ export default function BLReconciliation() {
|
||||
useEffect(() => {
|
||||
if (!deliveriesWithBL.length || !suppliers.length) return;
|
||||
|
||||
console.log('🔄 Déclenchement vérifications automatiques...');
|
||||
if (import.meta.env.DEV) {
|
||||
console.log('🔄 Déclenchement vérifications automatiques...');
|
||||
}
|
||||
|
||||
deliveriesWithBL.forEach((delivery: any) => {
|
||||
// Vérifier seulement si on a une référence de facture et pas déjà de résultat
|
||||
if (delivery.invoiceReference && !verificationResults[delivery.id] && !verifyingDeliveries.has(delivery.id)) {
|
||||
console.log(`🔍 Vérification auto pour livraison ${delivery.id}:`, delivery.invoiceReference);
|
||||
if (import.meta.env.DEV) {
|
||||
console.log(`🔍 Vérification auto pour livraison ${delivery.id}:`, delivery.invoiceReference);
|
||||
}
|
||||
|
||||
// Délai pour éviter de surcharger le serveur - le cache évitera les appels inutiles
|
||||
setTimeout(() => {
|
||||
@@ -373,14 +377,12 @@ export default function BLReconciliation() {
|
||||
// Et il faut qu'il y ait un magasin assigné avec un webhook
|
||||
const hasValidGroup = delivery.group && delivery.group.webhookUrl;
|
||||
|
||||
// Debug temporaire pour diagnostiquer le problème
|
||||
if (delivery && delivery.supplier?.name) {
|
||||
// Debug uniquement en développement
|
||||
if (import.meta.env.DEV && delivery && delivery.supplier?.name) {
|
||||
console.log(`🔍 Debug bouton facture pour ${delivery.supplier.name}:`, {
|
||||
isNotValidated,
|
||||
hasNoInvoiceReference,
|
||||
hasValidGroup,
|
||||
group: delivery.group,
|
||||
webhookUrl: delivery.group?.webhookUrl,
|
||||
shouldShow: (isNotValidated || hasNoInvoiceReference) && hasValidGroup
|
||||
});
|
||||
}
|
||||
|
||||
@@ -73,21 +73,25 @@ export default function DlcPage() {
|
||||
if (statusFilter && statusFilter !== "all") params.append("status", statusFilter);
|
||||
if (supplierFilter && supplierFilter !== "all") params.append("supplierId", supplierFilter);
|
||||
|
||||
console.log("🔍 Requête DLC products:", {
|
||||
url: `/api/dlc-products?${params.toString()}`,
|
||||
user: user?.role,
|
||||
selectedStoreId,
|
||||
userGroups: user?.userGroups?.map(ug => ({ groupId: ug.groupId, groupName: ug.group?.name }))
|
||||
});
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("🔍 Requête DLC products:", {
|
||||
url: `/api/dlc-products?${params.toString()}`,
|
||||
user: user?.role,
|
||||
selectedStoreId,
|
||||
userGroups: user?.userGroups?.map(ug => ({ groupId: ug.groupId, groupName: ug.group?.name }))
|
||||
});
|
||||
}
|
||||
|
||||
return apiRequest(`/api/dlc-products?${params.toString()}`);
|
||||
},
|
||||
enabled: !authLoading,
|
||||
onSuccess: (data) => {
|
||||
console.log("📋 DLC products reçus:", {
|
||||
total: data.length,
|
||||
sample: data.slice(0, 3).map(d => ({ id: d.id, productName: d.productName, groupId: d.groupId }))
|
||||
});
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("📋 DLC products reçus:", {
|
||||
total: data.length,
|
||||
sample: data.slice(0, 3).map(d => ({ id: d.id, productName: d.productName, groupId: d.groupId }))
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -121,7 +125,9 @@ export default function DlcPage() {
|
||||
// Invalidate all DLC queries with any combination of parameters
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products"], exact: false });
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products/stats"], exact: false });
|
||||
console.log("🔄 Cache DLC invalidé après création");
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("🔄 Cache DLC invalidé après création");
|
||||
}
|
||||
toast({ title: "Produit DLC créé avec succès" });
|
||||
setIsDialogOpen(false);
|
||||
form.reset();
|
||||
@@ -143,7 +149,9 @@ export default function DlcPage() {
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products"], exact: false });
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products/stats"], exact: false });
|
||||
console.log("🔄 Cache DLC invalidé après mise à jour");
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("🔄 Cache DLC invalidé après mise à jour");
|
||||
}
|
||||
toast({ title: "Produit DLC mis à jour avec succès" });
|
||||
setIsDialogOpen(false);
|
||||
form.reset();
|
||||
@@ -164,7 +172,9 @@ export default function DlcPage() {
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products"], exact: false });
|
||||
queryClient.invalidateQueries({ queryKey: ["/api/dlc-products/stats"], exact: false });
|
||||
console.log("🔄 Cache DLC invalidé après validation");
|
||||
if (import.meta.env.DEV) {
|
||||
console.log("🔄 Cache DLC invalidé après validation");
|
||||
}
|
||||
toast({ title: "Produit validé avec succès" });
|
||||
},
|
||||
onError: (error: any) => {
|
||||
|
||||
Reference in new issue
Block a user