From eaa4c34d68142ba672fe7a46b836067b0379d25d Mon Sep 17 00:00:00 2001 From: Pranav C Date: Wed, 8 Dec 2021 18:00:33 +0530 Subject: [PATCH] refactor: handle plugin test re #827 Signed-off-by: Pranav C --- .../nocodb/src/lib/noco/meta/NcMetaMgr.ts | 25 ++----------------- .../src/lib/noco/plugins/NcPluginMgr.ts | 12 ++++++++- .../plugins/adapters/email/EmailFactory.ts | 3 +-- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts index 3f31cb246d..ecd4c7a6c4 100644 --- a/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts +++ b/packages/nocodb/src/lib/noco/meta/NcMetaMgr.ts @@ -30,8 +30,6 @@ import Noco from '../Noco'; import { GqlApiBuilder } from '../gql/GqlApiBuilder'; import NcPluginMgr from '../plugins/NcPluginMgr'; import XcCache from '../plugins/adapters/cache/XcCache'; -import EmailFactory from '../plugins/adapters/email/EmailFactory'; -// import Twilio from '../plugins/adapters/twilio/Twilio'; import { RestApiBuilder } from '../rest/RestApiBuilder'; import RestAuthCtrl from '../rest/RestAuthCtrlEE'; import { packageVersion } from 'nc-help'; @@ -4859,27 +4857,8 @@ export default class NcMetaMgr { }); } - protected async xcPluginTest(req, args): Promise { - try { - switch (args.args.category) { - case 'Email': - { - const emailIns = EmailFactory.createNewInstance( - args.args, - args.args.input - ); - await emailIns.init(); - await emailIns?.test(req.user?.email); - } - break; - default: - return this.pluginMgr.test(args.args); - break; - } - return true; - } catch (e) { - throw e; - } + protected async xcPluginTest(_req, args): Promise { + return this.pluginMgr.test(args.args); } protected async xcPluginCreate(_args): Promise {} diff --git a/packages/nocodb/src/lib/noco/plugins/NcPluginMgr.ts b/packages/nocodb/src/lib/noco/plugins/NcPluginMgr.ts index 5e43a407a8..2d63ea0c2f 100644 --- a/packages/nocodb/src/lib/noco/plugins/NcPluginMgr.ts +++ b/packages/nocodb/src/lib/noco/plugins/NcPluginMgr.ts @@ -149,8 +149,18 @@ class NcPluginMgr { return tempPlugin?.getAdapter()?.test?.(); } break; + case 'Email': + { + const plugin = defaultPlugins.find( + pluginConfig => pluginConfig?.title === args.title + ); + const tempPlugin = new plugin.builder(this.app, plugin); + await tempPlugin.init(args?.input); + return tempPlugin?.getAdapter()?.test?.(); + } + break; default: - throw new Error('Not implemented'); + throw new Error('Test not implemented'); } } } diff --git a/packages/nocodb/src/lib/noco/plugins/adapters/email/EmailFactory.ts b/packages/nocodb/src/lib/noco/plugins/adapters/email/EmailFactory.ts index 16589562c4..c53f535079 100644 --- a/packages/nocodb/src/lib/noco/plugins/adapters/email/EmailFactory.ts +++ b/packages/nocodb/src/lib/noco/plugins/adapters/email/EmailFactory.ts @@ -27,9 +27,8 @@ export default class EmailFactory { break; case 'SES': return new SES(input); - break; default: - return null; + throw new Error('Test not implemented'); break; } }