|
|
|
@ -54,21 +54,17 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor implements |
|
|
|
try { |
|
|
|
edgeSynchronizationManager.getEdgeId().set(edge.getId()); |
|
|
|
|
|
|
|
switch (entityViewUpdateMsg.getMsgType()) { |
|
|
|
case ENTITY_CREATED_RPC_MESSAGE: |
|
|
|
case ENTITY_UPDATED_RPC_MESSAGE: |
|
|
|
return switch (entityViewUpdateMsg.getMsgType()) { |
|
|
|
case ENTITY_CREATED_RPC_MESSAGE, ENTITY_UPDATED_RPC_MESSAGE -> { |
|
|
|
saveOrUpdateEntityView(tenantId, entityViewId, entityViewUpdateMsg, edge); |
|
|
|
return Futures.immediateFuture(null); |
|
|
|
case ENTITY_DELETED_RPC_MESSAGE: |
|
|
|
EntityView entityViewToDelete = edgeCtx.getEntityViewService().findEntityViewById(tenantId, entityViewId); |
|
|
|
if (entityViewToDelete != null) { |
|
|
|
edgeCtx.getEntityViewService().unassignEntityViewFromEdge(tenantId, entityViewId, edge.getId()); |
|
|
|
} |
|
|
|
return Futures.immediateFuture(null); |
|
|
|
case UNRECOGNIZED: |
|
|
|
default: |
|
|
|
return handleUnsupportedMsgType(entityViewUpdateMsg.getMsgType()); |
|
|
|
} |
|
|
|
yield Futures.immediateFuture(null); |
|
|
|
} |
|
|
|
case ENTITY_DELETED_RPC_MESSAGE -> { |
|
|
|
deleteEntityView(tenantId, entityViewId); |
|
|
|
yield Futures.immediateFuture(null); |
|
|
|
} |
|
|
|
default -> handleUnsupportedMsgType(entityViewUpdateMsg.getMsgType()); |
|
|
|
}; |
|
|
|
} catch (DataValidationException e) { |
|
|
|
if (e.getMessage().contains("limit reached")) { |
|
|
|
log.warn("[{}] Number of allowed entity views violated {}", tenantId, entityViewUpdateMsg, e); |
|
|
|
@ -96,14 +92,8 @@ public class EntityViewEdgeProcessor extends BaseEntityViewProcessor implements |
|
|
|
} |
|
|
|
|
|
|
|
private void pushEntityViewCreatedEventToRuleEngine(TenantId tenantId, Edge edge, EntityViewId entityViewId) { |
|
|
|
try { |
|
|
|
EntityView entityView = edgeCtx.getEntityViewService().findEntityViewById(tenantId, entityViewId); |
|
|
|
String entityViewAsString = JacksonUtil.toString(entityView); |
|
|
|
TbMsgMetaData msgMetaData = getEdgeActionTbMsgMetaData(edge, entityView.getCustomerId()); |
|
|
|
pushEntityEventToRuleEngine(tenantId, entityViewId, entityView.getCustomerId(), TbMsgType.ENTITY_CREATED, entityViewAsString, msgMetaData); |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("[{}][{}] Failed to push entity view action to rule engine: {}", tenantId, entityViewId, TbMsgType.ENTITY_CREATED.name(), e); |
|
|
|
} |
|
|
|
EntityView entityView = edgeCtx.getEntityViewService().findEntityViewById(tenantId, entityViewId); |
|
|
|
pushEntityEventToRuleEngine(tenantId, edge, entityView, TbMsgType.ENTITY_CREATED); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
|