001package co.codewizards.cloudstore.ls.rest.client.request;
002
003import static java.util.Objects.*;
004
005import javax.ws.rs.client.Entity;
006import javax.ws.rs.client.WebTarget;
007import javax.ws.rs.core.MediaType;
008
009import co.codewizards.cloudstore.ls.core.dto.RepoInfoRequestDto;
010import co.codewizards.cloudstore.ls.core.dto.RepoInfoResponseDto;
011
012public class RepoInfoRequest extends AbstractRequest<RepoInfoResponseDto> {
013
014        private final RepoInfoRequestDto repoInfoRequestDto;
015
016        public RepoInfoRequest(final RepoInfoRequestDto repoInfoRequestDto) {
017                this.repoInfoRequestDto = requireNonNull(repoInfoRequestDto, "repoInfoRequestDto");
018        }
019
020        @Override
021        public RepoInfoResponseDto execute() {
022                final WebTarget webTarget = createWebTarget("RepoInfo");
023                final RepoInfoResponseDto repoInfoResponseDto = assignCredentials(webTarget.request(MediaType.APPLICATION_XML_TYPE)).post(Entity.entity(repoInfoRequestDto, MediaType.APPLICATION_XML_TYPE), RepoInfoResponseDto.class);
024                return repoInfoResponseDto;
025        }
026
027        @Override
028        public boolean isResultNullable() {
029                return false;
030        }
031
032}