use of com.epam.ta.reportportal.core.events.activity.IntegrationCreatedEvent in project service-api by reportportal.
the class CreateIntegrationHandlerImpl method createProjectIntegration.
@Override
public EntryCreatedRS createProjectIntegration(String projectName, IntegrationRQ createRequest, String pluginName, ReportPortalUser user) {
Project project = projectRepository.findByName(projectName).orElseThrow(() -> new ReportPortalException(ErrorType.PROJECT_NOT_FOUND, projectName));
IntegrationType integrationType = integrationTypeRepository.findByName(pluginName).orElseThrow(() -> new ReportPortalException(ErrorType.INTEGRATION_NOT_FOUND, pluginName));
IntegrationService integrationService = integrationServiceMapping.getOrDefault(integrationType.getName(), this.basicIntegrationService);
String integrationName = ofNullable(createRequest.getName()).map(String::toLowerCase).map(name -> {
validateProjectIntegrationName(name, integrationType, project);
return name;
}).orElseThrow(() -> new ReportPortalException(ErrorType.INCORRECT_INTEGRATION_NAME, "Integration name should be not null"));
createRequest.setName(integrationName);
Integration integration = integrationService.createIntegration(createRequest, integrationType);
integration.setProject(project);
integration.setCreator(user.getUsername());
integrationService.checkConnection(integration);
integrationRepository.save(integration);
messageBus.publishActivity(new IntegrationCreatedEvent(TO_ACTIVITY_RESOURCE.apply(integration), user.getUserId(), user.getUsername()));
return new EntryCreatedRS(integration.getId());
}
Aggregations