add plugin unexist error tips (#3717)

* add plugin unexist error tips

* throw error when run plugin

* check workflow

* plugin data avoid request twice

* auth owner tmbId

* fix
This commit is contained in:
heheer
2025-02-10 15:20:49 +08:00
committed by GitHub
parent 4284b78707
commit 896a3f1472
24 changed files with 284 additions and 91 deletions

View File

@@ -22,6 +22,14 @@ import { DispatchNodeResponseKeyEnum } from '@fastgpt/global/core/workflow/runti
import { UserChatItemValueItemType } from '@fastgpt/global/core/chat/type';
import { saveChat } from '@fastgpt/service/core/chat/saveChat';
import { getAppLatestVersion } from '@fastgpt/service/core/app/version/controller';
import {
getChildAppPreviewNode,
splitCombinePluginId
} from '@fastgpt/service/core/app/plugin/controller';
import { PluginSourceEnum } from '@fastgpt/global/core/plugin/constants';
import { authAppByTmbId } from '@fastgpt/service/support/permission/app/auth';
import { ReadPermissionVal } from '@fastgpt/global/support/permission/constant';
import { PluginDataType, StoreNodeItemType } from '@fastgpt/global/core/workflow/type/node';
export const getScheduleTriggerApp = async () => {
// 1. Find all the app
@@ -125,3 +133,46 @@ export const getScheduleTriggerApp = async () => {
})
);
};
export const checkNode = async ({
node,
ownerTmbId
}: {
node: StoreNodeItemType;
ownerTmbId: string;
}) => {
const { pluginId } = node;
if (!pluginId) return node;
try {
const { source } = await splitCombinePluginId(pluginId);
if (source === PluginSourceEnum.personal) {
await authAppByTmbId({
tmbId: ownerTmbId,
appId: pluginId,
per: ReadPermissionVal
});
}
const preview = await getChildAppPreviewNode({ id: pluginId });
return {
...node,
pluginData: {
version: preview.version,
diagram: preview.diagram,
userGuide: preview.userGuide,
courseUrl: preview.courseUrl,
name: preview.name,
avatar: preview.avatar
}
};
} catch (error: any) {
return {
...node,
isError: true,
pluginData: {
error
} as PluginDataType
};
}
};