diff --git a/backend/src/module/api/program.py b/backend/src/module/api/program.py index c29fa7eb..ded933ff 100644 --- a/backend/src/module/api/program.py +++ b/backend/src/module/api/program.py @@ -83,7 +83,7 @@ async def shutdown_program(current_user=Depends(get_current_user)): # Check status -@router.get("/check/downloader", tags=["check"]) +@router.get("/check/downloader", tags=["check"], response_model=bool) async def check_downloader_status(current_user=Depends(get_current_user)): if not current_user: raise UNAUTHORIZED diff --git a/backend/src/module/api/response.py b/backend/src/module/api/response.py index b4705cc4..00365a7e 100644 --- a/backend/src/module/api/response.py +++ b/backend/src/module/api/response.py @@ -7,6 +7,7 @@ def u_response(response_model: ResponseModel): return JSONResponse( status_code=response_model.status_code, content={ + "status": response_model.status, "msg_en": response_model.msg_en, "msg_zh": response_model.msg_zh, }, diff --git a/webui/src/api/bangumi.ts b/webui/src/api/bangumi.ts index db7b4bd2..a6b5a3ad 100644 --- a/webui/src/api/bangumi.ts +++ b/webui/src/api/bangumi.ts @@ -1,5 +1,6 @@ import type { BangumiRule, BangumiUpdate } from '#/bangumi'; -import type { ApiSuccess } from '#/api'; +import type { UniversalResponse } from '#/message'; +import type { ApiResponse } from '#/api'; export const apiBangumi = { /** @@ -34,7 +35,7 @@ export const apiBangumi = { async updateRule(bangumiId: number, bangumiRule: BangumiRule) { const rule = omit(bangumiRule, ['id']); - const { data } = await axios.patch( + const { data } = await axios.patch< ApiResponse >( `api/v1/bangumi/update/${bangumiId}`, rule ); @@ -58,7 +59,7 @@ export const apiBangumi = { ids = bangumiId; } - const { data } = await axios.delete(url, { + const { data } = await axios.delete< ApiResponse >(url, { data: ids, params: { file, @@ -84,7 +85,7 @@ export const apiBangumi = { ids = bangumiId; } - const { data } = await axios.delete(url, { + const { data } = await axios.delete< ApiResponse >(url, { data: ids, params: { file, @@ -98,7 +99,7 @@ export const apiBangumi = { * @param bangumiId - 需要启用的 bangumi 的 id */ async enableRule(bangumiId: number) { - const { data } = await axios.get( + const { data } = await axios.get< UniversalResponse >( `api/v1/bangumi/enable/${bangumiId}` ); return data; @@ -108,9 +109,7 @@ export const apiBangumi = { * 重置所有 bangumi 数据 */ async resetAll() { - const { data } = await axios.get<{ - message: 'OK'; - }>('api/v1/bangumi/resetAll'); + const { data } = await axios.get< ApiResponse >('api/v1/bangumi/resetAll'); return data; }, }; diff --git a/webui/src/api/check.ts b/webui/src/api/check.ts index 9d3289ef..a59a3a73 100644 --- a/webui/src/api/check.ts +++ b/webui/src/api/check.ts @@ -3,23 +3,8 @@ export const apiCheck = { * 检测下载器 */ async downloader() { - const { data } = await axios.get('api/v1/check/downloader'); + const { data } = await axios.get('api/v1/check/downloader'); return data; }, - /** - * 检测 RSS - */ - async rss() { - const { data } = await axios.get('api/v1/check/rss'); - return data; - }, - - /** - * 检测所有 - */ - async all() { - const { data } = await axios.get('api/v1/check'); - return data; - }, -}; +} \ No newline at end of file diff --git a/webui/src/api/config.ts b/webui/src/api/config.ts index 77e892f4..3e6771f0 100644 --- a/webui/src/api/config.ts +++ b/webui/src/api/config.ts @@ -1,11 +1,12 @@ import type { Config } from '#/config'; +import type { UniversalResponse } from '#/message'; export const apiConfig = { /** * 获取 config 数据 */ async getConfig() { - const { data } = await axios.get('api/v1/getConfig'); + const { data } = await axios.get('api/v1/config/get'); return data; }, @@ -14,10 +15,10 @@ export const apiConfig = { * @param newConfig - 需要更新的 config */ async updateConfig(newConfig: Config) { - const { data } = await axios.post<{ - message: 'Success' | 'Failed to update config'; - }>('api/v1/updateConfig', newConfig); - - return data.message === 'Success'; + const { data } = await axios.patch( + 'api/v1/config/update', + newConfig + ); + return data; }, }; diff --git a/webui/src/api/download.ts b/webui/src/api/download.ts index 52f25310..e12c9834 100644 --- a/webui/src/api/download.ts +++ b/webui/src/api/download.ts @@ -1,4 +1,5 @@ import type { BangumiRule } from '#/bangumi'; +import type { UniversalResponse } from '#/message'; interface Status { status: 'Success'; @@ -30,11 +31,11 @@ export const apiDownload = { * @param bangumiData - Bangumi 数据 */ async collection(bangumiData: BangumiRule) { - const { data } = await axios.post( + const { data } = await axios.post< UniversalResponse >( 'api/v1/download/collection', bangumiData ); - return data.status === 'Success'; + return data; }, /** @@ -42,10 +43,10 @@ export const apiDownload = { * @param bangumiData - Bangumi 数据 */ async subscribe(bangumiData: BangumiRule) { - const { data } = await axios.post( + const { data } = await axios.post< UniversalResponse >( 'api/v1/download/subscribe', bangumiData ); - return data.status === 'Success'; + return data; }, }; diff --git a/webui/src/api/log.ts b/webui/src/api/log.ts index 92e3e33e..98002425 100644 --- a/webui/src/api/log.ts +++ b/webui/src/api/log.ts @@ -1,3 +1,5 @@ +import type { UniversalResponse } from "#/message"; + export const apiLog = { async getLog() { const { data } = await axios.get('api/v1/log'); @@ -5,7 +7,7 @@ export const apiLog = { }, async clearLog() { - const { data } = await axios.get<{ status: 'ok' }>('api/v1/log/clear'); - return data.status === 'ok'; + const { data } = await axios.get('api/v1/log/clear'); + return data; }, }; diff --git a/webui/src/api/program.ts b/webui/src/api/program.ts index 52c2650a..7aff1ae8 100644 --- a/webui/src/api/program.ts +++ b/webui/src/api/program.ts @@ -1,30 +1,29 @@ -interface Success { - status: 'ok'; -} +import type { UniversalResponse } from "#/message"; + export const apiProgram = { /** * 重启 */ async restart() { - const { data } = await axios.get('api/v1/restart'); - return data.status === 'ok'; + const { data } = await axios.get< UniversalResponse >('api/v1/restart'); + return data; }, /** * 启动 */ async start() { - const { data } = await axios.get('api/v1/start'); - return data.status === 'ok'; + const { data } = await axios.get< UniversalResponse >('api/v1/start'); + return data; }, /** * 停止 */ async stop() { - const { data } = await axios.get('api/v1/stop'); - return data.status === 'ok'; + const { data } = await axios.get< UniversalResponse >('api/v1/stop'); + return data; }, /** @@ -42,7 +41,7 @@ export const apiProgram = { * 终止 */ async shutdown() { - const { data } = await axios.get('api/v1/shutdown'); - return data.status === 'ok'; + const { data } = await axios.get< UniversalResponse >('api/v1/shutdown'); + return data; }, }; diff --git a/webui/src/store/bangumi.ts b/webui/src/store/bangumi.ts index a4138310..72f47fe6 100644 --- a/webui/src/store/bangumi.ts +++ b/webui/src/store/bangumi.ts @@ -45,8 +45,8 @@ export const useBangumiStore = defineStore('bangumi', () => { getAll(); } - function actionSuccess({ msg }) { - message.success(msg); + function actionSuccess({ status }) { + message.success(status); refresh(); } onUpdateRuleResult(actionSuccess); diff --git a/webui/types/api.ts b/webui/types/api.ts index 969595b8..1ea2ebe6 100644 --- a/webui/types/api.ts +++ b/webui/types/api.ts @@ -21,3 +21,9 @@ export interface ApiError { export interface ApiSuccess { msg: string; } + +export interface ApiResponse { + status: boolean; + msg_en: string; + msg_zh: string; +} \ No newline at end of file diff --git a/webui/types/message.ts b/webui/types/message.ts new file mode 100644 index 00000000..ea4c516c --- /dev/null +++ b/webui/types/message.ts @@ -0,0 +1,5 @@ +export interface UniversalResponse { + status: boolean; + msg_en: string; + msg_zh: string; +} \ No newline at end of file