001package co.codewizards.cloudstore.rest.client.request; 002 003import static java.util.Objects.*; 004 005import javax.ws.rs.client.Entity; 006import javax.ws.rs.core.MediaType; 007import javax.ws.rs.core.Response; 008 009import co.codewizards.cloudstore.core.dto.RepositoryDto; 010 011public class RequestRepoConnection extends VoidRequest { 012 private final String repositoryName; 013 private final String pathPrefix; 014 private final RepositoryDto clientRepositoryDto; 015 016 public RequestRepoConnection(final String repositoryName, final String pathPrefix, final RepositoryDto clientRepositoryDto) { 017 this.repositoryName = requireNonNull(repositoryName, "repositoryName"); 018 this.pathPrefix = pathPrefix; 019 this.clientRepositoryDto = requireNonNull(clientRepositoryDto, "clientRepositoryDto"); 020 requireNonNull(clientRepositoryDto.getRepositoryId(), "clientRepositoryDto.repositoryId"); 021 requireNonNull(clientRepositoryDto.getPublicKey(), "clientRepositoryDto.publicKey"); 022 } 023 024 @Override 025 public Response _execute() { 026 return createWebTarget("_requestRepoConnection", urlEncode(repositoryName), urlEncode(pathPrefix)) 027 .request().post(Entity.entity(clientRepositoryDto, MediaType.APPLICATION_XML)); 028 } 029 030}