diff --git a/backend/igny8_core/modules/system/integration_views.py b/backend/igny8_core/modules/system/integration_views.py index e7b4969a..658e82c6 100644 --- a/backend/igny8_core/modules/system/integration_views.py +++ b/backend/igny8_core/modules/system/integration_views.py @@ -791,8 +791,13 @@ class IntegrationSettingsViewSet(viewsets.ViewSet): integration_type=integration_type, account=account ) + response_data = { + 'id': integration_settings.integration_type, + 'enabled': integration_settings.is_active, + **integration_settings.config + } return success_response( - data=integration_settings.config, + data=response_data, request=request ) except IntegrationSettings.DoesNotExist: diff --git a/frontend/src/pages/Settings/Integration.tsx b/frontend/src/pages/Settings/Integration.tsx index dfa5e813..7500c0d1 100644 --- a/frontend/src/pages/Settings/Integration.tsx +++ b/frontend/src/pages/Settings/Integration.tsx @@ -162,21 +162,12 @@ export default function Integration() { }; } - const response = await fetch( - `${API_BASE_URL}/v1/system/settings/integrations/${integrationId}/test/`, - { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - credentials: 'include', - body: JSON.stringify(requestBody), - } - ); + const data = await fetchAPI(`/v1/system/settings/integrations/${integrationId}/test/`, { + method: 'POST', + body: JSON.stringify(requestBody), + }); - const data = await response.json(); - - if (response.ok && data.success) { + if (data.success) { // Validation successful setValidationStatuses(prev => ({ ...prev, @@ -248,20 +239,13 @@ export default function Integration() { const loadIntegrationSettings = async () => { try { - const API_BASE_URL = import.meta.env.VITE_BACKEND_URL || 'https://api.igny8.com/api'; const integrationIds = ['openai', 'runware', 'image_generation']; const promises = integrationIds.map(async (id) => { try { - const response = await fetch( - `${API_BASE_URL}/v1/system/settings/integrations/${id}/`, - { credentials: 'include' } - ); - if (response.ok) { - const data = await response.json(); - if (data.success && data.data) { - return { id, config: data.data }; - } + const data = await fetchAPI(`/v1/system/settings/integrations/${id}/`); + if (data.success && data.data) { + return { id, config: data.data }; } return { id, config: null }; } catch (error) { @@ -414,40 +398,11 @@ export default function Integration() { }; } - const API_BASE_URL = import.meta.env.VITE_BACKEND_URL || 'https://api.igny8.com/api'; - const endpoint = `${API_BASE_URL}/v1/system/settings/integrations/${selectedIntegration}/save/`; - - const response = await fetch(endpoint, { + const data = await fetchAPI(`/v1/system/settings/integrations/${selectedIntegration}/save/`, { method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - credentials: 'include', body: JSON.stringify(configToSave), }); - // Check if response is HTML (error page) - const contentType = response.headers.get('content-type') || ''; - if (!contentType.includes('application/json')) { - const text = await response.text(); - if (text.trim().startsWith('