Implement Connectors sorting / backend (#2291)
Co-authored-by: Artem Kazlanzhy <akazlanzhy@provectus.com>
This commit is contained in:
parent
37f1d2254e
commit
2b5dd270e2
2 changed files with 46 additions and 1 deletions
|
@ -3,13 +3,16 @@ package com.provectus.kafka.ui.controller;
|
|||
import com.provectus.kafka.ui.api.KafkaConnectApi;
|
||||
import com.provectus.kafka.ui.model.ConnectDTO;
|
||||
import com.provectus.kafka.ui.model.ConnectorActionDTO;
|
||||
import com.provectus.kafka.ui.model.ConnectorColumnsToSortDTO;
|
||||
import com.provectus.kafka.ui.model.ConnectorDTO;
|
||||
import com.provectus.kafka.ui.model.ConnectorPluginConfigValidationResponseDTO;
|
||||
import com.provectus.kafka.ui.model.ConnectorPluginDTO;
|
||||
import com.provectus.kafka.ui.model.FullConnectorInfoDTO;
|
||||
import com.provectus.kafka.ui.model.NewConnectorDTO;
|
||||
import com.provectus.kafka.ui.model.SortOrderDTO;
|
||||
import com.provectus.kafka.ui.model.TaskDTO;
|
||||
import com.provectus.kafka.ui.service.KafkaConnectService;
|
||||
import java.util.Comparator;
|
||||
import java.util.Map;
|
||||
import javax.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
@ -68,10 +71,16 @@ public class KafkaConnectController extends AbstractController implements KafkaC
|
|||
public Mono<ResponseEntity<Flux<FullConnectorInfoDTO>>> getAllConnectors(
|
||||
String clusterName,
|
||||
String search,
|
||||
ConnectorColumnsToSortDTO orderBy,
|
||||
SortOrderDTO sortOrder,
|
||||
ServerWebExchange exchange
|
||||
) {
|
||||
var comparator = sortOrder == null || sortOrder.equals(SortOrderDTO.ASC)
|
||||
? getConnectorsComparator(orderBy)
|
||||
: getConnectorsComparator(orderBy).reversed();
|
||||
return Mono.just(ResponseEntity.ok(
|
||||
kafkaConnectService.getAllConnectors(getCluster(clusterName), search)));
|
||||
kafkaConnectService.getAllConnectors(getCluster(clusterName), search).sort(comparator))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -142,4 +151,22 @@ public class KafkaConnectController extends AbstractController implements KafkaC
|
|||
getCluster(clusterName), connectName, pluginName, requestBody)
|
||||
.map(ResponseEntity::ok);
|
||||
}
|
||||
|
||||
private Comparator<FullConnectorInfoDTO> getConnectorsComparator(ConnectorColumnsToSortDTO orderBy) {
|
||||
var defaultComparator = Comparator.comparing(FullConnectorInfoDTO::getName);
|
||||
if (orderBy == null) {
|
||||
return defaultComparator;
|
||||
}
|
||||
switch (orderBy) {
|
||||
case CONNECT:
|
||||
return Comparator.comparing(FullConnectorInfoDTO::getConnect);
|
||||
case TYPE:
|
||||
return Comparator.comparing(FullConnectorInfoDTO::getType);
|
||||
case STATUS:
|
||||
return Comparator.comparing(fullConnectorInfoDTO -> fullConnectorInfoDTO.getStatus().getState());
|
||||
case NAME:
|
||||
default:
|
||||
return defaultComparator;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1267,6 +1267,16 @@ paths:
|
|||
required: false
|
||||
schema:
|
||||
type: string
|
||||
- name: orderBy
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
$ref: '#/components/schemas/ConnectorColumnsToSort'
|
||||
- name: sortOrder
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
$ref: '#/components/schemas/SortOrder'
|
||||
responses:
|
||||
200:
|
||||
description: OK
|
||||
|
@ -2009,6 +2019,14 @@ components:
|
|||
- REPLICATION_FACTOR
|
||||
- SIZE
|
||||
|
||||
ConnectorColumnsToSort:
|
||||
type: string
|
||||
enum:
|
||||
- NAME
|
||||
- CONNECT
|
||||
- TYPE
|
||||
- STATUS
|
||||
|
||||
SortOrder:
|
||||
type: string
|
||||
enum:
|
||||
|
|
Loading…
Add table
Reference in a new issue