- Sync updates for provider services (AlphaVantage, Finnhub, YFinance, Tushare) - Update Frontend components and pages for recent config changes - Update API Gateway and Registry - Include design docs and tasks status
106 lines
2.7 KiB
TypeScript
106 lines
2.7 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
import { LlmProvidersConfig, DataSourcesConfig, AnalysisTemplateSets, TestConfigRequest, TestLlmConfigRequest } from '../types/config';
|
|
import { client } from '../api/client';
|
|
|
|
// --- Hooks ---
|
|
|
|
export function useLlmProviders() {
|
|
return useQuery({
|
|
queryKey: ['llm-providers'],
|
|
queryFn: async () => {
|
|
return await client.get_llm_providers_config();
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useUpdateLlmProviders() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: async (config: LlmProvidersConfig) => {
|
|
return await client.update_llm_providers_config(config);
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['llm-providers'] });
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useDataSources() {
|
|
return useQuery({
|
|
queryKey: ['data-sources'],
|
|
queryFn: async () => {
|
|
return await client.get_data_sources_config();
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useUpdateDataSources() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: async (config: DataSourcesConfig) => {
|
|
return await client.update_data_sources_config(config);
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['data-sources'] });
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useRegisteredProviders() {
|
|
return useQuery({
|
|
queryKey: ['registered-providers'],
|
|
queryFn: async () => {
|
|
return await client.get_registered_providers();
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useAnalysisTemplates() {
|
|
return useQuery({
|
|
queryKey: ['analysis-templates'],
|
|
queryFn: async () => {
|
|
return await client.get_analysis_template_sets();
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useUpdateAnalysisTemplates() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: async (config: AnalysisTemplateSets) => {
|
|
return await client.update_analysis_template_sets(config);
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['analysis-templates'] });
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useDiscoverModels() {
|
|
const queryClient = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: async (providerId: string) => {
|
|
return await client.discover_models({ params: { provider_id: providerId } });
|
|
},
|
|
onSuccess: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['llm-providers'] });
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useTestDataSource() {
|
|
return useMutation({
|
|
mutationFn: async (config: TestConfigRequest) => {
|
|
return await client.test_data_source_config(config);
|
|
}
|
|
});
|
|
}
|
|
|
|
export function useTestLlmConfig() {
|
|
return useMutation({
|
|
mutationFn: async (config: TestLlmConfigRequest) => {
|
|
return await client.test_llm_config(config);
|
|
}
|
|
});
|
|
}
|