From 5b30aaa4ea3393ad2f942092273c38b68ae18f78 Mon Sep 17 00:00:00 2001 From: Rewrite0 Date: Sun, 13 Aug 2023 17:18:23 +0800 Subject: [PATCH] feat: new api --- webui/src/api/bangumi.ts | 52 ++++++++++++++++++++++++++-------------- webui/src/api/rss.ts | 29 ++++++++++++++++++++-- webui/src/api/search.ts | 11 +++++++++ webui/types/rss.ts | 4 ++-- 4 files changed, 74 insertions(+), 22 deletions(-) create mode 100644 webui/src/api/search.ts diff --git a/webui/src/api/bangumi.ts b/webui/src/api/bangumi.ts index a5498ef6..db7b4bd2 100644 --- a/webui/src/api/bangumi.ts +++ b/webui/src/api/bangumi.ts @@ -47,15 +47,23 @@ export const apiBangumi = { * @param file - 是否同时删除关联文件。 * @returns axios 请求返回的数据 */ - async deleteRule(bangumiId: number, file: boolean) { - const { data } = await axios.delete( - `api/v1/bangumi/delete/${bangumiId}`, - { - params: { - file, - }, - } - ); + async deleteRule(bangumiId: number | number[], file: boolean) { + let url = 'api/v1/bangumi/delete'; + let ids: undefined | number[]; + + if (typeof bangumiId === 'number') { + url = `${url}/${bangumiId}`; + } else { + url = `${url}/many`; + ids = bangumiId; + } + + const { data } = await axios.delete(url, { + data: ids, + params: { + file, + }, + }); return data; }, @@ -65,15 +73,23 @@ export const apiBangumi = { * @param file - 是否同时删除关联文件。 * @returns axios 请求返回的数据 */ - async disableRule(bangumiId: number, file: boolean) { - const { data } = await axios.delete( - `api/v1/bangumi/disable/${bangumiId}`, - { - params: { - file, - }, - } - ); + async disableRule(bangumiId: number | number[], file: boolean) { + let url = 'api/v1/bangumi/disable'; + let ids: undefined | number[]; + + if (typeof bangumiId === 'number') { + url = `${url}/${bangumiId}`; + } else { + url = `${url}/many`; + ids = bangumiId; + } + + const { data } = await axios.delete(url, { + data: ids, + params: { + file, + }, + }); return data; }, diff --git a/webui/src/api/rss.ts b/webui/src/api/rss.ts index 931817fc..a8bdc461 100644 --- a/webui/src/api/rss.ts +++ b/webui/src/api/rss.ts @@ -6,8 +6,33 @@ export const apiRSS = { return data!; }, - async add() { - const { data } = await axios.post('api/v1/rss/add', {}); + async add(rss: RSS) { + const { data } = await axios.post('api/v1/rss/add', rss); + return data!; + }, + + async delete(rss_id: number) { + const { data } = await axios.delete(`api/v1/rss/delete/${rss_id}`); + return data!; + }, + + async update(rss_id: number, rss: RSS) { + const { data } = await axios.patch(`api/v1/rss/update/${rss_id}`, rss); + return data!; + }, + + async refreshAll() { + const { data } = await axios.get('api/v1/rss/refresh/all'); + return data!; + }, + + async refresh(rss_id: number) { + const { data } = await axios.get(`api/v1/rss/refresh/${rss_id}`); + return data!; + }, + + async getTorrent(rss_id: number) { + const { data } = await axios.get(`api/v1/rss/torrent/${rss_id}`); return data!; }, }; diff --git a/webui/src/api/search.ts b/webui/src/api/search.ts new file mode 100644 index 00000000..71878c34 --- /dev/null +++ b/webui/src/api/search.ts @@ -0,0 +1,11 @@ +export const apiSearch = { + async get(keyword: string, site = 'mikan') { + const { data } = await axios.get('api/v1/search', { + params: { + site, + keyword, + }, + }); + return data!; + }, +}; diff --git a/webui/types/rss.ts b/webui/types/rss.ts index 8b2d8ac1..a666eada 100644 --- a/webui/types/rss.ts +++ b/webui/types/rss.ts @@ -1,8 +1,8 @@ export interface RSS { id: number; - item_path: string; + name: string; url: string; - combine: boolean; + aggregate: boolean; parser: string; enabled: boolean; }