From b8d4e96629e6cfbdfbeee3e335c193884152ee3d Mon Sep 17 00:00:00 2001 From: donpat1to Date: Thu, 9 Oct 2025 01:16:32 +0200 Subject: [PATCH] fixed parsing admin setup --- frontend/src/pages/Setup/Setup.tsx | 43 ++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/frontend/src/pages/Setup/Setup.tsx b/frontend/src/pages/Setup/Setup.tsx index 960f964..e2f246b 100644 --- a/frontend/src/pages/Setup/Setup.tsx +++ b/frontend/src/pages/Setup/Setup.tsx @@ -62,19 +62,24 @@ const Setup: React.FC = () => { const handleSubmit = async () => { try { setLoading(true); - const adminEmail = 'admin@instandhaltung.de'; - const response = await fetch('/api/setup/admin', { + setError(''); + + // Create the request payload + const payload = { + password: formData.password, + name: formData.name, + ...(formData.phone ? { phone: formData.phone } : {}), + ...(formData.department ? { department: formData.department } : {}) + }; + + console.log('Sending setup request with payload:', payload); + + const response = await fetch('http://localhost:3002/api/setup/admin', { method: 'POST', headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ - email: adminEmail, - password: formData.password, - name: formData.name, - phone: formData.phone || undefined, - department: formData.department || undefined - }), + body: JSON.stringify(payload), }); if (!response.ok) { @@ -82,15 +87,31 @@ const Setup: React.FC = () => { throw new Error(data.error || 'Setup fehlgeschlagen'); } + // Check response format + const contentType = response.headers.get('content-type'); + if (!contentType || !contentType.includes('application/json')) { + const text = await response.text(); + console.error('Non-JSON response:', text); + throw new Error('Server returned non-JSON response'); + } + + const result = await response.json(); + console.log('Setup response:', result); + // Re-check setup status after successful setup await checkSetupStatus(); // Automatically log in after setup - await login({ email: adminEmail, password: formData.password }); + await login({ + email: 'admin@instandhaltung.de', + password: formData.password + }); + navigate('/'); } catch (err: any) { - setError(err.message); + console.error('Setup error:', err); + setError(typeof err === 'string' ? err : err.message || 'Ein unerwarteter Fehler ist aufgetreten'); } finally { setLoading(false); }