use of com.synopsys.integration.alert.common.persistence.model.job.details.DistributionJobDetailsModel in project hub-alert by blackducksoftware.
the class StaticJobAccessor method convertToDistributionJobModelFromEntity.
private DistributionJobModel convertToDistributionJobModelFromEntity(DistributionJobEntity distributionJobEntity) {
DistributionJobModel result;
ChannelKey channelKey = ChannelKeys.getChannelKey(distributionJobEntity.getChannelDescriptorName());
if (jobDetailsAccessorMap.containsKey(channelKey)) {
JobDetailsAccessor2<? extends DistributionJobDetailsModel> accessor = jobDetailsAccessorMap.get(channelKey);
DistributionJobDetailsModel detailsModel = accessor.retrieveDetails(distributionJobEntity.getJobId()).orElse(null);
result = convertToDistributionJobModel(distributionJobEntity, detailsModel);
} else {
result = convertToDistributionJobModel(distributionJobEntity);
}
return result;
}
use of com.synopsys.integration.alert.common.persistence.model.job.details.DistributionJobDetailsModel in project hub-alert by blackducksoftware.
the class StaticJobAccessor method convertToDistributionJobModel.
@Deprecated
private DistributionJobModel convertToDistributionJobModel(DistributionJobEntity jobEntity) {
UUID jobId = jobEntity.getJobId();
DistributionJobDetailsModel distributionJobDetailsModel = null;
ChannelKey channelKey = ChannelKeys.getChannelKey(jobEntity.getChannelDescriptorName());
if (ChannelKeys.AZURE_BOARDS.equals(channelKey)) {
AzureBoardsJobDetailsEntity jobDetails = jobEntity.getAzureBoardsJobDetails();
distributionJobDetailsModel = new AzureBoardsJobDetailsModel(jobId, jobDetails.getAddComments(), jobDetails.getProjectNameOrId(), jobDetails.getWorkItemType(), jobDetails.getWorkItemCompletedState(), jobDetails.getWorkItemReopenState());
} else if (ChannelKeys.JIRA_CLOUD.equals(channelKey)) {
JiraCloudJobDetailsEntity jobDetails = jobEntity.getJiraCloudJobDetails();
List<JiraJobCustomFieldModel> customFields = jobDetails.getJobCustomFields().stream().map(entity -> new JiraJobCustomFieldModel(entity.getFieldName(), entity.getFieldValue())).collect(Collectors.toList());
distributionJobDetailsModel = new JiraCloudJobDetailsModel(jobId, jobDetails.getAddComments(), jobDetails.getIssueCreatorEmail(), jobDetails.getProjectNameOrKey(), jobDetails.getIssueType(), jobDetails.getResolveTransition(), jobDetails.getReopenTransition(), customFields, jobDetails.getIssueSummary());
} else if (ChannelKeys.MS_TEAMS.equals(channelKey)) {
MSTeamsJobDetailsEntity jobDetails = jobEntity.getMsTeamsJobDetails();
distributionJobDetailsModel = new MSTeamsJobDetailsModel(jobId, jobDetails.getWebhook());
} else if (ChannelKeys.SLACK.equals(channelKey)) {
SlackJobDetailsEntity slackJobDetails = jobEntity.getSlackJobDetails();
distributionJobDetailsModel = new SlackJobDetailsModel(jobId, slackJobDetails.getWebhook(), slackJobDetails.getChannelName(), slackJobDetails.getChannelUsername());
}
return convertToDistributionJobModel(jobEntity, distributionJobDetailsModel);
}
use of com.synopsys.integration.alert.common.persistence.model.job.details.DistributionJobDetailsModel in project hub-alert by blackducksoftware.
the class StaticJobAccessor method createJobWithId.
private DistributionJobModel createJobWithId(UUID jobId, DistributionJobRequestModel requestModel, OffsetDateTime createdAt, @Nullable OffsetDateTime lastUpdated) {
String channelDescriptorName = requestModel.getChannelDescriptorName();
DistributionJobEntity jobToSave = new DistributionJobEntity(jobId, requestModel.getName(), requestModel.isEnabled(), requestModel.getDistributionFrequency().name(), requestModel.getProcessingType().name(), channelDescriptorName, requestModel.getChannelGlobalConfigId(), createdAt, lastUpdated);
DistributionJobEntity savedJobEntity = distributionJobRepository.save(jobToSave);
UUID savedJobId = savedJobEntity.getJobId();
BlackDuckJobDetailsEntity savedBlackDuckJobDetails = blackDuckJobDetailsAccessor.saveBlackDuckJobDetails(savedJobId, requestModel);
savedJobEntity.setBlackDuckJobDetails(savedBlackDuckJobDetails);
DistributionJobDetailsModel distributionJobDetails = requestModel.getDistributionJobDetails();
if (distributionJobDetails.isA(ChannelKeys.AZURE_BOARDS)) {
AzureBoardsJobDetailsEntity savedAzureBoardsJobDetails = azureBoardsJobDetailsAccessor.saveAzureBoardsJobDetails(savedJobId, distributionJobDetails.getAs(DistributionJobDetailsModel.AZURE));
savedJobEntity.setAzureBoardsJobDetails(savedAzureBoardsJobDetails);
} else if (distributionJobDetails.isA(ChannelKeys.JIRA_CLOUD)) {
JiraCloudJobDetailsEntity savedJiraCloudJobDetails = jiraCloudJobDetailsAccessor.saveJiraCloudJobDetails(savedJobId, distributionJobDetails.getAs(DistributionJobDetailsModel.JIRA_CLOUD));
savedJobEntity.setJiraCloudJobDetails(savedJiraCloudJobDetails);
} else if (distributionJobDetails.isA(ChannelKeys.MS_TEAMS)) {
MSTeamsJobDetailsEntity savedMSTeamsJobDetails = msTeamsJobDetailsAccessor.saveMSTeamsJobDetails(savedJobId, distributionJobDetails.getAs(DistributionJobDetailsModel.MS_TEAMS));
savedJobEntity.setMsTeamsJobDetails(savedMSTeamsJobDetails);
} else if (distributionJobDetails.isA(ChannelKeys.SLACK)) {
SlackJobDetailsEntity savedSlackJobDetails = slackJobDetailsAccessor.saveSlackJobDetails(savedJobId, distributionJobDetails.getAs(DistributionJobDetailsModel.SLACK));
savedJobEntity.setSlackJobDetails(savedSlackJobDetails);
} else {
// In the future the contents of this else case should be the complete implementation of this method
ChannelKey channelKey = ChannelKeys.getChannelKey(channelDescriptorName);
if (jobDetailsAccessorMap.containsKey(channelKey) && distributionJobDetails.isA(channelKey)) {
JobDetailsAccessor2<? extends DistributionJobDetailsModel> accessor = jobDetailsAccessorMap.get(channelKey);
DistributionJobDetailsModel savedJobDetails = accessor.saveJobDetails(savedJobId, distributionJobDetails);
return convertToDistributionJobModel(savedJobEntity, savedJobDetails);
}
}
return convertToDistributionJobModel(savedJobEntity);
}
use of com.synopsys.integration.alert.common.persistence.model.job.details.DistributionJobDetailsModel in project hub-alert by blackducksoftware.
the class JobFieldModelPopulationUtils method populateChannelFields.
public static void populateChannelFields(FieldModel channelFieldModel, DistributionJobModel jobModel) {
String channelDescriptorName = jobModel.getChannelDescriptorName();
putField(channelFieldModel, ChannelDescriptor.KEY_ENABLED, Boolean.toString(jobModel.isEnabled()));
putField(channelFieldModel, ChannelDescriptor.KEY_NAME, jobModel.getName());
putField(channelFieldModel, ChannelDescriptor.KEY_CHANNEL_NAME, channelDescriptorName);
putField(channelFieldModel, ChannelDescriptor.KEY_PROVIDER_TYPE, DEFAULT_PROVIDER_NAME);
putField(channelFieldModel, ChannelDescriptor.KEY_FREQUENCY, jobModel.getDistributionFrequency().name());
putField(channelFieldModel, ProviderDescriptor.KEY_PROCESSING_TYPE, jobModel.getProcessingType().name());
DistributionJobDetailsModel jobDetails = jobModel.getDistributionJobDetails();
if (jobDetails.isA(ChannelKeys.AZURE_BOARDS)) {
populateAzureBoardsFields(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.AZURE));
} else if (jobDetails.isA(ChannelKeys.EMAIL)) {
populateEmailFields(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.EMAIL));
} else if (jobDetails.isA(ChannelKeys.JIRA_CLOUD)) {
populateJiraCloudFields(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.JIRA_CLOUD));
} else if (jobDetails.isA(ChannelKeys.JIRA_SERVER)) {
populateJiraServerFields(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.JIRA_SERVER));
} else if (jobDetails.isA(ChannelKeys.MS_TEAMS)) {
populateMSTeamsField(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.MS_TEAMS));
} else if (jobDetails.isA(ChannelKeys.SLACK)) {
populateSlackFields(channelFieldModel, jobDetails.getAs(DistributionJobDetailsModel.SLACK));
}
}
use of com.synopsys.integration.alert.common.persistence.model.job.details.DistributionJobDetailsModel in project hub-alert by blackducksoftware.
the class DistributionEventHandlerTest method handleEventSuccessTest.
@Test
public void handleEventSuccessTest() {
ProcessingAuditAccessor auditAccessor = Mockito.mock(ProcessingAuditAccessor.class);
Mockito.doNothing().when(auditAccessor).setAuditEntrySuccess(Mockito.any(), Mockito.anySet());
DistributionJobDetailsModel details = new DistributionJobDetailsModel(null, null) {
};
JobDetailsAccessor<DistributionJobDetailsModel> jobDetailsAccessor = x -> Optional.of(details);
DistributionChannel<DistributionJobDetailsModel> channel = (x, y, z) -> null;
DistributionEventHandler<DistributionJobDetailsModel> eventHandler = new DistributionEventHandler<>(channel, jobDetailsAccessor, auditAccessor);
UUID testJobId = UUID.randomUUID();
Set<Long> testNotificationIds = Set.of(1L, 3L, 5L);
DistributionEvent testEvent = new DistributionEvent(channelKey, testJobId, "jobName", testNotificationIds, null);
eventHandler.handle(testEvent);
Mockito.verify(auditAccessor, Mockito.times(1)).setAuditEntrySuccess(Mockito.eq(testJobId), Mockito.eq(testNotificationIds));
}
Aggregations