ClustersController.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.provectus.kafka.ui.controller;
  2. import com.provectus.kafka.ui.api.ClustersApi;
  3. import com.provectus.kafka.ui.model.Cluster;
  4. import com.provectus.kafka.ui.model.ClusterMetrics;
  5. import com.provectus.kafka.ui.model.ClusterStats;
  6. import com.provectus.kafka.ui.service.ClusterService;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.log4j.Log4j2;
  9. import org.springframework.http.ResponseEntity;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import org.springframework.web.server.ServerWebExchange;
  12. import reactor.core.publisher.Flux;
  13. import reactor.core.publisher.Mono;
  14. @RestController
  15. @RequiredArgsConstructor
  16. @Log4j2
  17. public class ClustersController implements ClustersApi {
  18. private final ClusterService clusterService;
  19. @Override
  20. public Mono<ResponseEntity<ClusterMetrics>> getClusterMetrics(String clusterName,
  21. ServerWebExchange exchange) {
  22. return clusterService.getClusterMetrics(clusterName)
  23. .map(ResponseEntity::ok)
  24. .onErrorReturn(ResponseEntity.notFound().build());
  25. }
  26. @Override
  27. public Mono<ResponseEntity<ClusterStats>> getClusterStats(String clusterName,
  28. ServerWebExchange exchange) {
  29. return clusterService.getClusterStats(clusterName)
  30. .map(ResponseEntity::ok)
  31. .onErrorReturn(ResponseEntity.notFound().build());
  32. }
  33. @Override
  34. public Mono<ResponseEntity<Flux<Cluster>>> getClusters(ServerWebExchange exchange) {
  35. return Mono.just(ResponseEntity.ok(Flux.fromIterable(clusterService.getClusters())));
  36. }
  37. @Override
  38. public Mono<ResponseEntity<Cluster>> updateClusterInfo(String clusterName,
  39. ServerWebExchange exchange) {
  40. return clusterService.updateCluster(clusterName).map(ResponseEntity::ok);
  41. }
  42. }