SmugMugImageUploadResponse uploadImage(PhotoModel photoModel, String albumUri, InputStream inputStream)
throws IOException {
InputStreamContent content = new InputStreamContent(null, inputStream);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
content.writeTo(outputStream);
byte[] contentBytes = outputStream.toByteArray();
Map<String, String> headersMap = new HashMap<>();
headersMap.put("X-Smug-AlbumUri", albumUri);
headersMap.put("X-Smug-ResponseType", "JSON");
headersMap.put("X-Smug-Version", "v2");
headersMap.put("Content-Type", photoModel.getMediaType());
if (!Strings.isNullOrEmpty(photoModel.getTitle())) {
headersMap.put("X-Smug-Title", photoModel.getTitle());
}
if (!Strings.isNullOrEmpty(photoModel.getDescription())) {
headersMap.put("X-Smug-Caption", photoModel.getDescription());
}
return postRequest(
"https://upload.smugmug.com/",
ImmutableMap.of(),
contentBytes,
headersMap,
new TypeReference<SmugMugImageUploadResponse>() {
});
}