AclsController.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.provectus.kafka.ui.controller;
  2. import com.provectus.kafka.ui.api.AclsApi;
  3. import com.provectus.kafka.ui.mapper.ClusterMapper;
  4. import com.provectus.kafka.ui.model.KafkaAclDTO;
  5. import com.provectus.kafka.ui.service.acl.AclsService;
  6. import lombok.RequiredArgsConstructor;
  7. import org.springframework.http.ResponseEntity;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import org.springframework.web.server.ServerWebExchange;
  10. import reactor.core.publisher.Flux;
  11. import reactor.core.publisher.Mono;
  12. @RestController
  13. @RequiredArgsConstructor
  14. public class AclsController extends AbstractController implements AclsApi {
  15. private final AclsService aclsService;
  16. @Override
  17. public Mono<ResponseEntity<Void>> createAcl(String clusterName, Mono<KafkaAclDTO> kafkaAclDto,
  18. ServerWebExchange exchange) {
  19. return kafkaAclDto.map(ClusterMapper::toAclBinding)
  20. .flatMap(binding -> aclsService.createAcl(getCluster(clusterName), binding))
  21. .thenReturn(ResponseEntity.ok().build());
  22. }
  23. @Override
  24. public Mono<ResponseEntity<Void>> deleteAcl(String clusterName, Mono<KafkaAclDTO> kafkaAclDto,
  25. ServerWebExchange exchange) {
  26. return kafkaAclDto.map(ClusterMapper::toAclBinding)
  27. .flatMap(binding -> aclsService.deleteAcl(getCluster(clusterName), binding))
  28. .thenReturn(ResponseEntity.ok().build());
  29. }
  30. @Override
  31. public Mono<ResponseEntity<Flux<KafkaAclDTO>>> listAcls(String clusterName, ServerWebExchange exchange) {
  32. return Mono.just(
  33. ResponseEntity.ok(
  34. aclsService.listAcls(getCluster(clusterName)).map(ClusterMapper::toKafkaAclDto)));
  35. }
  36. @Override
  37. public Mono<ResponseEntity<String>> getAclAsCsv(String clusterName, ServerWebExchange exchange) {
  38. return aclsService.getAclAsCsvString(getCluster(clusterName))
  39. .map(ResponseEntity::ok)
  40. .flatMap(Mono::just);
  41. }
  42. @Override
  43. public Mono<ResponseEntity<Void>> syncAclsCsv(String clusterName, Mono<String> csvMono, ServerWebExchange exchange) {
  44. return csvMono.flatMap(csv -> aclsService.syncAclWithAclCsv(getCluster(clusterName), csv))
  45. .thenReturn(ResponseEntity.ok().build());
  46. }
  47. }