From 89eadb27157b251d5f9fef26aca5f50ff38651ef Mon Sep 17 00:00:00 2001 From: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:38:18 +0530 Subject: [PATCH 1/2] refactor executeQuery --- .../external/plugins/AppsmithAiPlugin.java | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java index 02ffc4241756..8ea31f1d6511 100644 --- a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java +++ b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java @@ -166,39 +166,56 @@ public Mono executeCommon( ExecuteActionDTO executeActionDTO) { log.debug(Thread.currentThread().getName() + ": executeCommon() called for AppsmithAI plugin."); - // Initializing object for error condition - ActionExecutionResult errorResult = new ActionExecutionResult(); - initUtils.initializeResponseWithError(errorResult); Feature feature = Feature.valueOf(RequestUtils.extractDataFromFormData(actionConfiguration.getFormData(), USECASE)); AiFeatureService aiFeatureService = AiFeatureServiceFactory.getAiFeatureService(feature); Query query = aiFeatureService.createQuery(actionConfiguration, datasourceConfiguration, executeActionDTO); AiServerRequestDTO aiServerRequestDTO = new AiServerRequestDTO(feature, query); - ActionExecutionResult actionExecutionResult = new ActionExecutionResult(); ActionExecutionRequest actionExecutionRequest = RequestCaptureFilter.populateRequestFields( actionConfiguration, RequestUtils.getQueryUri(), insertedParams, objectMapper); + SourceDetails sourceDetails = SourceDetails.createSourceDetails(executeActionDTO); + + return handleExecution(aiFeatureService, aiServerRequestDTO, sourceDetails, actionExecutionRequest); + } + + private Mono handleExecution( + AiFeatureService aiFeatureService, + AiServerRequestDTO aiServerRequestDTO, + SourceDetails sourceDetails, + ActionExecutionRequest actionExecutionRequest) { + Mono actionExecutionResultMono; + actionExecutionResultMono = + handleExecuteForAiServerService(aiServerRequestDTO, sourceDetails, actionExecutionRequest); + return actionExecutionResultMono.onErrorResume(this::handleError); + } + + private Mono handleExecuteForAiServerService( + AiServerRequestDTO aiServerRequestDTO, + SourceDetails sourceDetails, + ActionExecutionRequest actionExecutionRequest) { return aiServerService - .executeQuery(aiServerRequestDTO, SourceDetails.createSourceDetails(executeActionDTO)) - .map(response -> { - actionExecutionResult.setIsExecutionSuccess(true); - actionExecutionResult.setBody(response); - actionExecutionResult.setRequest(actionExecutionRequest); - return actionExecutionResult; - }) - .onErrorResume(error -> { - errorResult.setIsExecutionSuccess(false); - log.error( - "An error has occurred while trying to run the AI server API query. Error: {}", - error.getMessage()); - if (!(error instanceof AppsmithPluginException)) { - error = new AppsmithPluginException( - AppsmithPluginError.PLUGIN_ERROR, error.getMessage(), error); - } - errorResult.setErrorInfo(error); - return Mono.just(errorResult); - }); + .executeQuery(aiServerRequestDTO, sourceDetails) + .map(response -> { + ActionExecutionResult actionExecutionResult = new ActionExecutionResult(); + actionExecutionResult.setIsExecutionSuccess(true); + actionExecutionResult.setBody(response); + actionExecutionResult.setRequest(actionExecutionRequest); + return actionExecutionResult; + }); + } + + private Mono handleError(Throwable error) { + ActionExecutionResult errorResult = new ActionExecutionResult(); + initUtils.initializeResponseWithError(errorResult); + log.error( + "An error has occurred while trying to run the AI server API query. Error: {}", error.getMessage()); + if (!(error instanceof AppsmithPluginException)) { + error = new AppsmithPluginException(AppsmithPluginError.PLUGIN_ERROR, error.getMessage(), error); + } + errorResult.setErrorInfo(error); + return Mono.just(errorResult); } @Override From e15a0dfa6a4a8fdcef81755cd5cf06bfa7925428 Mon Sep 17 00:00:00 2001 From: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Date: Fri, 6 Dec 2024 16:35:18 +0530 Subject: [PATCH 2/2] spotless lint --- .../external/plugins/AppsmithAiPlugin.java | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java index 8ea31f1d6511..7fd4776a8f47 100644 --- a/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java +++ b/app/server/appsmith-plugins/appsmithAiPlugin/src/main/java/com/external/plugins/AppsmithAiPlugin.java @@ -181,10 +181,10 @@ public Mono executeCommon( } private Mono handleExecution( - AiFeatureService aiFeatureService, - AiServerRequestDTO aiServerRequestDTO, - SourceDetails sourceDetails, - ActionExecutionRequest actionExecutionRequest) { + AiFeatureService aiFeatureService, + AiServerRequestDTO aiServerRequestDTO, + SourceDetails sourceDetails, + ActionExecutionRequest actionExecutionRequest) { Mono actionExecutionResultMono; actionExecutionResultMono = handleExecuteForAiServerService(aiServerRequestDTO, sourceDetails, actionExecutionRequest); @@ -192,25 +192,25 @@ private Mono handleExecution( } private Mono handleExecuteForAiServerService( - AiServerRequestDTO aiServerRequestDTO, - SourceDetails sourceDetails, - ActionExecutionRequest actionExecutionRequest) { + AiServerRequestDTO aiServerRequestDTO, + SourceDetails sourceDetails, + ActionExecutionRequest actionExecutionRequest) { return aiServerService - .executeQuery(aiServerRequestDTO, sourceDetails) - .map(response -> { - ActionExecutionResult actionExecutionResult = new ActionExecutionResult(); - actionExecutionResult.setIsExecutionSuccess(true); - actionExecutionResult.setBody(response); - actionExecutionResult.setRequest(actionExecutionRequest); - return actionExecutionResult; - }); + .executeQuery(aiServerRequestDTO, sourceDetails) + .map(response -> { + ActionExecutionResult actionExecutionResult = new ActionExecutionResult(); + actionExecutionResult.setIsExecutionSuccess(true); + actionExecutionResult.setBody(response); + actionExecutionResult.setRequest(actionExecutionRequest); + return actionExecutionResult; + }); } private Mono handleError(Throwable error) { ActionExecutionResult errorResult = new ActionExecutionResult(); initUtils.initializeResponseWithError(errorResult); log.error( - "An error has occurred while trying to run the AI server API query. Error: {}", error.getMessage()); + "An error has occurred while trying to run the AI server API query. Error: {}", error.getMessage()); if (!(error instanceof AppsmithPluginException)) { error = new AppsmithPluginException(AppsmithPluginError.PLUGIN_ERROR, error.getMessage(), error); }