in ui/src/main/java/com/epam/eco/kafkamanager/ui/topics/model/TopicInfoToModelMapper.java [55:101]
public TopicRecordModel apply(TopicInfo topicInfo) {
TopicRecordModel model = TopicRecordModel.builder()
.name(topicInfo.getName())
.partitions(topicInfo.getPartitionCount())
.replicas(topicInfo.getReplicationFactor())
.config(topicInfo.getConfig())
.topicDataURL(topicInfo.getName())
.build();
topicInfo.getMetadata().ifPresent(value -> model.setDescription(value.getDescription()));
if(nonNull(dataCatalogUrlTemplate)) {
model.setSchemaCatalog(ExternalToolModel.builder()
.url(dataCatalogUrlTemplate.resolve(topicInfo.getName()))
.toolName(dataCatalogUrlTemplate.getName())
.icon(dataCatalogUrlTemplate.getIcon())
.build());
}
if(nonNull(grafanaUrlTemplate)) {
model.setGrafanaMetrics(ExternalToolModel.builder()
.url(grafanaUrlTemplate.resolve(topicInfo.getName()))
.toolName(grafanaUrlTemplate.getName())
.icon(grafanaUrlTemplate.getIcon())
.build());
}
if(nonNull(externalToolTemplates) && externalToolTemplates.size()>0) {
Collection<ExternalToolModel> externalToolModels = new LinkedList<>();
externalToolTemplates.forEach(externalToolTemplate -> {
externalToolModels.add(ExternalToolModel.builder()
.url(externalToolTemplate.resolve(topicInfo.getName()))
.toolName(externalToolTemplate.getName())
.icon(externalToolTemplate.getIcon())
.build() );
});
model.setExternalTools(externalToolModels);
}
List<ConsumerGroupInfo> consumerGroupInfos = kafkaManager.getConsumerGroupsForTopic(topicInfo.getName());
List<String> consumerGroups = new LinkedList<>();
if(nonNull(consumerGroupInfos) && !consumerGroupInfos.isEmpty()) {
consumerGroupInfos.forEach(consumerGroupInfo -> consumerGroups.add(consumerGroupInfo.getName()));
}
model.setConsumerGroups(consumerGroups);
return model;
}