From 774c0a75b2364965971a8ab2a05a609265bd9a23 Mon Sep 17 00:00:00 2001 From: Ramazan Yapparov Date: Mon, 15 Mar 2021 19:35:23 +0300 Subject: [PATCH] - fixed merge conflicts - renamed pageSize to perPage --- .../kafka/ui/controller/TopicsController.java | 13 ++++++------- .../provectus/kafka/ui/service/ClusterService.java | 10 +++++----- .../kafka/ui/service/ClusterServiceTest.java | 14 ++++---------- .../src/main/resources/swagger/kafka-ui-api.yaml | 2 +- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/controller/TopicsController.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/controller/TopicsController.java index f4a05fa1db..034ddd9011 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/controller/TopicsController.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/controller/TopicsController.java @@ -1,12 +1,8 @@ package com.provectus.kafka.ui.controller; import com.provectus.kafka.ui.api.TopicsApi; +import com.provectus.kafka.ui.model.*; import com.provectus.kafka.ui.service.ClusterService; -import com.provectus.kafka.ui.model.Topic; -import com.provectus.kafka.ui.model.TopicConfig; -import com.provectus.kafka.ui.model.TopicDetails; -import com.provectus.kafka.ui.model.TopicFormData; -import javax.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; import org.springframework.http.HttpStatus; @@ -16,6 +12,9 @@ import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import javax.validation.Valid; +import java.util.Optional; + @RestController @RequiredArgsConstructor @Log4j2 @@ -59,8 +58,8 @@ public class TopicsController implements TopicsApi { } @Override - public Mono>> getTopics(String clusterName, ServerWebExchange exchange) { - return Mono.just(ResponseEntity.ok(Flux.fromIterable(clusterService.getTopics(clusterName)))); + public Mono> getTopics(String clusterName, @Valid Integer page, @Valid Integer perPage, ServerWebExchange exchange) { + return Mono.just(ResponseEntity.ok(clusterService.getTopics(clusterName, Optional.ofNullable(page), Optional.ofNullable(perPage)))); } @Override diff --git a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ClusterService.java b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ClusterService.java index 690aa66227..cc49a6d2bc 100644 --- a/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ClusterService.java +++ b/kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/ClusterService.java @@ -64,19 +64,19 @@ public class ClusterService { } - public TopicsResponse getTopics(String name, Optional page, Optional nullablePageSize) { + public TopicsResponse getTopics(String name, Optional page, Optional nullablePerPage) { Predicate positiveInt = i -> i > 0; - int pageSize = nullablePageSize.filter(positiveInt).orElse(DEFAULT_PAGE_SIZE); - var topicsToSkip = (page.filter(positiveInt).orElse(1) - 1) * pageSize; + int perPage = nullablePerPage.filter(positiveInt).orElse(DEFAULT_PAGE_SIZE); + var topicsToSkip = (page.filter(positiveInt).orElse(1) - 1) * perPage; var cluster = clustersStorage.getClusterByName(name).orElseThrow(() -> new NotFoundException("No such cluster")); - var totalPages = (cluster.getTopics().size() / pageSize) + (cluster.getTopics().size() % pageSize == 0 ? 0 : 1); + var totalPages = (cluster.getTopics().size() / perPage) + (cluster.getTopics().size() % perPage == 0 ? 0 : 1); return new TopicsResponse() .pageCount(totalPages) .topics( cluster.getTopics().values().stream() .sorted(Comparator.comparing(InternalTopic::getName)) .skip(topicsToSkip) - .limit(pageSize) + .limit(perPage) .map(clusterMapper::toTopic) .collect(Collectors.toList()) ); diff --git a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/service/ClusterServiceTest.java b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/service/ClusterServiceTest.java index 97cc57f4f4..23643b4064 100644 --- a/kafka-ui-api/src/test/java/com/provectus/kafka/ui/service/ClusterServiceTest.java +++ b/kafka-ui-api/src/test/java/com/provectus/kafka/ui/service/ClusterServiceTest.java @@ -1,10 +1,8 @@ -package com.provectus.kafka.ui.cluster.service; +package com.provectus.kafka.ui.service; -import com.provectus.kafka.ui.cluster.mapper.ClusterMapper; -import com.provectus.kafka.ui.cluster.model.ClustersStorage; -import com.provectus.kafka.ui.cluster.model.InternalTopic; -import com.provectus.kafka.ui.cluster.model.KafkaCluster; -import com.provectus.kafka.ui.kafka.KafkaService; +import com.provectus.kafka.ui.mapper.ClusterMapper; +import com.provectus.kafka.ui.model.InternalTopic; +import com.provectus.kafka.ui.model.KafkaCluster; import com.provectus.kafka.ui.model.Topic; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -34,10 +32,6 @@ class ClusterServiceTest { private ClustersStorage clustersStorage; @Spy private final ClusterMapper clusterMapper = Mappers.getMapper(ClusterMapper.class); - @Mock - private KafkaService kafkaService; - @Mock - private ConsumingService consumingService; @Test public void shouldListFirst20Topics() { diff --git a/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml b/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml index 5458f197fc..80c34ce4c4 100644 --- a/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml +++ b/kafka-ui-contract/src/main/resources/swagger/kafka-ui-api.yaml @@ -135,7 +135,7 @@ paths: required: false schema: type: integer - - name: pageSize + - name: perPage in: query required: false schema: