From 07d089a2bd41ea74ea9edcd7e1395e6d21e14645 Mon Sep 17 00:00:00 2001 From: lloydzhou Date: Fri, 27 Sep 2024 13:31:07 +0800 Subject: [PATCH 1/2] try using method and path when operationId is undefined #5525 --- app/store/plugin.ts | 11 ++++++----- app/utils.ts | 12 ++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/store/plugin.ts b/app/store/plugin.ts index 84ae0816e41..a79a1ae4b91 100644 --- a/app/store/plugin.ts +++ b/app/store/plugin.ts @@ -4,7 +4,7 @@ import { nanoid } from "nanoid"; import { createPersistStore } from "../utils/store"; import { getClientConfig } from "../config/client"; import yaml from "js-yaml"; -import { adapter } from "../utils"; +import { adapter, getOperationId } from "../utils"; import { useAccessStore } from "./access"; const isApp = getClientConfig()?.isApp; @@ -116,7 +116,7 @@ export const FunctionToolService = { return { type: "function", function: { - name: o.operationId, + name: getOperationId(o), description: o.description || o.summary, parameters: parameters, }, @@ -124,7 +124,7 @@ export const FunctionToolService = { }), funcs: operations.reduce((s, o) => { // @ts-ignore - s[o.operationId] = function (args) { + s[getOperationId(o)] = function (args) { const parameters: Record = {}; if (o.parameters instanceof Array) { o.parameters.forEach((p) => { @@ -139,8 +139,8 @@ export const FunctionToolService = { } else if (authLocation == "body") { args[headerName] = tokenValue; } - // @ts-ignore - return api.client[o.operationId]( + // @ts-ignore if o.operationId is null, then using o.path and o.method + return api.client.paths[o.path][o.method]( parameters, args, api.axiosConfigDefaults, @@ -253,6 +253,7 @@ export const usePluginStore = createPersistStore( .catch((e) => item), ), ).then((builtinPlugins: any) => { + return; builtinPlugins .filter((item: any) => item?.content) .forEach((item: any) => { diff --git a/app/utils.ts b/app/utils.ts index 9a8bebf38c7..6b2f65952c7 100644 --- a/app/utils.ts +++ b/app/utils.ts @@ -377,3 +377,15 @@ export function safeLocalStorage(): { }, }; } + +export function getOperationId(operation: { + operationId?: string; + method: string; + path: string; +}) { + // pattern '^[a-zA-Z0-9_-]+$' + return ( + operation?.operationId || + `${operation.method.toUpperCase()}${operation.path.replaceAll("/", "_")}` + ); +} From 22aa1698b407322c2cb980aed971ad3d06e6f87c Mon Sep 17 00:00:00 2001 From: lloydzhou Date: Fri, 27 Sep 2024 13:31:49 +0800 Subject: [PATCH 2/2] try using method and path when operationId is undefined #5525 --- app/store/plugin.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/store/plugin.ts b/app/store/plugin.ts index a79a1ae4b91..40abdc8d9f4 100644 --- a/app/store/plugin.ts +++ b/app/store/plugin.ts @@ -253,7 +253,6 @@ export const usePluginStore = createPersistStore( .catch((e) => item), ), ).then((builtinPlugins: any) => { - return; builtinPlugins .filter((item: any) => item?.content) .forEach((item: any) => {