| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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<PDFStatus> {
- 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<void> {
- 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);
- }
- },
- };
|