ALwrity + Wix + Wordpress + GSC integration + Production API calls fixes

This commit is contained in:
ajaysi
2025-10-09 13:07:09 +05:30
parent 0f6f8a4c6c
commit 9cc1ffd47e
20 changed files with 350 additions and 846 deletions

View File

@@ -1,6 +1,7 @@
import React, { useState } from 'react';
import { useCopilotAction } from '@copilotkit/react-core';
import DiffPreview from './DiffPreview';
import { apiClient } from '../../api/client';
interface HallucinationCheckerProps {
buildFullMarkdown: () => string;
@@ -27,12 +28,8 @@ export const HallucinationChecker: React.FC<HallucinationCheckerProps> = ({
parameters: [],
handler: async () => {
const content = buildFullMarkdown();
const res = await fetch('/api/blog/quality/hallucination-check', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: content })
});
const data = await res.json();
const res = await apiClient.post('/api/blog/quality/hallucination-check', { text: content });
const data = res.data;
setHallucinationResult(data);
return { success: true, total_claims: data?.total_claims };
},

View File

@@ -1,6 +1,7 @@
import React from 'react';
import { useCopilotAction } from '@copilotkit/react-core';
import { blogWriterApi, BlogSEOMetadataResponse } from '../../../services/blogWriterApi';
import { apiClient } from '../../../api/client';
interface SEOProcessorProps {
buildFullMarkdown: () => string;
@@ -50,22 +51,12 @@ export const SEOProcessor: React.FC<SEOProcessorProps> = ({
if (!current) return { success: false, message: 'No content yet for this section' };
// Use comprehensive SEO analysis endpoint
const response = await fetch('/api/blog-writer/seo/analyze', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: current,
keywords: []
})
const response = await apiClient.post('/api/blog-writer/seo/analyze', {
content: current,
keywords: []
});
if (!response.ok) {
throw new Error('Failed to analyze blog content');
}
const res = await response.json();
const res = response.data;
onSEOAnalysis(res);
return { success: true, message: 'Analysis ready' };
},

View File

@@ -27,6 +27,7 @@ import {
IconButton,
Tooltip
} from '@mui/material';
import { apiClient } from '../../api/client';
import {
CheckCircle,
Cancel,
@@ -187,23 +188,13 @@ export const SEOAnalysisModal: React.FC<SEOAnalysisModalProps> = ({
}
// Make API call to analyze blog content
const response = await fetch('/api/blog-writer/seo/analyze', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
blog_content: blogContent,
blog_title: blogTitle,
research_data: researchData
})
const response = await apiClient.post('/api/blog-writer/seo/analyze', {
blog_content: blogContent,
blog_title: blogTitle,
research_data: researchData
});
if (!response.ok) {
throw new Error('Failed to analyze blog content');
}
const result = await response.json();
const result = response.data;
console.log('🔍 Backend SEO Analysis Response:', result);
// Convert API response to frontend format - fail fast if data is missing

View File

@@ -44,6 +44,7 @@ import {
Tag as TagIcon,
Refresh as RefreshIcon
} from '@mui/icons-material';
import { apiClient } from '../../api/client';
// Import metadata display components
import { CoreMetadataTab } from './SEO/MetadataDisplay/CoreMetadataTab';
@@ -113,23 +114,13 @@ export const SEOMetadataModal: React.FC<SEOMetadataModalProps> = ({
console.log('🚀 Starting SEO metadata generation...');
// Make API call to generate metadata
const response = await fetch('/api/blog/seo/metadata', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: blogContent,
title: blogTitle,
research_data: researchData
})
const response = await apiClient.post('/api/blog/seo/metadata', {
content: blogContent,
title: blogTitle,
research_data: researchData
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const result = await response.json();
const result = response.data;
console.log('✅ SEO metadata generation response:', result);
if (!result.success) {