mirror of
https://github.com/yyhuni/xingrin.git
synced 2026-01-31 11:46:16 +08:00
- Split monolithic models.py into separate model files (scan_models.py, scan_log_model.py, scheduled_scan_model.py, subfinder_provider_settings_model.py) - Split monolithic serializers.py into separate serializer files with dedicated modules for each domain - Add SubfinderProviderSettings model to store API key configurations for subfinder data sources - Create SubfinderProviderConfigService to generate provider configuration files dynamically - Add subfinder_provider_settings views and serializers for API key management - Update subdomain_discovery_flow to support provider configuration file generation and passing to subfinder - Update command templates to use provider config file and remove recursive flag for better source coverage - Add frontend settings page for managing API keys at /settings/api-keys - Add frontend hooks and services for API key settings management - Update sidebar navigation to include API keys settings link - Add internationalization support for new API keys settings UI (English and Chinese) - Improves code maintainability by organizing related models and serializers into logical modules
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
|
|
import { ApiKeySettingsService } from '@/services/api-key-settings.service'
|
|
import type { ApiKeySettings } from '@/types/api-key-settings.types'
|
|
import { useToastMessages } from '@/lib/toast-helpers'
|
|
import { getErrorCode } from '@/lib/response-parser'
|
|
|
|
export function useApiKeySettings() {
|
|
return useQuery({
|
|
queryKey: ['api-key-settings'],
|
|
queryFn: () => ApiKeySettingsService.getSettings(),
|
|
})
|
|
}
|
|
|
|
export function useUpdateApiKeySettings() {
|
|
const qc = useQueryClient()
|
|
const toastMessages = useToastMessages()
|
|
|
|
return useMutation({
|
|
mutationFn: (data: Partial<ApiKeySettings>) =>
|
|
ApiKeySettingsService.updateSettings(data),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: ['api-key-settings'] })
|
|
toastMessages.success('toast.apiKeys.settings.success')
|
|
},
|
|
onError: (error: any) => {
|
|
toastMessages.errorFromCode(getErrorCode(error?.response?.data), 'toast.apiKeys.settings.error')
|
|
},
|
|
})
|
|
}
|