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); }
