This is an automated email from the ASF dual-hosted git repository.

shenlin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-eventbridge.git

commit bd14cfb10a42bccb0588c207ff6e54f524992b6e
Author: zh378814 <[email protected]>
AuthorDate: Tue Sep 5 11:14:54 2023 +0800

    fix api destination update
---
 .../apidestination/UpdateApiDestinationRequest.java   |  3 ---
 .../model/apidestination/ApiDestinationService.java   | 19 +++++++++++++++++--
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
index d730daf..8430495 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/UpdateApiDestinationRequest.java
@@ -40,9 +40,6 @@ public class UpdateApiDestinationRequest extends BaseResponse 
{
     private String apiDestinationName;
 
     @SerializedName("ConnectionName")
-    @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The 
Connection name is invalid! Only letters a~z or A~Z, numbers 0~9, underscore 
(_) and dash (-) are supported.")
-    @Length(min = 2, max = 127, message = "The connection name length cannot 
exceed 127.")
-    @NotBlank(message = "ConnectionName is blank.")
     private String connectionName;
 
     @SerializedName("Description")
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
index 5563c73..0a1c9a0 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
@@ -100,8 +100,23 @@ public class ApiDestinationService extends 
AbstractResourceService {
         if (checkApiDestination(apiDestinationDTO.getAccountId(), 
apiDestinationDTO.getName()) == null) {
             throw new 
EventBridgeException(EventBridgeErrorCode.ApiDestinationNotExist, 
apiDestinationDTO.getName());
         }
-        checkHttpApiParameters(apiDestinationDTO.getApiParams());
-        checkConnection(apiDestinationDTO);
+        ApiDestinationDTO oldApiDestination = 
getApiDestination(apiDestinationDTO.getAccountId(), 
apiDestinationDTO.getName());
+        if (StringUtils.isBlank(apiDestinationDTO.getConnectionName())) {
+            
apiDestinationDTO.setConnectionName(oldApiDestination.getConnectionName());
+        }
+        if (apiDestinationDTO.getApiParams() == null) {
+            apiDestinationDTO.setApiParams(oldApiDestination.getApiParams());
+        } else {
+            HttpApiParameters apiParams = apiDestinationDTO.getApiParams();
+            HttpApiParameters oldApiParams = oldApiDestination.getApiParams();
+            if (StringUtils.isBlank(apiParams.getEndpoint())) {
+                apiParams.setEndpoint(oldApiParams.getEndpoint());
+            }
+            if (StringUtils.isBlank(apiParams.getMethod())) {
+                apiParams.setMethod(oldApiParams.getMethod());
+            }
+            apiDestinationDTO.setApiParams(apiParams);
+        }
         return 
apiDestinationRepository.updateApiDestination(apiDestinationDTO);
     }
 

Reply via email to