feat(web): page admin des sources de métadonnées et de l'automatisation
Configuration des providers (activation, priorité, clé API), réglages d'automatisation (watch des bibliothèques, auto-enrichissement, planifications scan/enrichissement) et déclenchement manuel, avec client API, mocks et styles associés. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -2,17 +2,30 @@ import type {
|
||||
BookDto,
|
||||
BookQueryDto,
|
||||
AuthStatusDto,
|
||||
AutomationSettingsDto,
|
||||
BootstrapAdminDto,
|
||||
CreateLibraryDto,
|
||||
JobDto,
|
||||
LibraryDto,
|
||||
LoginDto,
|
||||
MetadataSourcesConfigDto,
|
||||
ProgressDto,
|
||||
UpdateAutomationSettingsDto,
|
||||
UpdateAccountDto,
|
||||
UpdateMetadataSourcesConfigDto,
|
||||
UpdateProgressDto,
|
||||
UserDto
|
||||
} from "@readabook/shared";
|
||||
import { mockBooks, mockContinue, mockJobs, mockLibraries, mockProgress, mockUser } from "./mockData";
|
||||
import {
|
||||
mockAutomationSettings,
|
||||
mockBooks,
|
||||
mockContinue,
|
||||
mockJobs,
|
||||
mockLibraries,
|
||||
mockMetadataSources,
|
||||
mockProgress,
|
||||
mockUser
|
||||
} from "./mockData";
|
||||
import type { CbzPagesDto, ContinueItem, Session } from "./types";
|
||||
|
||||
const API_BASE = import.meta.env.VITE_API_BASE_URL ?? "";
|
||||
@ -187,5 +200,31 @@ export const api = {
|
||||
},
|
||||
async users(): Promise<UserDto[]> {
|
||||
return request<UserDto[]>("/admin/users", { fallback: [mockUser] });
|
||||
},
|
||||
async metadataSources(): Promise<MetadataSourcesConfigDto> {
|
||||
return request<MetadataSourcesConfigDto>("/admin/metadata-sources", { fallback: mockMetadataSources });
|
||||
},
|
||||
async updateMetadataSources(input: UpdateMetadataSourcesConfigDto): Promise<MetadataSourcesConfigDto> {
|
||||
return request<MetadataSourcesConfigDto>("/admin/metadata-sources", {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(input),
|
||||
fallback: mockMetadataSources
|
||||
});
|
||||
},
|
||||
async automationSettings(): Promise<AutomationSettingsDto> {
|
||||
return request<AutomationSettingsDto>("/admin/automation", { fallback: mockAutomationSettings });
|
||||
},
|
||||
async updateAutomationSettings(input: UpdateAutomationSettingsDto): Promise<AutomationSettingsDto> {
|
||||
return request<AutomationSettingsDto>("/admin/automation", {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(input),
|
||||
fallback: mockAutomationSettings
|
||||
});
|
||||
},
|
||||
async runAutomationScan(): Promise<JobDto> {
|
||||
return request<JobDto>("/admin/automation/run-scan", { method: "POST", fallback: mockJobs[0] });
|
||||
},
|
||||
async runAutomationEnrich(): Promise<JobDto> {
|
||||
return request<JobDto>("/admin/automation/run-enrich", { method: "POST", fallback: mockJobs[0] });
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user