Files
getDomain/domain-web/src/api/modules.ts
Your Name ebf632e651 first
2026-04-16 21:35:47 +08:00

97 lines
4.1 KiB
TypeScript

import http from "./http";
export const authApi = {
login: (payload: { username: string; password: string }) => http.post("/auth/login", payload)
};
export const dashboardApi = {
overview: () => http.get("/dashboard/overview")
};
export const runtimeApi = {
status: () => http.get("/runtime/status"),
readiness: () => http.get("/runtime/readiness"),
preflight: () => http.get("/runtime/preflight"),
cluster: () => http.get("/runtime/cluster"),
action: (action: string) => http.post(`/runtime/actions/${action}`)
};
export const settingsApi = {
getSettings: () => http.get("/settings"),
updateSettings: (payload: Record<string, unknown>) => http.put("/settings", payload),
getCredentials: () => http.get("/settings/credentials"),
updateCredentials: (payload: Record<string, unknown>) => http.put("/settings/credentials", payload),
exportSettings: () => http.get("/settings/export"),
importSettings: (payload: Record<string, unknown>) => http.post("/settings/import", payload),
validateImportSettings: (payload: Record<string, unknown>) => http.post("/settings/validate-import", payload),
backupSettings: () => http.post("/settings/backup"),
getSettingsBackups: () => http.get("/settings/backups"),
getJuziseoStatus: () => http.get("/settings/juziseo/status"),
loginJuziseo: (payload: { email: string; password: string }) => http.post("/settings/juziseo/login", payload),
backupDownloadUrl: (filename: string) =>
`${(import.meta.env.VITE_API_BASE_URL || "http://127.0.0.1:8100/api/v1").replace(/\/api\/v1\/?$/, "")}/api/v1/settings/backups/download/${encodeURIComponent(filename)}`
};
export const importsApi = {
summary: () => http.get("/imports/summary"),
tasks: () => http.get("/imports/tasks"),
retry: (taskId: string) => http.post(`/imports/tasks/${taskId}/retry`),
createTextTask: (payload: { text: string; filename?: string }) => http.post("/imports/text", payload),
upload: (formData: FormData) =>
http.post("/imports/upload", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
};
export const detectApi = {
status: () => http.get("/detect/status"),
activeJob: () => http.get("/detect/job/active"),
queueSummary: (params?: Record<string, unknown>) => http.get("/detect/queue-summary", { params }),
jobs: (params?: Record<string, unknown>) => http.get("/detect/jobs", { params }),
jobDetail: (jobId: number) => http.get(`/detect/jobs/${jobId}`),
start: () => http.post("/detect/start"),
stop: () => http.post("/detect/stop")
};
export const domainsApi = {
filters: () => http.get("/domains/filters"),
list: (params?: Record<string, unknown>) => http.get("/domains", { params }),
detail: (domainId: number) => http.get(`/domains/${domainId}`),
batchUpdate: (payload: Record<string, unknown>) => http.post("/domains/batch-update", payload)
};
export const exportsApi = {
list: () => http.get("/exports"),
run: (payload: Record<string, unknown>) => http.post("/exports/run", payload)
};
export const logsApi = {
latest: () => http.get("/logs/latest"),
bundleUrl: () => `${(import.meta.env.VITE_API_BASE_URL || "http://127.0.0.1:8100/api/v1").replace(/\/api\/v1\/?$/, "")}/api/v1/logs/bundle`
};
export const sensitiveWordsApi = {
get: () => http.get("/sensitive-words"),
save: (payload: { text: string }) => http.put("/sensitive-words", payload)
};
export const jumingApi = {
status: () => http.get("/juming/status"),
preferences: () => http.get("/juming/preferences"),
updatePreferences: (payload: Record<string, unknown>) => http.put("/juming/preferences", payload),
login: (payload: { email: string; password: string }) => http.post("/juming/login", payload),
loginJucha: () => http.post("/juming/jucha-login"),
crawl: (payload: Record<string, unknown>) => http.post("/juming/crawl", payload),
tasks: () => http.get("/juming/tasks"),
retryTask: (taskId: string) => http.post(`/juming/tasks/${taskId}/retry`),
stopTask: (taskId: string) => http.post(`/juming/tasks/${taskId}/stop`),
uploadCookie: (formData: FormData) =>
http.post("/juming/cookie/upload", formData, {
headers: {
"Content-Type": "multipart/form-data"
}
})
};