pdfPreviewService.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { PDFStatus } from '../types';
  2. import { apiClient } from './apiClient';
  3. export const pdfPreviewService = {
  4. // PDFプレビューURLの取得
  5. async getPDFUrl(fileId: string): Promise<{ url: string }> {
  6. const { data } = await apiClient.get<{ url: string }>(`/knowledge-bases/${fileId}/pdf-url`);
  7. return data;
  8. },
  9. // PDFステータスの確認
  10. async getPDFStatus(fileId: string): Promise<PDFStatus> {
  11. const { data } = await apiClient.get<PDFStatus>(`/knowledge-bases/${fileId}/pdf-status`);
  12. return data;
  13. },
  14. // PDFのプリロード(変換のトリガー)
  15. async preloadPDF(fileId: string, force: boolean = false): Promise<void> {
  16. try {
  17. const url = `/knowledge-bases/${fileId}/pdf-url` + (force ? '?force=true' : '');
  18. const response = await apiClient.request(url, {
  19. method: 'GET',
  20. signal: AbortSignal.timeout(30000), // Increase timeout for conversion
  21. });
  22. if (response.ok) {
  23. console.log('PDF already exists or conversion completed');
  24. }
  25. } catch (error: any) {
  26. console.log('PDF conversion triggered:', error.message);
  27. }
  28. },
  29. };