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 101a138  Fix next token and update list api param (#64)
101a138 is described below

commit 101a1386f958a5a72d1f92f0e593f32d47e80fcc
Author: zhaohai <[email protected]>
AuthorDate: Tue Mar 28 15:58:07 2023 +0800

    Fix next token and update list api param (#64)
    
    add private network param check
---
 .../api/controller/ApiDestinationController.java   |  3 +-
 .../api/controller/ConnectionController.java       |  3 --
 .../apidestination/ListApiDestinationsRequest.java |  4 +++
 .../api/dto/connection/ConnectionResponse.java     |  3 --
 .../ApiDestinationDTOControllerTest.java           |  2 +-
 .../mybatis/mapper/EventApiDestinationMapper.java  |  2 +-
 .../MybatisApiDestinationRepository.java           |  4 +--
 .../mybatis/converter/ConnectConverter.java        |  1 -
 .../connect/mybatis/dataobject/ConnectionDO.java   |  2 --
 .../mybatis/EventApiDestinationMapper.xml          |  3 +-
 .../resources/mybatis/EventConnectionMapper.xml    |  8 ++---
 .../rocketmq/eventbridge/tools/NextTokenUtil.java  | 37 ++++++----------------
 .../apidestination/ApiDestinationService.java      |  7 ++--
 .../domain/model/bus/EventBusService.java          |  3 +-
 .../domain/model/connection/ConnectionDTO.java     |  2 --
 .../domain/model/connection/ConnectionService.java |  5 +--
 .../domain/model/rule/EventRuleService.java        |  3 +-
 .../domain/model/source/EventSourceService.java    |  3 +-
 .../domain/model/source/EventTypeService.java      |  3 +-
 .../repository/ApiDestinationRepository.java       |  2 +-
 .../domain/service/ApiDestinationServiceTest.java  | 13 ++++++--
 21 files changed, 50 insertions(+), 63 deletions(-)

diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
index 0f99001..d0164bd 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationController.java
@@ -171,7 +171,8 @@ public class ApiDestinationController {
                 listApiDestinationsRequest.checkMaxResultsAndNextToken();
                 final PaginationResult<List<ApiDestinationDTO>> 
listPaginationResult
                     = 
apiDestinationService.listApiDestinations(accountAPI.getResourceOwnerAccountId(ctx),
-                    listApiDestinationsRequest.getApiDestinationNamePrefix(), 
listApiDestinationsRequest.getNextToken(),
+                    listApiDestinationsRequest.getApiDestinationNamePrefix(),
+                        listApiDestinationsRequest.getConnectionNamePrefix(), 
listApiDestinationsRequest.getNextToken(),
                     listApiDestinationsRequest.getMaxResults());
                 List<ApiDestinationsResponse> apiDestinationsResponses = 
Lists.newArrayList();
                 listPaginationResult.getData()
diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
index e08fb49..b9be923 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ConnectionController.java
@@ -147,7 +147,6 @@ public class ConnectionController {
                     ConnectionResponse connectionResponse = new 
ConnectionResponse();
                     BeanUtils.copyProperties(connectionDTO, 
connectionResponse);
                     
connectionResponse.setGmtCreate(connectionDTO.getGmtCreate().getTime());
-                    
connectionResponse.setApiDestinationName(connectionDTO.getApiDestinationName());
                     connectionResponse.setId(connectionDTO.getId());
                     connectionResponses.add(dataMasking(connectionResponse));
                 });
@@ -171,7 +170,6 @@ public class ConnectionController {
                     ConnectionResponse connectionResponse = new 
ConnectionResponse();
                     BeanUtils.copyProperties(connectionDTO, 
connectionResponse);
                     
connectionResponse.setGmtCreate(connectionDTO.getGmtCreate().getTime());
-                    
connectionResponse.setApiDestinationName(connectionDTO.getApiDestinationName());
                     connectionResponse.setId(connectionDTO.getId());
                     connectionResponses.add(connectionResponse);
                 });
@@ -202,7 +200,6 @@ public class ConnectionController {
                         ConnectionResponse connectionResponse = new 
ConnectionResponse();
                         BeanUtils.copyProperties(connectionDTO, 
connectionResponse);
                         
connectionResponse.setGmtCreate(connectionDTO.getGmtCreate().getTime());
-                        
connectionResponse.setApiDestinationName(connectionDTO.getApiDestinationName());
                         connectionResponse.setId(connectionDTO.getId());
                         
connectionResponses.add(dataMasking(connectionResponse));
                     });
diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
index a2a9a7d..a6b48de 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/apidestination/ListApiDestinationsRequest.java
@@ -33,6 +33,10 @@ public class ListApiDestinationsRequest extends BaseResponse 
{
     @SerializedName("ApiDestinationNamePrefix")
     private String apiDestinationNamePrefix;
 
+    @SerializedName("ConnectionNamePrefix")
+    private String connectionNamePrefix;
+
+
     @Min(value = 0, message = "The limit size of page is invalid, which must 
greater than 0 and less than [{0}].")
     @SerializedName("MaxResults")
     private Integer maxResults;
diff --git 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ConnectionResponse.java
 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ConnectionResponse.java
index 6d34fd3..2642b81 100644
--- 
a/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ConnectionResponse.java
+++ 
b/adapter/api/src/main/java/org/apache/rocketmq/eventbridge/adapter/api/dto/connection/ConnectionResponse.java
@@ -45,9 +45,6 @@ public class ConnectionResponse extends BaseDTO {
     @SerializedName("GmtCreate")
     private Long gmtCreate;
 
-    @SerializedName("ApiDestinationName")
-    private String apiDestinationName;
-
     @SerializedName("Id")
     private Integer id;
 
diff --git 
a/adapter/api/src/test/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationDTOControllerTest.java
 
b/adapter/api/src/test/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationDTOControllerTest.java
index bdfc870..f8a3b98 100644
--- 
a/adapter/api/src/test/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationDTOControllerTest.java
+++ 
b/adapter/api/src/test/java/org/apache/rocketmq/eventbridge/adapter/api/controller/ApiDestinationDTOControllerTest.java
@@ -172,7 +172,7 @@ public class ApiDestinationDTOControllerTest {
         result.setData(apiDestinationDTOList);
         result.setTotal(9);
         result.setNextToken("0");
-        Mockito.when(apiDestinationService.listApiDestinations(any(), any(), 
any(), anyInt()))
+        Mockito.when(apiDestinationService.listApiDestinations(any(), any(), 
any(), any(), anyInt()))
             .thenReturn(result);
         ListApiDestinationsRequest listApiDestinationsRequest = new 
ListApiDestinationsRequest();
         
listApiDestinationsRequest.setApiDestinationNamePrefix(UUID.randomUUID()
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 6b55b4e..7dff8e9 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
@@ -62,7 +62,7 @@ public interface EventApiDestinationMapper {
      * @mbggenerated
      */
     List<ApiDestinationDO> listApiDestinations(@Param("accountId") String 
accountId, @Param("name") String name,
-        @Param("nextToken") int nextToken, @Param("maxResults") int 
maxResults);
+                                               @Param("connectionName") String 
connectionName, @Param("nextToken") int nextToken, @Param("maxResults") int 
maxResults);
 
     /**
      * Select by account and name
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 bc189ab..129d754 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
@@ -62,9 +62,9 @@ public class MybatisApiDestinationRepository implements 
ApiDestinationRepository
     }
 
     @Override
-    public List<ApiDestinationDTO> listApiDestinations(String accountId, 
String apiDestinationName, String nextToken,
+    public List<ApiDestinationDTO> listApiDestinations(String accountId, 
String apiDestinationName, String connectionName, String nextToken,
         int maxResults) {
-        return 
ApiDestinationConverter.doListCoverterDtoList(eventApiDestinationMapper.listApiDestinations(accountId,
 apiDestinationName, Integer.parseInt(nextToken), maxResults));
+        return 
ApiDestinationConverter.doListCoverterDtoList(eventApiDestinationMapper.listApiDestinations(accountId,
 apiDestinationName, connectionName, Integer.parseInt(nextToken), maxResults));
     }
 
     @Override
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/converter/ConnectConverter.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/converter/ConnectConverter.java
index ed6c0c2..57731b1 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/converter/ConnectConverter.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/converter/ConnectConverter.java
@@ -40,7 +40,6 @@ public class ConnectConverter {
         connectionDTO.setNetworkParameters(new 
Gson().fromJson(connectionDO.getNetworkParameters(), NetworkParameters.class));
         connectionDTO.setGmtCreate(connectionDO.getGmtCreate());
         connectionDTO.setId(connectionDO.getId());
-        
connectionDTO.setApiDestinationName(connectionDO.getApiDestinationName());
         return connectionDTO;
     }
 
diff --git 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/dataobject/ConnectionDO.java
 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/dataobject/ConnectionDO.java
index 6659e72..c0f9344 100644
--- 
a/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/dataobject/ConnectionDO.java
+++ 
b/adapter/persistence/src/main/java/org/apache/rocketmq/eventbridge/adapter/persistence/connect/mybatis/dataobject/ConnectionDO.java
@@ -108,7 +108,5 @@ public class ConnectionDO implements Serializable {
      */
     private Date gmtModify;
 
-    private String apiDestinationName;
-
     private Integer id;
 }
diff --git 
a/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml 
b/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
index 25b17ea..e403654 100644
--- 
a/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
+++ 
b/adapter/persistence/src/main/resources/mybatis/EventApiDestinationMapper.xml
@@ -63,7 +63,7 @@
         from event_api_destination
         where id = #{id,jdbcType=INTEGER}
     </select>
-    <select id="listApiDestinations" resultMap="ResultMapWithBLOBs" 
parameterType="java.lang.Integer">
+    <select id="listApiDestinations" resultMap="ResultMapWithBLOBs" 
parameterType="java.util.Map">
         select
         <include refid="Base_Column_List"/>
         ,
@@ -72,6 +72,7 @@
         <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 like concat('%',#{connectionName},'%')</if>
         </where>
         order by gmt_modify desc LIMIT #{nextToken} , #{maxResults}
     </select>
diff --git 
a/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml 
b/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
index 604a065..cfac191 100644
--- a/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
+++ b/adapter/persistence/src/main/resources/mybatis/EventConnectionMapper.xml
@@ -82,10 +82,8 @@
         select
         ec.id, ec.account_id, ec.name, ec.authorization_type, ec.network_type, 
ec.description, ec.gmt_create,
         ec.gmt_modify,
-        ec.auth_parameters, ec.network_parameters, ead.name as 
apiDestinationName
+        ec.auth_parameters, ec.network_parameters
         from event_connection ec
-        left join event_api_destination ead
-        on ec.name = ead.connection_name
         <where>
             <if test="accountId != null and accountId != ''">ec.account_id = 
#{accountId}</if>
             <if test="name != null and name != ''">and ec.name like 
concat('%',#{name},'%')</if>
@@ -96,10 +94,8 @@
         select
         ec.id, ec.account_id, ec.name, ec.authorization_type, ec.network_type, 
ec.description, ec.gmt_create,
         ec.gmt_modify,
-        ec.auth_parameters, ec.network_parameters, ead.name as 
apiDestinationName
+        ec.auth_parameters, ec.network_parameters
         from event_connection ec
-        left join event_api_destination ead
-        on ec.name = ead.connection_name
         <where>
             <if test="accountId != null and accountId != ''">ec.account_id = 
#{accountId}</if>
             <if test="name != null and name != ''">and ec.name = 
#{name,jdbcType=VARCHAR}</if>
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
 b/common/src/main/java/org/apache/rocketmq/eventbridge/tools/NextTokenUtil.java
similarity index 50%
copy from 
domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
copy to 
common/src/main/java/org/apache/rocketmq/eventbridge/tools/NextTokenUtil.java
index 7875879..804cc5e 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
+++ 
b/common/src/main/java/org/apache/rocketmq/eventbridge/tools/NextTokenUtil.java
@@ -15,34 +15,15 @@
  * limitations under the License.
  */
 
-package org.apache.rocketmq.eventbridge.domain.model.connection;
+package org.apache.rocketmq.eventbridge.tools;
 
-import java.io.Serializable;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.AuthParameters;
-import 
org.apache.rocketmq.eventbridge.domain.model.connection.parameter.NetworkParameters;
+public class NextTokenUtil {
 
-@Getter
-@Setter
-@ToString
-public class ConnectionDTO implements Serializable {
-
-    private static final long serialVersionUID = 7351924623576926203L;
-    private Integer id;
-    private String accountId;
-
-    private String connectionName;
-
-    private String description;
-
-    private NetworkParameters networkParameters;
-
-    private AuthParameters authParameters;
-
-    private Date gmtCreate;
-
-    private String apiDestinationName;
+    public static String findNextToken(int totalSize, int skipIdx, int limit) {
+        if (skipIdx + limit < totalSize) {
+            return String.valueOf(skipIdx + limit);
+        } else {
+            return null;
+        }
+    }
 }
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 19fad7f..9b87181 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
@@ -28,6 +28,7 @@ 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;
 import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -108,13 +109,13 @@ public class ApiDestinationService extends 
AbstractResourceService {
         return apiDestinationRepository.deleteApiDestination(accountId, 
apiDestinationName);
     }
 
-    public PaginationResult<List<ApiDestinationDTO>> 
listApiDestinations(String accountId, String apiDestinationName, String 
nextToken,
+    public PaginationResult<List<ApiDestinationDTO>> 
listApiDestinations(String accountId, String apiDestinationName, String 
connectionName, String nextToken,
                                                                          
Integer maxResults) {
-        final List<ApiDestinationDTO> apiDestinationDTOS = 
apiDestinationRepository.listApiDestinations(accountId, apiDestinationName, 
nextToken, maxResults);
+        final List<ApiDestinationDTO> apiDestinationDTOS = 
apiDestinationRepository.listApiDestinations(accountId, apiDestinationName, 
connectionName, nextToken, maxResults);
         PaginationResult<List<ApiDestinationDTO>> result = new 
PaginationResult();
         result.setData(apiDestinationDTOS);
         result.setTotal(this.getApiDestinationCount(accountId));
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        
result.setNextToken(NextTokenUtil.findNextToken(this.getApiDestinationCount(accountId),
 Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/bus/EventBusService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/bus/EventBusService.java
index eadea4f..56c0a32 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/bus/EventBusService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/bus/EventBusService.java
@@ -23,6 +23,7 @@ import 
org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import org.apache.rocketmq.eventbridge.domain.repository.EventBusRepository;
 import org.apache.rocketmq.eventbridge.domain.repository.EventDataRepository;
 import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -84,7 +85,7 @@ public class EventBusService extends AbstractResourceService {
         PaginationResult<List<EventBus>> result = new PaginationResult();
         result.setData(eventBuses);
         result.setTotal(total);
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        result.setNextToken(NextTokenUtil.findNextToken(total, 
Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
index 7875879..4bb08ec 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/connection/ConnectionDTO.java
@@ -43,6 +43,4 @@ public class ConnectionDTO implements Serializable {
     private AuthParameters authParameters;
 
     private Date gmtCreate;
-
-    private String apiDestinationName;
 }
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 54aae47..86d317b 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
@@ -42,6 +42,7 @@ import 
org.apache.rocketmq.eventbridge.domain.repository.ConnectionRepository;
 import org.apache.rocketmq.eventbridge.domain.rpc.NetworkServiceAPI;
 import org.apache.rocketmq.eventbridge.domain.rpc.SecretManagerAPI;
 import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
@@ -264,7 +265,7 @@ public class ConnectionService extends 
AbstractResourceService {
 
     public List<ConnectionDTO> getConnection(String accountId, String 
connectionName) {
         final List<ConnectionDTO> connectionDTO = 
connectionRepository.getConnection(accountId, connectionName);
-        if (connectionDTO == null) {
+        if (CollectionUtils.isEmpty(connectionDTO)) {
             throw new 
EventBridgeException(EventBridgeErrorCode.ConnectionNotExist, connectionName);
         }
         return connectionDTO;
@@ -279,7 +280,7 @@ public class ConnectionService extends 
AbstractResourceService {
         PaginationResult<List<ConnectionDTO>> result = new PaginationResult();
         result.setData(connectionDTOS);
         result.setTotal(this.getConnectionCount(accountId));
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        
result.setNextToken(NextTokenUtil.findNextToken(this.getConnectionCount(accountId),
 Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/rule/EventRuleService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/rule/EventRuleService.java
index c6017fc..0fa52db 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/rule/EventRuleService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/rule/EventRuleService.java
@@ -24,6 +24,7 @@ import 
org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import org.apache.rocketmq.eventbridge.domain.model.bus.EventBusService;
 import org.apache.rocketmq.eventbridge.domain.repository.EventRuleRepository;
 import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.apache.rocketmq.eventbridge.tools.pattern.PatternEvaluatorBuilder;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
@@ -103,7 +104,7 @@ public class EventRuleService extends 
AbstractResourceService {
         PaginationResult<List<EventRule>> result = new PaginationResult();
         result.setData(eventRules);
         result.setTotal(this.getEventRulesCount(accountId, eventBusName));
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        
result.setNextToken(NextTokenUtil.findNextToken(this.getEventRulesCount(accountId,
 eventBusName), Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventSourceService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventSourceService.java
index 465dcfd..fea663a 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventSourceService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventSourceService.java
@@ -26,6 +26,7 @@ import 
org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import org.apache.rocketmq.eventbridge.domain.model.bus.EventBusService;
 import org.apache.rocketmq.eventbridge.domain.repository.EventSourceRepository;
 import org.apache.rocketmq.eventbridge.exception.EventBridgeException;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -104,7 +105,7 @@ public class EventSourceService extends 
AbstractResourceService {
         PaginationResult<List<EventSource>> result = new PaginationResult();
         result.setData(eventSources);
         result.setTotal(this.getEventSourceCount(accountId, eventBusName));
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        
result.setNextToken(NextTokenUtil.findNextToken(this.getEventSourceCount(accountId,
 eventBusName), Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventTypeService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventTypeService.java
index 0fc585f..e751d02 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventTypeService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/source/EventTypeService.java
@@ -19,6 +19,7 @@ package org.apache.rocketmq.eventbridge.domain.model.source;
 import java.util.List;
 import org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
 import org.apache.rocketmq.eventbridge.domain.repository.EventTypeRepository;
+import org.apache.rocketmq.eventbridge.tools.NextTokenUtil;
 import org.springframework.stereotype.Service;
 
 @Service
@@ -40,7 +41,7 @@ public class EventTypeService {
         PaginationResult<List<EventType>> result = new PaginationResult();
         result.setData(pageResult);
         result.setTotal(this.getEventTypeCount(accountId, eventBusName, 
eventSourceName));
-        result.setNextToken(String.valueOf(Integer.parseInt(nextToken) + 
maxResults));
+        
result.setNextToken(NextTokenUtil.findNextToken(this.getEventTypeCount(accountId,
 eventBusName, eventSourceName), Integer.parseInt(nextToken), maxResults));
         return result;
     }
 
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 f265340..ee52622 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
@@ -30,7 +30,7 @@ public interface ApiDestinationRepository {
 
     Boolean deleteApiDestination(String accountId, String apiDestinationName);
 
-    List<ApiDestinationDTO> listApiDestinations(String accountId, String 
apiDestinationName, String nextToken,
+    List<ApiDestinationDTO> listApiDestinations(String accountId, String 
apiDestinationName, String connectionName, String nextToken,
         int maxResults);
 
     int getApiDestinationCount(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 22918cc..e1fd234 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
@@ -23,6 +23,7 @@ import java.util.UUID;
 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.quota.QuotaService;
 import 
org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
 import org.junit.Assert;
@@ -55,7 +56,7 @@ public class ApiDestinationServiceTest {
         ApiDestinationDTO apiDestinationDTO = new ApiDestinationDTO();
         apiDestinationDTO.setName(UUID.randomUUID().toString());
         
Mockito.when(apiDestinationRepository.getApiDestinationCount(any())).thenReturn(8);
-        Mockito.when(apiDestinationRepository.listApiDestinations(any(), 
any(), any(), anyInt())).thenReturn(new ArrayList<>());
+        Mockito.when(apiDestinationRepository.listApiDestinations(any(), 
any(), any(), any(), anyInt())).thenReturn(new ArrayList<>());
         Mockito.when(quotaService.getTotalQuota(any(), any())).thenReturn(10);
     }
 
@@ -65,6 +66,10 @@ public class ApiDestinationServiceTest {
         ApiDestinationDTO eventApiDestinationDTO = new ApiDestinationDTO();
         eventApiDestinationDTO.setName(UUID.randomUUID().toString());
         eventApiDestinationDTO.setAccountId(UUID.randomUUID().toString());
+        HttpApiParameters httpApiParameters = new HttpApiParameters();
+        httpApiParameters.setMethod("POST");
+        httpApiParameters.setEndpoint("http://127.0.0.1:8001";);
+        eventApiDestinationDTO.setApiParams(httpApiParameters);
         final String apiDestination = 
apiDestinationService.createApiDestination(eventApiDestinationDTO);
         Assert.assertNotNull(apiDestination);
     }
@@ -75,6 +80,10 @@ public class ApiDestinationServiceTest {
         ApiDestinationDTO apiDestinationDTO = new ApiDestinationDTO();
         apiDestinationDTO.setName(UUID.randomUUID().toString());
         apiDestinationDTO.setAccountId(UUID.randomUUID().toString());
+        HttpApiParameters httpApiParameters = new HttpApiParameters();
+        httpApiParameters.setMethod("POST");
+        httpApiParameters.setEndpoint("http://127.0.0.1:8001";);
+        apiDestinationDTO.setApiParams(httpApiParameters);
         final Boolean aBoolean = 
apiDestinationService.updateApiDestination(apiDestinationDTO);
         Assert.assertTrue(aBoolean);
     }
@@ -95,7 +104,7 @@ public class ApiDestinationServiceTest {
 
     @Test
     public void testListApiDestinations() {
-        final PaginationResult<List<ApiDestinationDTO>> listPaginationResult = 
apiDestinationService.listApiDestinations(UUID.randomUUID().toString(), 
UUID.randomUUID().toString(), "0", 10);
+        final PaginationResult<List<ApiDestinationDTO>> listPaginationResult = 
apiDestinationService.listApiDestinations(UUID.randomUUID().toString(), 
UUID.randomUUID().toString(), UUID.randomUUID().toString(), "0", 10);
         Assert.assertNotNull(listPaginationResult.getData());
     }
 }

Reply via email to