mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-08 17:18:08 +00:00
parent
f3f45bc174
commit
2b0aeaf0eb
@ -84,28 +84,36 @@ public class ChangeEventHandler implements EventHandler {
|
|||||||
// Add a new thread to the entity for every change event
|
// Add a new thread to the entity for every change event
|
||||||
// for the event to appear in activity feeds
|
// for the event to appear in activity feeds
|
||||||
if (Entity.shouldDisplayEntityChangeOnFeed(changeEvent.getEntityType())) {
|
if (Entity.shouldDisplayEntityChangeOnFeed(changeEvent.getEntityType())) {
|
||||||
for (var thread : listOrEmpty(getThreads(responseContext, loggedInUserName))) {
|
// ignore usageSummary updates in the feed
|
||||||
// Don't create a thread if there is no message
|
boolean shouldIgnore = false;
|
||||||
if (!thread.getMessage().isEmpty()) {
|
if (Entity.TABLE.equals(changeEvent.getEntityType()) && changeEvent.getChangeDescription() != null) {
|
||||||
EntityInterface entity;
|
List<FieldChange> fields = changeEvent.getChangeDescription().getFieldsUpdated();
|
||||||
// In case of ENTITY_FIELDS_CHANGED entity from responseContext will be a ChangeEvent
|
shouldIgnore = fields.stream().anyMatch(field -> field.getName().equals("usageSummary"));
|
||||||
if (responseContext.getEntity() instanceof ChangeEvent) {
|
}
|
||||||
ChangeEvent change = (ChangeEvent) responseContext.getEntity();
|
if (!shouldIgnore) {
|
||||||
entity = (EntityInterface) change.getEntity();
|
for (var thread : listOrEmpty(getThreads(responseContext, loggedInUserName))) {
|
||||||
} else {
|
// Don't create a thread if there is no message
|
||||||
entity = (EntityInterface) responseContext.getEntity();
|
if (!thread.getMessage().isEmpty()) {
|
||||||
|
EntityInterface entity;
|
||||||
|
// In case of ENTITY_FIELDS_CHANGED entity from responseContext will be a ChangeEvent
|
||||||
|
if (responseContext.getEntity() instanceof ChangeEvent) {
|
||||||
|
ChangeEvent change = (ChangeEvent) responseContext.getEntity();
|
||||||
|
entity = (EntityInterface) change.getEntity();
|
||||||
|
} else {
|
||||||
|
entity = (EntityInterface) responseContext.getEntity();
|
||||||
|
}
|
||||||
|
EntityReference entityReference = entity.getEntityReference();
|
||||||
|
EntityReference owner;
|
||||||
|
try {
|
||||||
|
owner = Entity.getOwner(entityReference);
|
||||||
|
} catch (Exception exception) {
|
||||||
|
owner = null;
|
||||||
|
}
|
||||||
|
EntityLink about = EntityLink.parse(thread.getAbout());
|
||||||
|
feedDao.create(thread, entity.getId(), owner, about);
|
||||||
|
String jsonThread = mapper.writeValueAsString(thread);
|
||||||
|
WebSocketManager.getInstance().broadCastMessageToAll(WebSocketManager.feedBroadcastChannel, jsonThread);
|
||||||
}
|
}
|
||||||
EntityReference entityReference = entity.getEntityReference();
|
|
||||||
EntityReference owner;
|
|
||||||
try {
|
|
||||||
owner = Entity.getOwner(entityReference);
|
|
||||||
} catch (Exception exception) {
|
|
||||||
owner = null;
|
|
||||||
}
|
|
||||||
EntityLink about = EntityLink.parse(thread.getAbout());
|
|
||||||
feedDao.create(thread, entity.getId(), owner, about);
|
|
||||||
String jsonThread = mapper.writeValueAsString(thread);
|
|
||||||
WebSocketManager.getInstance().broadCastMessageToAll(WebSocketManager.feedBroadcastChannel, jsonThread);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user