fix
This commit is contained in:
@@ -16,6 +16,9 @@ from igny8_core.business.integration.services.integration_service import Integra
|
||||
from igny8_core.business.integration.services.sync_service import SyncService
|
||||
from igny8_core.business.integration.services.sync_health_service import SyncHealthService
|
||||
from igny8_core.business.integration.services.content_sync_service import ContentSyncService
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class IntegrationViewSet(SiteSectorModelViewSet):
|
||||
@@ -186,15 +189,21 @@ class IntegrationViewSet(SiteSectorModelViewSet):
|
||||
# Try to find an existing integration for this site+platform
|
||||
integration = SiteIntegration.objects.filter(site=site, platform='wordpress').first()
|
||||
|
||||
# If not found, create a temporary in-memory integration object
|
||||
# If not found, create and save the integration to database
|
||||
integration_created = False
|
||||
if not integration:
|
||||
integration = SiteIntegration(
|
||||
integration = SiteIntegration.objects.create(
|
||||
account=site.account,
|
||||
site=site,
|
||||
platform='wordpress',
|
||||
platform_type='cms',
|
||||
config_json={'site_url': site_url} if site_url else {},
|
||||
credentials_json={'api_key': api_key} if api_key else {},
|
||||
is_active=False
|
||||
is_active=True,
|
||||
sync_enabled=True
|
||||
)
|
||||
integration_created = True
|
||||
logger.info(f"[IntegrationViewSet] Created WordPress integration {integration.id} for site {site.id}")
|
||||
|
||||
service = IntegrationService()
|
||||
# Mark this as initial connection test since API key was provided in request body
|
||||
@@ -203,8 +212,15 @@ class IntegrationViewSet(SiteSectorModelViewSet):
|
||||
result = service._test_wordpress_connection(integration, is_initial_connection=is_initial_connection)
|
||||
|
||||
if result.get('success'):
|
||||
# Include integration_id in response so plugin can store it
|
||||
result['integration_id'] = integration.id
|
||||
result['integration_created'] = integration_created
|
||||
return success_response(result, request=request)
|
||||
else:
|
||||
# If test failed and we just created integration, delete it
|
||||
if integration_created:
|
||||
integration.delete()
|
||||
logger.info(f"[IntegrationViewSet] Deleted integration {integration.id} due to failed connection test")
|
||||
return error_response(result.get('message', 'Connection test failed'), None, status.HTTP_400_BAD_REQUEST, request)
|
||||
|
||||
@action(detail=True, methods=['post'])
|
||||
|
||||
Reference in New Issue
Block a user