001package co.codewizards.cloudstore.rest.client.request;
002
003import static java.util.Objects.*;
004
005import javax.ws.rs.core.Response;
006
007import co.codewizards.cloudstore.core.dto.DateTime;
008
009public class EndPutFile extends VoidRequest {
010
011        protected final String repositoryName;
012        protected final String path;
013        protected final DateTime lastModified;
014        protected final long length;
015        protected final String sha1;
016
017        public EndPutFile(final String repositoryName, final String path, final DateTime lastModified, final long length, final String sha1) {
018                this.repositoryName = requireNonNull(repositoryName, "repositoryName");
019                this.path = requireNonNull(path, "path");
020                this.lastModified = requireNonNull(lastModified, "lastModified");
021                this.length = length;
022                this.sha1 = sha1;
023        }
024
025        @Override
026        public Response _execute() {
027                return assignCredentials(
028                                createWebTarget("_endPutFile", urlEncode(repositoryName), encodePath(path))
029                                .queryParam("lastModified", lastModified.toString())
030                                .queryParam("length", length)
031                                .queryParam("sha1", sha1)
032                                .request()).put(null);
033        }
034
035}