| 
3 | 3 | import io.kafbat.ui.config.ClustersProperties;  | 
4 | 4 | import io.kafbat.ui.connect.model.ClusterInfo;  | 
5 | 5 | import io.kafbat.ui.connect.model.Connector;  | 
 | 6 | +import io.kafbat.ui.connect.model.ConnectorStatus;  | 
6 | 7 | import io.kafbat.ui.connect.model.ConnectorStatusConnector;  | 
7 | 8 | import io.kafbat.ui.connect.model.ConnectorTask;  | 
8 | 9 | import io.kafbat.ui.connect.model.ConnectorTopics;  | 
9 | 10 | import io.kafbat.ui.connect.model.ExpandedConnector;  | 
10 | 11 | import io.kafbat.ui.connect.model.NewConnector;  | 
 | 12 | +import io.kafbat.ui.connect.model.TaskStatus;  | 
11 | 13 | import io.kafbat.ui.model.ConnectDTO;  | 
12 | 14 | import io.kafbat.ui.model.ConnectorDTO;  | 
13 | 15 | import io.kafbat.ui.model.ConnectorPluginConfigValidationResponseDTO;  | 
@@ -42,14 +44,36 @@ default ClusterInfo toClient(KafkaConnectState state) {  | 
42 | 44 | 
 
  | 
43 | 45 |   @Mapping(target = "status", ignore = true)  | 
44 | 46 |   @Mapping(target = "connect", ignore = true)  | 
45 |  | -  ConnectorDTO fromClient(io.kafbat.ui.connect.model.Connector connector);  | 
46 |  | - | 
47 |  | -  default ConnectorDTO fromClient(Connector connector, ConnectorTopics topics) {  | 
48 |  | -    ConnectorDTO connectorDto = this.fromClient(connector);  | 
 | 47 | +  ConnectorDTO fromClient(Connector connector);  | 
 | 48 | + | 
 | 49 | +  default ConnectorDTO fromClient(Connector connector,  | 
 | 50 | +                                  String connect,  | 
 | 51 | +                                  ConnectorTopics topics,  | 
 | 52 | +                                  Map<String, Object> sanitizedConfigs,  | 
 | 53 | +                                  ConnectorStatus status) {  | 
 | 54 | +    ConnectorDTO result = this.fromClient(connector);  | 
 | 55 | +    result.connect(connect);  | 
49 | 56 |     if (topics != null) {  | 
50 |  | -      return connectorDto.topics(topics.getTopics());  | 
 | 57 | +      result = result.topics(topics.getTopics());  | 
 | 58 | +    }  | 
 | 59 | +    if (sanitizedConfigs != null) {  | 
 | 60 | +      result = result.config(sanitizedConfigs);  | 
 | 61 | +    }  | 
 | 62 | +    if (status != null && status.getConnector() != null) {  | 
 | 63 | +      result = result.status(fromClient(status.getConnector()));  | 
 | 64 | + | 
 | 65 | +      if (status.getTasks() != null) {  | 
 | 66 | +        boolean isAnyTaskFailed = status.getTasks().stream()  | 
 | 67 | +            .map(TaskStatus::getState)  | 
 | 68 | +            .anyMatch(TaskStatus.StateEnum.FAILED::equals);  | 
 | 69 | + | 
 | 70 | +        if (isAnyTaskFailed) {  | 
 | 71 | +          result.getStatus().state(ConnectorStateDTO.TASK_FAILED);  | 
 | 72 | +        }  | 
 | 73 | +      }  | 
51 | 74 |     }  | 
52 |  | -    return connectorDto;  | 
 | 75 | + | 
 | 76 | +    return result;  | 
53 | 77 |   }  | 
54 | 78 | 
 
  | 
55 | 79 |   ConnectorStatusDTO fromClient(ConnectorStatusConnector connectorStatus);  | 
 | 
0 commit comments