import { PDFStatus } from '../types'; const API_BASE = '/api'; export const pdfPreviewService = { // PDFプレビューURLの取得 async getPDFUrl(fileId: string): Promise<{ url: string }> { const response = await fetch(`${API_BASE}/knowledge-bases/${fileId}/pdf-url`, { headers: { 'Authorization': `Bearer ${localStorage.getItem('authToken')}`, }, }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); throw new Error(errorData.message || 'Failed to get PDF URL'); } return response.json(); }, // PDFステータスの確認 async getPDFStatus(fileId: string): Promise { const response = await fetch(`${API_BASE}/knowledge-bases/${fileId}/pdf-status`, { headers: { 'Authorization': `Bearer ${localStorage.getItem('authToken')}`, }, }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); throw new Error(errorData.message || 'Failed to fetch PDF status'); } return response.json(); }, // PDFのプリロード(変換のトリガー) async preloadPDF(fileId: string, force: boolean = false): Promise { try { const url = `${API_BASE}/knowledge-bases/${fileId}/pdf-url` + (force ? '?force=true' : ''); const response = await fetch(url, { method: 'GET', headers: { 'Authorization': `Bearer ${localStorage.getItem('authToken')}`, }, signal: AbortSignal.timeout(30000), // Increase timeout for conversion }); if (response.ok) { console.log('PDF already exists or conversion completed'); } } catch (error) { console.log('PDF conversion triggered:', error.message); } }, };