From f938fdb95d28e142efde89fd14cc9d7175b44953 Mon Sep 17 00:00:00 2001 From: michaelschal <35957947-michaelschal@users.noreply.replit.com> Date: Wed, 3 Sep 2025 13:15:50 +0000 Subject: [PATCH] Add configuration interface for enterprise task webhook Implement a new UI component and backend routes for configuring and testing enterprise task webhooks, including database schema and migration scripts. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cfbfe47c-0c9a-4ebf-8a41-2937407eccff Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/cfbfe47c-0c9a-4ebf-8a41-2937407eccff/vzUkIk6 --- .replit | 2 +- ...-4C7A-A17D-CA1CF9DBA375}_1756904852244.png | Bin 0 -> 74748 bytes client/src/pages/Utilities.tsx | 23 +- client/src/pages/WebhookBAPConfig.tsx | 289 ++++++++++++++++++ init.sql | 23 +- scripts/create-webhook-bap-table.sql | 24 ++ server/routes.ts | 143 ++++++++- server/storage.ts | 63 ++++ shared/schema.ts | 22 ++ 9 files changed, 582 insertions(+), 7 deletions(-) create mode 100644 attached_assets/{E841CD9A-C6E4-4C7A-A17D-CA1CF9DBA375}_1756904852244.png create mode 100644 client/src/pages/WebhookBAPConfig.tsx create mode 100644 scripts/create-webhook-bap-table.sql diff --git a/.replit b/.replit index baa3edd..2e1a3ae 100644 --- a/.replit +++ b/.replit @@ -37,4 +37,4 @@ args = "npm run dev" waitForPort = 5000 [agent] -integrations = ["javascript_object_storage==1.0.0", "javascript_log_in_with_replit==1.0.0", "javascript_database==1.0.0"] +integrations = ["javascript_object_storage==1.0.0", "javascript_database==1.0.0", "javascript_log_in_with_replit==1.0.0"] diff --git a/attached_assets/{E841CD9A-C6E4-4C7A-A17D-CA1CF9DBA375}_1756904852244.png b/attached_assets/{E841CD9A-C6E4-4C7A-A17D-CA1CF9DBA375}_1756904852244.png new file mode 100644 index 0000000000000000000000000000000000000000..501edd40c34d6068d80d19ffc693ca3c7be9ce04 GIT binary patch literal 74748 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 z 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 literal 0 HcmV?d00001 diff --git a/client/src/pages/Utilities.tsx b/client/src/pages/Utilities.tsx index f46a5c6..d2c0a62 100644 --- a/client/src/pages/Utilities.tsx +++ b/client/src/pages/Utilities.tsx @@ -6,7 +6,8 @@ import { Database, Server, Bug, - Cloud + Cloud, + Send } from "lucide-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; @@ -17,6 +18,7 @@ import BackupManager from "./BackupManager"; import NocoDBConfig from "./NocoDBConfig"; import DatabaseDebug from "./DatabaseDebug"; import WeatherSettings from "./WeatherSettings"; +import WebhookBAPConfig from "./WebhookBAPConfig"; export default function Utilities() { const { user } = useAuthUnified(); @@ -35,9 +37,10 @@ export default function Utilities() { const canManageNocoDB = user?.role === 'admin'; const canDebugDatabase = user?.role === 'admin'; const canManageWeather = user?.role === 'admin'; + const canManageWebhookBAP = user?.role === 'admin'; // Si l'utilisateur n'a aucune permission, afficher le message d'accès refusé - if (!canManageBackups && !canManageNocoDB && !canDebugDatabase && !canManageWeather) { + if (!canManageBackups && !canManageNocoDB && !canDebugDatabase && !canManageWeather && !canManageWebhookBAP) { return (
@@ -73,7 +76,7 @@ export default function Utilities() { {/* Content avec onglets */}
- + {canManageBackups && ( @@ -98,6 +101,12 @@ export default function Utilities() { Météo )} + {canManageWebhookBAP && ( + + + Configuration BAP + + )} {/* Contenu des onglets */} @@ -132,6 +141,14 @@ export default function Utilities() {
)} + + {canManageWebhookBAP && ( + +
+ +
+
+ )}
diff --git a/client/src/pages/WebhookBAPConfig.tsx b/client/src/pages/WebhookBAPConfig.tsx new file mode 100644 index 0000000..e58ca96 --- /dev/null +++ b/client/src/pages/WebhookBAPConfig.tsx @@ -0,0 +1,289 @@ +import { useState, useEffect } from "react"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { Switch } from "@/components/ui/switch"; +import { Textarea } from "@/components/ui/textarea"; +import { useToast } from "@/hooks/use-toast"; +import { Send, Globe, AlertCircle, CheckCircle2, Copy } from "lucide-react"; +import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; +import { apiRequest } from "@/lib/queryClient"; + +interface WebhookBapConfig { + id: number; + name: string; + webhookUrl: string; + description: string | null; + isActive: boolean; + createdAt: string; + updatedAt: string; +} + +export default function WebhookBAPConfig() { + const { toast } = useToast(); + const queryClient = useQueryClient(); + const [formData, setFormData] = useState({ + name: "Configuration BAP", + webhookUrl: "", + description: "", + isActive: true + }); + + const { data: config, isLoading } = useQuery({ + queryKey: ['/api/webhook-bap-config'], + }); + + const testMutation = useMutation({ + mutationFn: async () => { + if (!formData.webhookUrl) { + throw new Error("URL webhook requise pour le test"); + } + + const response = await fetch('/api/webhook-bap-config/test', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ webhookUrl: formData.webhookUrl }), + credentials: 'include' + }); + + if (!response.ok) { + const error = await response.json(); + throw new Error(error.error || 'Erreur lors du test'); + } + + return response.json(); + }, + onSuccess: () => { + toast({ + title: "Test réussi", + description: "Le webhook BAP répond correctement", + }); + }, + onError: (error: any) => { + toast({ + title: "Échec du test", + description: error.message, + variant: "destructive", + }); + }, + }); + + const saveMutation = useMutation({ + mutationFn: async (data: typeof formData) => { + return apiRequest('/api/webhook-bap-config', 'POST', data); + }, + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ['/api/webhook-bap-config'] }); + toast({ + title: "Configuration sauvegardée", + description: "La configuration du webhook BAP a été mise à jour", + }); + }, + onError: (error: any) => { + toast({ + title: "Erreur de sauvegarde", + description: error.message, + variant: "destructive", + }); + }, + }); + + useEffect(() => { + if (config) { + // Gérer à la fois les cas où l'API retourne un objet ou un array + const configData = Array.isArray(config) && config.length > 0 ? config[0] : config; + if (configData && typeof configData === 'object') { + setFormData({ + name: configData.name || "Configuration BAP", + webhookUrl: configData.webhookUrl || "", + description: configData.description || "", + isActive: configData.isActive ?? true + }); + } + } + }, [config]); + + const handleSave = () => { + if (!formData.webhookUrl.trim()) { + toast({ + title: "Erreur", + description: "L'URL du webhook est requise", + variant: "destructive", + }); + return; + } + + if (!formData.webhookUrl.startsWith('http')) { + toast({ + title: "Erreur", + description: "L'URL doit commencer par http:// ou https://", + variant: "destructive", + }); + return; + } + + saveMutation.mutate(formData); + }; + + const handleTest = () => { + if (!formData.webhookUrl.trim()) { + toast({ + title: "Erreur", + description: "L'URL du webhook est requise pour effectuer le test", + variant: "destructive", + }); + return; + } + testMutation.mutate(); + }; + + const copyUrl = () => { + navigator.clipboard.writeText(formData.webhookUrl); + toast({ + title: "URL copiée", + description: "L'URL a été copiée dans le presse-papiers", + }); + }; + + if (isLoading) { + return ( +
+
Chargement de la configuration...
+
+ ); + } + + return ( +
+ + + + + Configuration Webhook BAP + + + Configurez l'URL du webhook n8n pour l'envoi des fichiers BAP vers Prissela et Célia + + + +
+ + setFormData({ ...formData, name: e.target.value })} + placeholder="Configuration BAP" + /> +
+ +
+ +
+ setFormData({ ...formData, webhookUrl: e.target.value })} + placeholder="https://workflow.ffnancy.fr/webhook/..." + className="flex-1" + /> + +
+

+ URL complète du webhook n8n qui recevra les fichiers PDF BAP +

+
+ +
+ +