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
The following commit(s) were added to refs/heads/main by this push:
new b506031 add connection check
b506031 is described below
commit b506031bb78c01c23b5607e2b185dfb73c8597d4
Author: zh378814 <[email protected]>
AuthorDate: Mon Apr 10 18:15:59 2023 +0800
add connection check
---
.../domain/model/apidestination/ApiDestinationService.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
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.EventBridgeConstants;
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 @@ public class ApiDestinationService extends
AbstractResourceService {
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 @@ public class ApiDestinationService extends
AbstractResourceService {
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 @@ public class ApiDestinationService extends
AbstractResourceService {
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 @@ public class ApiDestinationService extends
AbstractResourceService {
throw new
EventBridgeException(EventBridgeErrorCode.ApiDestinationNotExist,
apiDestinationDTO.getName());
}
checkHttpApiParameters(apiDestinationDTO.getApiParams());
+ checkConnection(apiDestinationDTO);
return
apiDestinationRepository.updateApiDestination(apiDestinationDTO);
}