From 588fb40f05f6182e4c78073bcc586dc4826585e6 Mon Sep 17 00:00:00 2001 From: liwei Date: Tue, 30 Jan 2024 17:33:37 +0800 Subject: [PATCH] feat: add delete tasks api --- package.json | 2 +- packages/create-gopeed-ext/package.json | 2 +- .../templates/webpack/package.json | 2 +- packages/gopeed-openapi/src/v1/TaskController.ts | 13 +++++++++++++ packages/gopeed-rest/package.json | 2 +- packages/gopeed-rest/src/index.ts | 14 ++++++++++++++ packages/gopeed-types/package.json | 2 +- packages/gopeed/package.json | 2 +- 8 files changed, 33 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ff42362..382dedf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "1.3.6", + "version": "1.3.7", "packageManager": "pnpm@8.6.1", "type": "module", "scripts": { diff --git a/packages/create-gopeed-ext/package.json b/packages/create-gopeed-ext/package.json index 75ceadb..2a4f512 100644 --- a/packages/create-gopeed-ext/package.json +++ b/packages/create-gopeed-ext/package.json @@ -1,6 +1,6 @@ { "name": "create-gopeed-ext", - "version": "1.3.6", + "version": "1.3.7", "keywords": [ "gopeed" ], diff --git a/packages/create-gopeed-ext/templates/webpack/package.json b/packages/create-gopeed-ext/templates/webpack/package.json index cf33d29..2956ee8 100644 --- a/packages/create-gopeed-ext/templates/webpack/package.json +++ b/packages/create-gopeed-ext/templates/webpack/package.json @@ -20,7 +20,7 @@ "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", - "gopeed": "^1.3.6", + "gopeed": "^1.3.7", "gopeed-polyfill-webpack-plugin": "^1.0.2", "prettier": "^3.0.3", "webpack": "^5.75.0", diff --git a/packages/gopeed-openapi/src/v1/TaskController.ts b/packages/gopeed-openapi/src/v1/TaskController.ts index 9ce4c3f..43a6b3a 100644 --- a/packages/gopeed-openapi/src/v1/TaskController.ts +++ b/packages/gopeed-openapi/src/v1/TaskController.ts @@ -86,4 +86,17 @@ export class UsersController extends Controller { public async deleteTask(@Path() id: string, @Query() force = false): Promise { return; } + + /** + * Delete tasks + * @summary Delete tasks + * @param status - Filter by task status, can be multiple + * @param force - Also delete files + */ + @Security('X-Api-Token') + @Delete() + @SuccessResponse(200) + public async deleteTasks(@Query() status: TaskStatus[] = [], @Query() force = false): Promise { + return; + } } diff --git a/packages/gopeed-rest/package.json b/packages/gopeed-rest/package.json index 7002e2c..d76ff4e 100644 --- a/packages/gopeed-rest/package.json +++ b/packages/gopeed-rest/package.json @@ -1,6 +1,6 @@ { "name": "@gopeed/rest", - "version": "1.3.6", + "version": "1.3.7", "description": "", "main": "dist/index.js", "exports": { diff --git a/packages/gopeed-rest/src/index.ts b/packages/gopeed-rest/src/index.ts index cb670d4..4c19201 100644 --- a/packages/gopeed-rest/src/index.ts +++ b/packages/gopeed-rest/src/index.ts @@ -110,6 +110,20 @@ class Client { await this.doRequest('DELETE', `/api/v1/tasks/${id}?force=${force}`); } + /** + * Delete tasks + * @param statuses - Filter by task status + * @param force - Delete files + */ + public async deleteTasks(statuses: TaskStatus[] = [], force = false): Promise { + await this.doRequest('DELETE', '/api/v1/tasks', { + query: { + status: statuses.map((status) => `status=${status.toString()}`).join('&'), + force: force, + }, + }); + } + private async doRequest( method: string, path: string, diff --git a/packages/gopeed-types/package.json b/packages/gopeed-types/package.json index 382fe37..664fcd5 100644 --- a/packages/gopeed-types/package.json +++ b/packages/gopeed-types/package.json @@ -1,6 +1,6 @@ { "name": "@gopeed/types", - "version": "1.3.6", + "version": "1.3.7", "description": "", "main": "dist/index.js", "exports": { diff --git a/packages/gopeed/package.json b/packages/gopeed/package.json index 7dd2123..6144077 100644 --- a/packages/gopeed/package.json +++ b/packages/gopeed/package.json @@ -1,6 +1,6 @@ { "name": "gopeed", - "version": "1.3.6", + "version": "1.3.7", "description": "", "main": "index.js", "type": "module",