package co.codewizards.cloudstore.rest.client.request;
import static co.codewizards.cloudstore.core.util.AssertUtil.*;
import java.util.Date;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
import co.codewizards.cloudstore.core.dto.DateTime;
public class MakeSymlink extends VoidRequest {
protected final String repositoryName;
protected final String path;
protected final String target;
protected final Date lastModified;
public MakeSymlink(final String repositoryName, final String path, final String target, final Date lastModified) {
this.repositoryName = assertNotNull(repositoryName, "repositoryName");
this.path = assertNotNull(path, "path");
this.target = assertNotNull(target, "target");
this.lastModified = lastModified;
}
@Override
protected Response _execute() {
final WebTarget webTarget = createMakeSymlinkWebTarget();
return assignCredentials(webTarget.request()).post(null);
}
protected WebTarget createMakeSymlinkWebTarget() {
WebTarget webTarget = createWebTarget("_makeSymlink", urlEncode(repositoryName), encodePath(path))
.queryParam("target", encodePath(target));
if (lastModified != null)
webTarget = webTarget.queryParam("lastModified", new DateTime(lastModified));
return webTarget;
}
}