use of com.epam.ta.reportportal.core.integration.util.IntegrationService in project service-api by reportportal.
the class CreateIntegrationHandlerImpl method createGlobalIntegration.
@Override
public EntryCreatedRS createGlobalIntegration(IntegrationRQ createRequest, String pluginName, ReportPortalUser user) {
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 -> {
validateGlobalIntegrationName(name, integrationType);
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.setCreator(user.getUsername());
integrationService.checkConnection(integration);
integrationRepository.save(integration);
return new EntryCreatedRS(integration.getId());
}
use of com.epam.ta.reportportal.core.integration.util.IntegrationService in project service-api by reportportal.
the class CreateIntegrationHandlerImpl method updateGlobalIntegration.
@Override
public OperationCompletionRS updateGlobalIntegration(Long id, IntegrationRQ updateRequest) {
final Integration integration = integrationRepository.findGlobalById(id).orElseThrow(() -> new ReportPortalException(ErrorType.INTEGRATION_NOT_FOUND, id));
ofNullable(updateRequest.getName()).map(String::toLowerCase).ifPresent(name -> {
if (!name.equals(integration.getName())) {
validateGlobalIntegrationName(name, integration.getType());
updateRequest.setName(name);
}
});
IntegrationService integrationService = integrationServiceMapping.getOrDefault(integration.getType().getName(), this.basicIntegrationService);
Integration updatedIntegration = integrationService.updateIntegration(integration, updateRequest);
integrationService.checkConnection(integration);
integrationRepository.save(updatedIntegration);
return new OperationCompletionRS("Integration with id = " + updatedIntegration.getId() + " has been successfully updated.");
}
use of com.epam.ta.reportportal.core.integration.util.IntegrationService 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());
}
use of com.epam.ta.reportportal.core.integration.util.IntegrationService in project service-api by reportportal.
the class GetIntegrationHandlerImpl method testConnection.
@Override
public boolean testConnection(Long integrationId, String projectName) {
Project project = projectRepository.findByName(projectName).orElseThrow(() -> new ReportPortalException(ErrorType.PROJECT_NOT_FOUND, projectName));
Integration integration = integrationRepository.findByIdAndProjectId(integrationId, project.getId()).orElseGet(() -> integrationRepository.findGlobalById(integrationId).orElseThrow(() -> new ReportPortalException(ErrorType.INTEGRATION_NOT_FOUND, integrationId)));
IntegrationService integrationService = integrationServiceMapping.getOrDefault(integration.getType().getName(), this.basicIntegrationService);
return integrationService.checkConnection(integration);
}
use of com.epam.ta.reportportal.core.integration.util.IntegrationService in project service-api by reportportal.
the class GetIntegrationHandlerImpl method testConnection.
@Override
public boolean testConnection(Long integrationId) {
Integration integration = integrationRepository.findGlobalById(integrationId).orElseThrow(() -> new ReportPortalException(ErrorType.INTEGRATION_NOT_FOUND, integrationId));
IntegrationService integrationService = integrationServiceMapping.getOrDefault(integration.getType().getName(), this.basicIntegrationService);
return integrationService.checkConnection(integration);
}
Aggregations