com.synopsys.integration.blackduck.service.dataservice.ProjectMappingService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of blackduck-common Show documentation
Show all versions of blackduck-common Show documentation
A library for using various capabilities of Black Duck, notably the REST API and signature scanning.
/*
* blackduck-common
*
* Copyright (c) 2023 Synopsys, Inc.
*
* Use subject to the terms and conditions of the Synopsys End User Software License and Maintenance Agreement. All rights reserved worldwide.
*/
package com.synopsys.integration.blackduck.service.dataservice;
import java.util.List;
import com.synopsys.integration.blackduck.api.generated.discovery.ApiDiscovery;
import com.synopsys.integration.blackduck.api.manual.view.ProjectView;
import com.synopsys.integration.blackduck.api.manual.view.ProjectMappingView;
import com.synopsys.integration.blackduck.exception.BlackDuckIntegrationException;
import com.synopsys.integration.blackduck.service.BlackDuckApiClient;
import com.synopsys.integration.blackduck.service.DataService;
import com.synopsys.integration.exception.IntegrationException;
import com.synopsys.integration.log.IntLogger;
import com.synopsys.integration.rest.HttpUrl;
public class ProjectMappingService extends DataService {
public ProjectMappingService(BlackDuckApiClient blackDuckApiClient, ApiDiscovery apiDiscovery, IntLogger logger) {
super(blackDuckApiClient, apiDiscovery, logger);
}
public void populateApplicationId(ProjectView projectView, String applicationId) throws IntegrationException {
List projectMappings = blackDuckApiClient.getAllResponses(projectView.metaProjectMappingsLink());
boolean canCreate = projectMappings.isEmpty();
if (canCreate) {
if (!projectView.hasLink(ProjectView.PROJECT_MAPPINGS_LINK)) {
throw new BlackDuckIntegrationException(String.format("The supplied projectView does not have the link (%s) to create a project mapping.", ProjectView.PROJECT_MAPPINGS_LINK));
}
HttpUrl projectMappingsLink = projectView.getFirstLink(ProjectView.PROJECT_MAPPINGS_LINK);
ProjectMappingView projectMappingView = new ProjectMappingView();
projectMappingView.setApplicationId(applicationId);
blackDuckApiClient.post(projectMappingsLink, projectMappingView);
} else {
// Currently there exists only one project-mapping which is the project's Application ID.
// Eventually, this method would need to take in a namespace on which we will need to filter.
ProjectMappingView projectMappingView = projectMappings.get(0);
projectMappingView.setApplicationId(applicationId);
blackDuckApiClient.put(projectMappingView);
}
}
public List getProjectMappings(ProjectView projectView) throws IntegrationException {
return blackDuckApiClient.getAllResponses(projectView.metaProjectMappingsLink());
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy