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 89144ed  Add oauth http check (#81)
89144ed is described below

commit 89144ed23290922c36c61b8a284736159eeeb426
Author: zhaohai <[email protected]>
AuthorDate: Wed Apr 12 18:58:07 2023 +0800

    Add oauth http check (#81)
    
    add oauth http check
---
 .../CreateApiDestinationRequest.java               |  4 +-
 .../UpdateApiDestinationRequest.java               |  4 +-
 .../dto/connection/CreateConnectionRequest.java    |  2 +-
 .../dto/connection/UpdateConnectionRequest.java    |  2 +-
 .../mybatis/mapper/EventApiDestinationMapper.java  |  2 +
 .../MybatisApiDestinationRepository.java           |  5 ++
 .../mybatis/mapper/EventConnectionMapper.java      |  2 +
 .../repository/MybatisConnectRepository.java       |  5 ++
 .../mybatis/EventApiDestinationMapper.xml          | 10 ++++
 .../resources/mybatis/EventConnectionMapper.xml    |  9 +++
 .../apidestination/ApiDestinationService.java      |  9 ++-
 .../domain/model/connection/ConnectionService.java | 70 +++++++---------------
 .../repository/ApiDestinationRepository.java       |  2 +
 .../domain/repository/ConnectionRepository.java    |  2 +
 .../domain/service/ApiDestinationServiceTest.java  |  9 +++
 .../domain/service/ConnectionServiceTest.java      |  2 +-
 16 files changed, 83 insertions(+), 56 deletions(-)

diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
index 10f5c63..a0689e0 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/CreateApiDestinationRequest.java
@@ -33,14 +33,14 @@ import org.hibernate.validator.constraints.Length;
 public class CreateApiDestinationRequest extends BaseResponse {
 
     @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The 
ApiDestination name is invalid! Only letters a~z or A~Z, numbers 0~9, 
underscore (_) and dash (-) are supported.")
-    @Length(min = 1, max = 127, message = "The ApiDestination name length 
cannot exceed 127.")
+    @Length(min = 2, max = 127, message = "The ApiDestination name length 
cannot exceed 127.")
     @NotBlank(message = "ApiDestinationName is blank")
     @SerializedName("ApiDestinationName")
     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 = 1, max = 127, message = "The connection name length cannot 
exceed 127.")
+    @Length(min = 2, max = 127, message = "The connection name length cannot 
exceed 127.")
     @NotBlank(message = "ConnectionName is blank.")
     private String connectionName;
 
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 a065853..d730daf 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
@@ -34,14 +34,14 @@ import org.hibernate.validator.constraints.Length;
 public class UpdateApiDestinationRequest extends BaseResponse {
 
     @Pattern(regexp = "^[A-Za-z|0-9][A-Za-z|0-9|_|-]+$", message = "The 
ApiDestination name is invalid! Only letters a~z or A~Z, numbers 0~9, 
underscore (_) and dash (-) are supported.")
-    @Length(min = 1, max = 127, message = "The ApiDestination name length 
cannot exceed 127.")
+    @Length(min = 2, max = 127, message = "The ApiDestination name length 
cannot exceed 127.")
     @NotBlank(message = "ApiDestinationName is blank")
     @SerializedName("ApiDestinationName")
     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 = 1, max = 127, message = "The connection name length cannot 
exceed 127.")
+    @Length(min = 2, max = 127, message = "The connection name length cannot 
exceed 127.")
     @NotBlank(message = "ConnectionName is blank.")
     private String connectionName;
 
diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
index 9e9de83..fe6b325 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/CreateConnectionRequest.java
@@ -34,7 +34,7 @@ import org.hibernate.validator.constraints.Length;
 public class CreateConnectionRequest extends BaseRequest {
 
     @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 = 1, max = 127, message = "The connection name length cannot 
exceed 127.")
+    @Length(min = 2, max = 127, message = "The connection name length cannot 
exceed 127.")
     @NotBlank(message = "ConnectionName is blank.")
     @SerializedName("ConnectionName")
     private String connectionName;
diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
index 22d7024..2173dc4 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/UpdateConnectionRequest.java
@@ -35,7 +35,7 @@ import org.hibernate.validator.constraints.Length;
 public class UpdateConnectionRequest extends BaseRequest {
 
     @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 = 1, max = 127, message = "The connection name length cannot 
exceed 127.")
+    @Length(min = 2, max = 127, message = "The connection name length cannot 
exceed 127.")
     @NotBlank(message = "ConnectionName is blank")
     @SerializedName("ConnectionName")
     private String connectionName;
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/mapper/EventApiDestinationMapper.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/mapper/EventApiDestinationMapper.java
index 7dff8e9..12bc74b 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/mapper/EventApiDestinationMapper.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/mapper/EventApiDestinationMapper.java
@@ -120,6 +120,8 @@ public interface EventApiDestinationMapper {
      */
     int getApiDestinationCount(@Param("accountId") String accountId);
 
+    int getApiDestinationByAccountIdAndNameCount(@Param("accountId") String 
accountId, @Param("name") String name, @Param("connectionName") String 
connectionName);
+
     List<ApiDestinationDO> 
queryApiDestinationByConnectionName(@Param("accountId") String accountId,
         @Param("connectionName") String connectionName);
 }
\ No newline at end of file
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/repository/MybatisApiDestinationRepository.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/repository/MybatisApiDestinationRepository.java
index 129d754..b6fdb98 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/repository/MybatisApiDestinationRepository.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/apidestination/mybatis/repository/MybatisApiDestinationRepository.java
@@ -72,6 +72,11 @@ public class MybatisApiDestinationRepository implements 
ApiDestinationRepository
         return eventApiDestinationMapper.getApiDestinationCount(accountId);
     }
 
+    @Override
+    public int getApiDestinationCount(String accountId, String 
apiDestinationName, String connectionName) {
+        return 
eventApiDestinationMapper.getApiDestinationByAccountIdAndNameCount(accountId, 
apiDestinationName, connectionName);
+    }
+
     @Override
     public List<ApiDestinationDTO> queryApiDestinationByConnectionName(String 
accountId, String connectionName) {
         return 
ApiDestinationConverter.doListCoverterDtoList(eventApiDestinationMapper.queryApiDestinationByConnectionName(accountId,
 connectionName));
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/mapper/EventConnectionMapper.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/mapper/EventConnectionMapper.java
index 19a2064..2e63e34 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/mapper/EventConnectionMapper.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/mapper/EventConnectionMapper.java
@@ -115,4 +115,6 @@ public interface EventConnectionMapper {
      * @return
      */
     int getConnectionCount(@Param("accountId") String accountId);
+
+    int getConnectionByAccountIdAndNameCount(@Param("accountId") String 
accountId,@Param("name") String name);
 }
\ No newline at end of file
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/repository/MybatisConnectRepository.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/repository/MybatisConnectRepository.java
index 1a8e12b..1fef74c 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/repository/MybatisConnectRepository.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/repository/MybatisConnectRepository.java
@@ -75,6 +75,11 @@ public class MybatisConnectRepository implements 
ConnectionRepository {
         return eventConnectionMapper.getConnectionCount(accountId);
     }
 
+    @Override
+    public int getConnectionCount(String accountId, String connectionName) {
+        return 
eventConnectionMapper.getConnectionByAccountIdAndNameCount(accountId, 
connectionName);
+    }
+
     @Override
     public ConnectionDTO getConnectionById(Integer id) {
         ConnectionDO connectionDO = 
eventConnectionMapper.selectByPrimaryKey(id);
diff --git 
a/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml 
b/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
index fab1e9f..72f2d31 100644
--- 
a/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
+++ 
b/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
@@ -300,6 +300,16 @@
             <if test="accountId != null and accountId != ''">account_id = 
#{accountId}</if>
         </where>
     </select>
+    <select id="getApiDestinationByAccountIdAndNameCount" 
parameterType="java.util.Map" resultType="java.lang.Integer">
+        select
+        count(1)
+        from event_api_destination
+        <where>
+            <if test="accountId != null and accountId != ''">account_id = 
#{accountId}</if>
+            <if test="name != null and name != ''">and name like 
concat('%',#{name},'%')</if>
+            <if test="connectionName != null and connectionName != ''">and 
connection_name = #{connectionName}</if>
+        </where>
+    </select>
     <select id="queryApiDestinationByConnectionName" 
resultMap="ResultMapWithBLOBs" parameterType="java.util.Map">
         select
         <include refid="Base_Column_List"/>
diff --git 
a/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml 
b/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
index cfac191..12e5fa5 100644
--- a/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
+++ b/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
@@ -270,6 +270,15 @@
             <if test="accountId != null and accountId != ''">account_id = 
#{accountId}</if>
         </where>
     </select>
+    <select id="getConnectionByAccountIdAndNameCount" 
parameterType="java.util.Map" resultType="java.lang.Integer">
+        select
+        count(1)
+        from event_connection
+        <where>
+            <if test="accountId != null and accountId != ''">account_id = 
#{accountId}</if>
+            <if test="name != null and name != ''">and name like 
concat('%',#{name},'%')</if>
+        </where>
+    </select>
     <update id="updateByPrimaryKeyWithBLOBs"
             
parameterType="org.apache.rocketmq.eventbridge.adapter.persistence.connect.mybatis.dataobject.ConnectionDO">
         <!--
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 94f2931..19968fd 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
@@ -123,13 +123,18 @@ public class ApiDestinationService extends 
AbstractResourceService {
                                                                          
Integer maxResults) {
         final List<ApiDestinationDTO> apiDestinationDTOS = 
apiDestinationRepository.listApiDestinations(accountId, apiDestinationName, 
connectionName, nextToken, maxResults);
         PaginationResult<List<ApiDestinationDTO>> result = new 
PaginationResult();
+        int apiDestinationCount = this.getApiDestinationCount(accountId, 
apiDestinationName, connectionName);
         result.setData(apiDestinationDTOS);
-        result.setTotal(this.getApiDestinationCount(accountId));
-        
result.setNextToken(NextTokenUtil.findNextToken(this.getApiDestinationCount(accountId),
 Integer.parseInt(nextToken), maxResults));
+        result.setTotal(apiDestinationCount);
+        result.setNextToken(NextTokenUtil.findNextToken(apiDestinationCount, 
Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
     private int getApiDestinationCount(String accountId) {
         return apiDestinationRepository.getApiDestinationCount(accountId);
     }
+
+    private int getApiDestinationCount(String accountId, String 
apiDestinationName, String connectionName) {
+        return apiDestinationRepository.getApiDestinationCount(accountId, 
apiDestinationName, connectionName);
+    }
 }
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
index 86d317b..cd44e0a 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionService.java
@@ -33,9 +33,12 @@ import 
org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.ApiKeyAuthParameters;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.AuthParameters;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.BasicAuthParameters;
+import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.BodyParameter;
+import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.HeaderParameter;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.NetworkParameters;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.OAuthHttpParameters;
 import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.OAuthParameters;
+import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.QueryStringParameter;
 import org.apache.rocketmq.eventbridge.domain.model.quota.QuotaService;
 import 
org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
 import org.apache.rocketmq.eventbridge.domain.repository.ConnectionRepository;
@@ -104,14 +107,6 @@ public class ConnectionService extends 
AbstractResourceService {
         }
     }
 
-    private void updateCheckAuthParameters(AuthParameters authParameters) {
-        if (authParameters != null) {
-            updateCheckBasicAuthParameters(authParameters);
-            updateCheckApiKeyAuthParameters(authParameters);
-            checkOAuthParameters(authParameters);
-        }
-    }
-
     private void checkOAuthParameters(AuthParameters authParameters) {
         OAuthParameters oauthParameters = authParameters.getOauthParameters();
         if 
(AuthorizationTypeEnum.OAUTH_AUTH.getType().equals(authParameters.getAuthorizationType())
 && oauthParameters == null) {
@@ -137,6 +132,18 @@ public class ConnectionService extends 
AbstractResourceService {
                     throw new 
EventBridgeException(EventBridgeErrorCode.ClientSecretLengthExceed);
                 }
             }
+            OAuthHttpParameters oauthHttpParameters = 
oauthParameters.getOauthHttpParameters();
+            if (oauthHttpParameters == null) {
+                throw new 
EventBridgeException(EventBridgeErrorCode.OauthHttpParametersEmpty);
+            }
+            List<BodyParameter> bodyParameters = 
oauthHttpParameters.getBodyParameters();
+            List<QueryStringParameter> queryStringParameters = 
oauthHttpParameters.getQueryStringParameters();
+            List<HeaderParameter> headerParameters = 
oauthHttpParameters.getHeaderParameters();
+            if (CollectionUtils.isEmpty(bodyParameters)
+                    && CollectionUtils.isEmpty(queryStringParameters)
+                    && CollectionUtils.isEmpty(headerParameters)) {
+                throw new 
EventBridgeException(EventBridgeErrorCode.OauthHttpParametersEmpty);
+            }
         }
     }
 
@@ -160,24 +167,6 @@ public class ConnectionService extends 
AbstractResourceService {
         }
     }
 
-    private void updateCheckApiKeyAuthParameters(AuthParameters 
authParameters) {
-        ApiKeyAuthParameters apiKeyAuthParameters = 
authParameters.getApiKeyAuthParameters();
-        if (apiKeyAuthParameters != null && 
AuthorizationTypeEnum.API_KEY_AUTH.getType().equals(authParameters.getAuthorizationType()))
 {
-            String apiKeyName = apiKeyAuthParameters.getApiKeyName();
-            String apiKeyValue = apiKeyAuthParameters.getApiKeyValue();
-            if (StringUtils.isNotBlank(apiKeyName)
-                    && (apiKeyName.length() > 
EventBridgeConstants.MAX_LENGTH_CONSTANT
-                    || apiKeyName.length() < 
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
-                throw new 
EventBridgeException(EventBridgeErrorCode.ApiKeyNameLengthExceed);
-            }
-            if (StringUtils.isNotBlank(apiKeyValue)
-                    && (apiKeyValue.length() > 
EventBridgeConstants.MAX_LENGTH_CONSTANT
-                    || apiKeyValue.length() < 
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
-                throw new 
EventBridgeException(EventBridgeErrorCode.ApiKeyValueLengthExceed);
-            }
-        }
-    }
-
     private void checkBasicAuthParameters(AuthParameters authParameters) {
         BasicAuthParameters basicAuthParameters = 
authParameters.getBasicAuthParameters();
         if 
(AuthorizationTypeEnum.BASIC_AUTH.getType().equals(authParameters.getAuthorizationType())
 && basicAuthParameters == null) {
@@ -198,24 +187,6 @@ public class ConnectionService extends 
AbstractResourceService {
         }
     }
 
-    private void updateCheckBasicAuthParameters(AuthParameters authParameters) 
{
-        BasicAuthParameters basicAuthParameters = 
authParameters.getBasicAuthParameters();
-        if 
(AuthorizationTypeEnum.BASIC_AUTH.getType().equals(authParameters.getAuthorizationType())
 && basicAuthParameters != null) {
-            String username = basicAuthParameters.getUsername();
-            String password = basicAuthParameters.getPassword();
-            if (StringUtils.isNotBlank(username) &&
-                    (username.length() > 
EventBridgeConstants.MAX_LENGTH_CONSTANT
-                            || username.length() < 
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
-                throw new 
EventBridgeException(EventBridgeErrorCode.BasicUserNameLengthExceed);
-            }
-            if (StringUtils.isNotBlank(password)
-                    && (password.length() > 
EventBridgeConstants.MAX_LENGTH_CONSTANT
-                    || password.length() < 
EventBridgeConstants.MIN_LENGTH_CONSTANT)) {
-                throw new 
EventBridgeException(EventBridgeErrorCode.BasicPassWordLengthExceed);
-            }
-        }
-    }
-
     @Transactional(rollbackFor = Exception.class, propagation = 
Propagation.REQUIRED)
     public void deleteConnection(String accountId, String connectionName) {
         if (CollectionUtils.isEmpty(checkConnection(accountId, 
connectionName))) {
@@ -248,7 +219,7 @@ public class ConnectionService extends 
AbstractResourceService {
             
secretManagerAPI.deleteSecretName(secretManagerAPI.getSecretName(accountId, 
oldConnection.getConnectionName()));
         }
         if (connectionDTO.getAuthParameters() != null) {
-            updateCheckAuthParameters(connectionDTO.getAuthParameters());
+            checkAuthParameters(connectionDTO.getAuthParameters());
             
connectionDTO.setAuthParameters(updateSecretData(connectionDTO.getAuthParameters(),
 accountId, connectionDTO.getConnectionName(), oldConnection));
         }
 
@@ -278,9 +249,10 @@ public class ConnectionService extends 
AbstractResourceService {
     public PaginationResult<List<ConnectionDTO>> listConnections(String 
accountId, String connectionName, String nextToken, Integer maxResults) {
         List<ConnectionDTO> connectionDTOS = 
connectionRepository.listConnections(accountId, connectionName, nextToken, 
maxResults);
         PaginationResult<List<ConnectionDTO>> result = new PaginationResult();
+        int connectionCount = this.getConnectionCount(accountId, 
connectionName);
         result.setData(connectionDTOS);
-        result.setTotal(this.getConnectionCount(accountId));
-        
result.setNextToken(NextTokenUtil.findNextToken(this.getConnectionCount(accountId),
 Integer.parseInt(nextToken), maxResults));
+        result.setTotal(connectionCount);
+        result.setNextToken(NextTokenUtil.findNextToken(connectionCount, 
Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
@@ -288,6 +260,10 @@ public class ConnectionService extends 
AbstractResourceService {
         return connectionRepository.getConnectionCount(accountId);
     }
 
+    public int getConnectionCount(String accountId, String connectionName) {
+        return connectionRepository.getConnectionCount(accountId, 
connectionName);
+    }
+
     private AuthParameters setSecretData(AuthParameters authParameters, String 
accountId, String connectionName) {
         final BasicAuthParameters basicAuthParameters = 
authParameters.getBasicAuthParameters();
         final ApiKeyAuthParameters apiKeyAuthParameters = 
authParameters.getApiKeyAuthParameters();
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ApiDestinationRepository.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ApiDestinationRepository.java
index ee52622..af177dc 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ApiDestinationRepository.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ApiDestinationRepository.java
@@ -35,5 +35,7 @@ public interface ApiDestinationRepository {
 
     int getApiDestinationCount(String accountId);
 
+    int getApiDestinationCount(String accountId, String apiDestinationName, 
String connectionName);
+
     List<ApiDestinationDTO> queryApiDestinationByConnectionName(String 
accountId, String connectionName);
 }
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ConnectionRepository.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ConnectionRepository.java
index 575199b..711818b 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ConnectionRepository.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/repository/ConnectionRepository.java
@@ -35,6 +35,8 @@ public interface ConnectionRepository {
 
     int getConnectionCount(String accountId);
 
+    int getConnectionCount(String accountId, String connectionName);
+
     ConnectionDTO getConnectionById(Integer id);
 
     ConnectionDTO getConnectionByNameAccountId(String name, String accountId);
diff --git 
a/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ApiDestinationServiceTest.java
 
b/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ApiDestinationServiceTest.java
index e1fd234..eb4c9ca 100644
--- 
a/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ApiDestinationServiceTest.java
+++ 
b/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ApiDestinationServiceTest.java
@@ -20,10 +20,14 @@ package org.apache.rocketmq.eventbridge.domain.service;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
+
+import com.google.common.collect.Lists;
 import org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import 
org.apache.rocketmq.eventbridge.domain.model.apidestination.ApiDestinationDTO;
 import 
org.apache.rocketmq.eventbridge.domain.model.apidestination.ApiDestinationService;
 import 
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
+import org.apache.rocketmq.eventbridge.domain.model.connection.ConnectionDTO;
+import 
org.apache.rocketmq.eventbridge.domain.model.connection.ConnectionService;
 import org.apache.rocketmq.eventbridge.domain.model.quota.QuotaService;
 import 
org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
 import org.junit.Assert;
@@ -47,6 +51,8 @@ public class ApiDestinationServiceTest {
     private ApiDestinationRepository apiDestinationRepository;
     @Mock
     private QuotaService quotaService;
+    @Mock
+    private ConnectionService connectionService;
 
     @Before
     public void testBefore() {
@@ -58,6 +64,9 @@ public class ApiDestinationServiceTest {
         
Mockito.when(apiDestinationRepository.getApiDestinationCount(any())).thenReturn(8);
         Mockito.when(apiDestinationRepository.listApiDestinations(any(), 
any(), any(), any(), anyInt())).thenReturn(new ArrayList<>());
         Mockito.when(quotaService.getTotalQuota(any(), any())).thenReturn(10);
+        List<ConnectionDTO> connectionDTOS = Lists.newArrayList();
+        connectionDTOS.add(new ConnectionDTO());
+        Mockito.when(connectionService.getConnection(any(), 
any())).thenReturn(connectionDTOS);
     }
 
     @Test
diff --git 
a/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ConnectionServiceTest.java
 
b/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ConnectionServiceTest.java
index f28017f..214376d 100644
--- 
a/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ConnectionServiceTest.java
+++ 
b/domain/src/test/java/org/apache/rocketmq/eventbridge/domain/service/ConnectionServiceTest.java
@@ -67,7 +67,7 @@ public class ConnectionServiceTest {
     public void testBefore() throws Exception {
         
Mockito.when(connectionRepository.createConnection(any())).thenReturn(Boolean.TRUE);
         Mockito.when(connectionRepository.listConnections(anyString(), 
anyString(), anyString(), anyInt())).thenReturn(new ArrayList<>());
-        
Mockito.when(connectionRepository.getConnectionCount(any())).thenReturn(8);
+        Mockito.when(connectionRepository.getConnectionCount(any(), 
any())).thenReturn(8);
         ConnectionDTO connectionDTO = new ConnectionDTO();
         connectionDTO.setConnectionName(UUID.randomUUID().toString());
         NetworkParameters networkParameters = new NetworkParameters();

Reply via email to