fix api destination update
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 @@
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 @@
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);
}