add connection check
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 9b87181..94f2931 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
@@ -24,6 +24,7 @@
import org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
import org.apache.rocketmq.eventbridge.domain.model.AbstractResourceService;
import org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
+import org.apache.rocketmq.eventbridge.domain.model.connection.ConnectionService;
import org.apache.rocketmq.eventbridge.domain.model.quota.QuotaService;
import org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
import org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
@@ -43,11 +44,14 @@
private final ApiDestinationRepository apiDestinationRepository;
+ private final ConnectionService connectionService;
+
private final QuotaService quotaService;
- public ApiDestinationService(ApiDestinationRepository apiDestinationRepository, QuotaService quotaService) {
+ public ApiDestinationService(ApiDestinationRepository apiDestinationRepository, QuotaService quotaService, ConnectionService connectionService) {
this.apiDestinationRepository = apiDestinationRepository;
this.quotaService = quotaService;
+ this.connectionService = connectionService;
}
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
@@ -58,6 +62,7 @@
super.checkQuota(this.getApiDestinationCount(eventApiDestinationDTO.getAccountId()), quotaService.getTotalQuota(eventApiDestinationDTO.getAccountId(), TotalQuotaEnum.API_DESTINATION_COUNT),
ApiDestinationCountExceedLimit);
checkHttpApiParameters(eventApiDestinationDTO.getApiParams());
+ checkConnection(eventApiDestinationDTO);
final Boolean apiDestination = apiDestinationRepository.createApiDestination(eventApiDestinationDTO);
if (apiDestination) {
return eventApiDestinationDTO.getName();
@@ -65,6 +70,10 @@
return null;
}
+ private void checkConnection(ApiDestinationDTO eventApiDestinationDTO) {
+ connectionService.getConnection(eventApiDestinationDTO.getAccountId(), eventApiDestinationDTO.getConnectionName());
+ }
+
private void checkHttpApiParameters(HttpApiParameters httpApiParameters) {
if (httpApiParameters == null) {
throw new EventBridgeException(EventBridgeErrorCode.HttpApiParametersIsNull);
@@ -87,6 +96,7 @@
throw new EventBridgeException(EventBridgeErrorCode.ApiDestinationNotExist, apiDestinationDTO.getName());
}
checkHttpApiParameters(apiDestinationDTO.getApiParams());
+ checkConnection(apiDestinationDTO);
return apiDestinationRepository.updateApiDestination(apiDestinationDTO);
}