fixes integration

This commit is contained in:
IGNY8 VPS (Salman)
2026-01-13 00:17:38 +00:00
parent 5c3aa90e91
commit 25caea5d90
4 changed files with 78 additions and 16 deletions

View File

@@ -237,8 +237,10 @@ class IntegrationViewSet(SiteSectorModelViewSet):
issues.append(f"Cannot detect IGNY8 plugin: {str(e)}")
# Check 3: Verify API keys MATCH by making authenticated request
# This is the CRITICAL check - WordPress must accept our API key
if health_checks['plugin_installed'] and health_checks['plugin_has_api_key']:
# This is the CRITICAL and AUTHORITATIVE check - WordPress must accept our API key
# We always try this if plugin is installed, regardless of what /status says about has_api_key
# because the /verify-key endpoint is the source of truth
if health_checks['plugin_installed']:
try:
# Make authenticated request using Site.wp_api_key to dedicated verify endpoint
verify_response = http_requests.get(
@@ -251,6 +253,8 @@ class IntegrationViewSet(SiteSectorModelViewSet):
)
if verify_response.status_code == 200:
health_checks['api_key_verified'] = True
# If verify succeeds, plugin definitely has the matching key
health_checks['plugin_has_api_key'] = True
elif verify_response.status_code in [401, 403]:
issues.append("API key mismatch - WordPress has different key than IGNY8. Please copy the API key from IGNY8 to WordPress plugin settings.")
else:

View File

@@ -156,13 +156,22 @@ def wordpress_status_webhook(request):
content.status = igny8_status
logger.info(f"[wordpress_status_webhook] Status updated: {old_status}{content.status}")
# Update site_status based on WordPress status
old_site_status = content.site_status
if post_status == 'publish':
content.site_status = 'published'
content.site_status_updated_at = timezone.now()
elif post_status in ['draft', 'pending', 'trash']:
content.site_status = 'not_published'
content.site_status_updated_at = timezone.now()
# Update WordPress status in metadata
if not content.metadata:
content.metadata = {}
content.metadata['wordpress_status'] = post_status
content.metadata['last_wp_sync'] = timezone.now().isoformat()
content.save(update_fields=['external_id', 'external_url', 'status', 'metadata', 'updated_at'])
content.save(update_fields=['external_id', 'external_url', 'status', 'site_status', 'site_status_updated_at', 'metadata', 'updated_at'])
logger.info(f"[wordpress_status_webhook] Updated content {content_id}:")
logger.info(f" - Status: {old_status}{content.status}")