001package co.codewizards.cloudstore.rest.client.request;
002
003import static java.util.Objects.*;
004
005import javax.ws.rs.client.WebTarget;
006import javax.ws.rs.core.MediaType;
007
008import co.codewizards.cloudstore.core.dto.RepoFileDto;
009
010public class GetRepoFileDto extends AbstractRequest<RepoFileDto> {
011        private final String repositoryName;
012        private final String path;
013
014        public GetRepoFileDto(final String repositoryName, final String path) {
015                this.repositoryName = requireNonNull(repositoryName, "repositoryName");
016                this.path = path;
017        }
018
019        @Override
020        public RepoFileDto execute() {
021                final WebTarget webTarget = createWebTarget(getPath(RepoFileDto.class), urlEncode(repositoryName), encodePath(path));
022                final RepoFileDto repoFileDto = assignCredentials(webTarget.request(MediaType.APPLICATION_XML)).get(RepoFileDto.class);
023                return repoFileDto;
024        }
025
026        @Override
027        public boolean isResultNullable() {
028                return true;
029        }
030
031}