Search in sources :

Example 1 with MergeCheckResultDto

use of com.cloudogu.scm.review.pullrequest.dto.MergeCheckResultDto in project scm-review-plugin by scm-manager.

the class MergeResource method check.

@POST
@Path("{namespace}/{name}/{pullRequestId}/merge-check")
@Produces(PullRequestMediaType.MERGE_CHECK_RESULT)
@Operation(summary = "Check pull request merge", description = "Checks if the pull request can be merged.", tags = "Pull Request")
@ApiResponse(responseCode = "200", description = "update success", content = @Content(mediaType = PullRequestMediaType.MERGE_CHECK_RESULT, schema = @Schema(implementation = MergeCheckResultDto.class)))
@ApiResponse(responseCode = "401", description = "not authenticated / invalid credentials")
@ApiResponse(responseCode = "403", description = "not authorized, the current user does not have the \"readPullRequest\" privilege")
@ApiResponse(responseCode = "404", description = "not found, no pull request with the specified id is available")
@ApiResponse(responseCode = "500", description = "internal server error", content = @Content(mediaType = VndMediaType.ERROR_TYPE, schema = @Schema(implementation = ErrorDto.class)))
public MergeCheckResultDto check(@PathParam("namespace") String namespace, @PathParam("name") String name, @PathParam("pullRequestId") String pullRequestId, @Context UriInfo uriInfo) {
    NamespaceAndName namespaceAndName = new NamespaceAndName(namespace, name);
    MergeCheckResult mergeCheckResult = service.checkMerge(namespaceAndName, pullRequestId);
    String checkLink = new PullRequestResourceLinks(uriInfo::getBaseUri).mergeLinks().check(namespace, name, pullRequestId);
    return new MergeCheckResultDto(Links.linkingTo().self(checkLink).build(), mergeCheckResult.hasConflicts(), mergeCheckResult.getMergeObstacles());
}
Also used : MergeCheckResultDto(com.cloudogu.scm.review.pullrequest.dto.MergeCheckResultDto) NamespaceAndName(sonia.scm.repository.NamespaceAndName) MergeCheckResult(com.cloudogu.scm.review.pullrequest.service.MergeCheckResult) PullRequestResourceLinks(com.cloudogu.scm.review.PullRequestResourceLinks) Path(javax.ws.rs.Path) POST(javax.ws.rs.POST) Produces(javax.ws.rs.Produces) Operation(io.swagger.v3.oas.annotations.Operation) ApiResponse(io.swagger.v3.oas.annotations.responses.ApiResponse)

Aggregations

PullRequestResourceLinks (com.cloudogu.scm.review.PullRequestResourceLinks)1 MergeCheckResultDto (com.cloudogu.scm.review.pullrequest.dto.MergeCheckResultDto)1 MergeCheckResult (com.cloudogu.scm.review.pullrequest.service.MergeCheckResult)1 Operation (io.swagger.v3.oas.annotations.Operation)1 ApiResponse (io.swagger.v3.oas.annotations.responses.ApiResponse)1 POST (javax.ws.rs.POST)1 Path (javax.ws.rs.Path)1 Produces (javax.ws.rs.Produces)1 NamespaceAndName (sonia.scm.repository.NamespaceAndName)1