fixes integration
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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}")
|
||||
|
||||
Reference in New Issue
Block a user