use of com.blackducksoftware.integration.hub.alert.datasource.entity.NotificationEntity in project hub-alert by blackducksoftware.
the class AccumulatorWriter method write.
@Override
public void write(final List<? extends DBStoreEvent> itemList) throws Exception {
try {
if (itemList != null && !itemList.isEmpty()) {
logger.info("Writing {} notifications", itemList.size());
itemList.forEach(item -> {
final List<NotificationEvent> notificationList = item.getNotificationList();
final List<NotificationModel> entityList = new ArrayList<>();
notificationList.forEach(notification -> {
final String eventKey = notification.getEventKey();
final NotificationContentItem content = (NotificationContentItem) notification.getDataSet().get(NotificationEvent.DATA_SET_KEY_NOTIFICATION_CONTENT);
final Date createdAt = content.getCreatedAt();
final NotificationCategoryEnum notificationType = notification.getCategoryType();
final String projectName = content.getProjectVersion().getProjectName();
final String projectUrl = content.getProjectVersion().getProjectLink();
final String projectVersion = content.getProjectVersion().getProjectVersionName();
final String projectVersionUrl = content.getProjectVersion().getUrl();
final String componentName = content.getComponentName();
final String componentVersion = content.getComponentVersion().versionName;
final String policyRuleName = getPolicyRule(notification);
final String person = getPerson(notification);
final NotificationEntity entity = new NotificationEntity(eventKey, createdAt, notificationType, projectName, projectUrl, projectVersion, projectVersionUrl, componentName, componentVersion, policyRuleName, person);
final Collection<VulnerabilityEntity> vulnerabilityList = getVulnerabilities(notification, entity);
NotificationModel model = new NotificationModel(entity, vulnerabilityList);
model = notificationManager.saveNotification(model);
entityList.add(model);
});
final RealTimeEvent realTimeEvent = new RealTimeEvent(entityList);
channelTemplateManager.sendEvent(realTimeEvent);
});
} else {
logger.info("No notifications to write");
}
} catch (final Exception ex) {
logger.error("Error occurred writing notification data", ex);
}
}
use of com.blackducksoftware.integration.hub.alert.datasource.entity.NotificationEntity in project hub-alert by blackducksoftware.
the class NotificationManagerTestIT method findByCreatedAtBefore.
@Test
public void findByCreatedAtBefore() {
final LocalDateTime time = LocalDateTime.now();
Date searchDate = createDate(time.plusHours(1));
final Date createdAt = createDate(time.minusHours(5));
NotificationEntity entity = createNotificationEntity(createdAt);
notificationManager.saveNotification(new NotificationModel(entity, Collections.emptyList()));
final Date createdAtLaterThanSearch = createDate(time.plusHours(3));
entity = createNotificationEntity(createdAtLaterThanSearch);
notificationManager.saveNotification(new NotificationModel(entity, Collections.emptyList()));
List<NotificationModel> foundList = notificationManager.findByCreatedAtBefore(searchDate);
assertEquals(1, foundList.size());
searchDate = createDate(time.minusHours(6));
foundList = notificationManager.findByCreatedAtBefore(searchDate);
assertTrue(foundList.isEmpty());
}
use of com.blackducksoftware.integration.hub.alert.datasource.entity.NotificationEntity in project hub-alert by blackducksoftware.
the class NotificationManagerTestIT method testDeleteNotification.
@Test
public void testDeleteNotification() {
final NotificationEntity notificationEntity = createNotificationEntity();
final VulnerabilityEntity vulnerabilityEntity = new VulnerabilityEntity("id1", VulnerabilityOperationEnum.ADD, null);
final List<VulnerabilityEntity> vulnerabilityList = Arrays.asList(vulnerabilityEntity);
final NotificationModel model = new NotificationModel(notificationEntity, vulnerabilityList);
final NotificationModel savedModel = notificationManager.saveNotification(model);
assertEquals(1, notificationRepository.count());
assertEquals(1, vulnerabilityRepository.count());
notificationManager.deleteNotification(savedModel);
assertEquals(0, notificationRepository.count());
assertEquals(0, vulnerabilityRepository.count());
}
use of com.blackducksoftware.integration.hub.alert.datasource.entity.NotificationEntity in project hub-alert by blackducksoftware.
the class NotificationManagerTestIT method testFindByIdsInvalidIds.
@Test
public void testFindByIdsInvalidIds() {
final NotificationEntity notificationEntity = createNotificationEntity();
final VulnerabilityEntity vulnerabilityEntity = new VulnerabilityEntity("id2", VulnerabilityOperationEnum.ADD, null);
final List<VulnerabilityEntity> vulnerabilityList = Arrays.asList(vulnerabilityEntity);
final NotificationModel model = new NotificationModel(notificationEntity, vulnerabilityList);
notificationManager.saveNotification(model);
final List<Long> notificationIds = Arrays.asList(34L, 22L, 10L);
final List<NotificationModel> notificationModelList = notificationManager.findByIds(notificationIds);
assertTrue(notificationModelList.isEmpty());
}
use of com.blackducksoftware.integration.hub.alert.datasource.entity.NotificationEntity in project hub-alert by blackducksoftware.
the class NotificationManagerTestIT method testDeleteNotificationList.
@Test
public void testDeleteNotificationList() {
final VulnerabilityEntity vulnerabilityEntity = new VulnerabilityEntity("id1", VulnerabilityOperationEnum.ADD, null);
final List<VulnerabilityEntity> vulnerabilityList = Arrays.asList(vulnerabilityEntity);
final LocalDateTime time = LocalDateTime.now();
final Date startDate = createDate(time.minusHours(1));
final Date endDate = createDate(time.plusHours(1));
final Date createdAt = createDate(time.minusHours(3));
NotificationEntity entity = createNotificationEntity(createdAt);
notificationManager.saveNotification(new NotificationModel(entity, vulnerabilityList));
Date createdAtInRange = createDate(time.plusMinutes(1));
final NotificationEntity entityToFind1 = createNotificationEntity(createdAtInRange);
createdAtInRange = createDate(time.plusMinutes(5));
final NotificationEntity entityToFind2 = createNotificationEntity(createdAtInRange);
final Date createdAtLater = createDate(time.plusHours(3));
entity = createNotificationEntity(createdAtLater);
notificationManager.saveNotification(new NotificationModel(entity, vulnerabilityList));
notificationManager.saveNotification(new NotificationModel(entityToFind1, vulnerabilityList));
notificationManager.saveNotification(new NotificationModel(entityToFind2, vulnerabilityList));
final List<NotificationModel> foundList = notificationManager.findByCreatedAtBetween(startDate, endDate);
assertEquals(4, notificationRepository.count());
assertEquals(4, vulnerabilityRepository.count());
notificationManager.deleteNotificationList(foundList);
assertEquals(2, notificationRepository.count());
assertEquals(2, vulnerabilityRepository.count());
}
Aggregations