package com.uploadcare.urls; import org.apache.http.client.utils.URIBuilder; import java.net.URI; import static com.uploadcare.urls.UrlUtils.trustedBuild; /** * Uploadcare API URL factory methods. */ public class Urls { private static final String API_BASE = "https://api.uploadcare.com"; private static final String CDN_BASE = "https://ucarecdn.com"; private static final String UPLOAD_BASE = "https://upload.uploadcare.com"; /** * Creates a URL to a project resource. * * @see com.uploadcare.api.Client */ public static URI apiProject() { return URI.create(API_BASE + "/project/"); } /** * Creates a URL to a file resource. * * @param fileId File UUID * * @see com.uploadcare.api.Client */ public static URI apiFile(String fileId) { return URI.create(API_BASE + "/files/" + fileId + "/"); } /** * Creates a URL to the storage action for a file (saving the file). * * @param fileId File UUID * * @see com.uploadcare.api.Client */ public static URI apiFileStorage(String fileId) { return URI.create(API_BASE + "/files/" + fileId + "/storage/"); } /** * Creates a URL to the file collection resource. * * @see com.uploadcare.api.Client */ public static URI apiFiles() { return URI.create(API_BASE + "/files/"); } /** * Creates a full CDN URL with a CDN path builder. * * @param builder Configured CDN path builder */ public static URI cdn(CdnPathBuilder builder) { return URI.create(CDN_BASE + builder.build()); } /** * Creates a URL to the file upload endpoint. * * @see com.uploadcare.upload.FileUploader */ public static URI uploadBase() { return URI.create(UPLOAD_BASE + "/base/"); } /** * Creates a URL for URL upload. * * @param sourceUrl URL to upload from * @param pubKey Public key * @param store Store the file upon uploading. * * @see com.uploadcare.upload.UrlUploader */ public static URI uploadFromUrl(String sourceUrl, String pubKey, String store) { URIBuilder builder = new URIBuilder(URI.create(UPLOAD_BASE)); builder.setPath("/from_url/") .setParameter("source_url", sourceUrl) .setParameter("pub_key", pubKey) .setParameter("store", store); return trustedBuild(builder); } /** * Creates a URL for URL upload status (e.g. progress). * * @param token Token, received after a URL upload request * * @see com.uploadcare.upload.UrlUploader */ public static URI uploadFromUrlStatus(String token) { URIBuilder builder = new URIBuilder(URI.create(UPLOAD_BASE)); builder.setPath("/from_url/status/") .setParameter("token", token); return trustedBuild(builder); } }