fix fix fix

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-01 00:13:46 +00:00
parent 90b532d13b
commit 42bc24f2c0
11 changed files with 1592 additions and 26 deletions

View File

@@ -608,15 +608,17 @@ class IntegrationViewSet(SiteSectorModelViewSet):
GET /api/v1/integration/integrations/{id}/debug-status/
Query params:
- include_events: Include recent sync events (default: false)
- include_events: Include recent sync events (default: true)
- include_validation: Include data validation matrix (default: false)
- event_limit: Number of events to return (default: 20)
- event_limit: Number of events to return (default: 50)
"""
from igny8_core.business.integration.models import SyncEvent
integration = self.get_object()
include_events = request.query_params.get('include_events', 'false').lower() == 'true'
include_events = request.query_params.get('include_events', 'true').lower() == 'true'
include_validation = request.query_params.get('include_validation', 'false').lower() == 'true'
event_limit = int(request.query_params.get('event_limit', 20))
event_limit = int(request.query_params.get('event_limit', 50))
# Get integration health
health_data = {
@@ -637,25 +639,30 @@ class IntegrationViewSet(SiteSectorModelViewSet):
# Include sync events if requested
if include_events:
sync_health_service = SyncHealthService()
logs = sync_health_service.get_sync_logs(
integration.site_id,
integration_id=integration.id,
limit=event_limit
)
# Get real-time sync events from database
events_qs = SyncEvent.objects.filter(
integration=integration
).order_by('-created_at')[:event_limit]
# Format logs as events
# Format events for frontend
events = []
for log in logs:
for event in events_qs:
events.append({
'type': 'sync' if log.get('success') else 'error',
'action': log.get('operation', 'sync'),
'description': log.get('message', 'Sync operation'),
'timestamp': log.get('timestamp', timezone.now().isoformat()),
'details': log.get('details', {}),
'id': event.id,
'type': event.event_type,
'action': event.action,
'description': event.description,
'timestamp': event.created_at.isoformat(),
'success': event.success,
'content_id': event.content_id,
'external_id': event.external_id,
'error_message': event.error_message,
'duration_ms': event.duration_ms,
'details': event.details,
})
response_data['events'] = events
response_data['events_count'] = len(events)
# Include data validation if requested
if include_validation: