Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## v1.4.0
-Enhancement:
- Passed the additional parameters in upload asset method
### Apr 23, 2024

## v1.3.3
-Fix:
- Constructor in Java class files now include missing headers
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<artifactId>cms</artifactId>
<packaging>jar</packaging>
<name>contentstack-management-java</name>
<version>1.3.3</version>
<version>1.4.0</version>
<description>Contentstack Java Management SDK for Content Management API, Contentstack is a headless CMS with an
API-first approach
</description>
Expand Down
12 changes: 5 additions & 7 deletions src/main/java/com/contentstack/cms/stack/Asset.java
Original file line number Diff line number Diff line change
Expand Up @@ -306,9 +306,8 @@ public Call<ResponseBody> subfolder(
* @since 2022-10-20
*/
public Call<ResponseBody> uploadAsset(@NotNull String filePath, String description) {
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), description);
MultipartBody.Part partFile = createMultipartBody(filePath, null, null, null, null);
return this.service.uploadAsset(this.headers, partFile, body, this.params);
MultipartBody body = createMultipartBody(filePath, null, null, description, null);
return this.service.uploadAsset(this.headers, body, this.params);
}


Expand All @@ -327,13 +326,12 @@ public Call<ResponseBody> uploadAsset(@NotNull String filePath, String descripti
* @return Call
*/
public Call<ResponseBody> uploadAsset(@NotNull String filePath, String parentUid, String title, String description, String[] tags) {
RequestBody body = RequestBody.create(Objects.requireNonNull(MediaType.parse("multipart/form-data")), description);
MultipartBody.Part partFile = createMultipartBody(filePath, parentUid, title, description, tags);
return this.service.uploadAsset(this.headers, partFile, body, this.params);
MultipartBody body = createMultipartBody(filePath, parentUid, title, description, tags);
return this.service.uploadAsset(this.headers, body, this.params);
}


private MultipartBody.Part createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
private MultipartBody createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM);
return new FileUploader().createMultipartBody(filePath, parentUid, title, description, tags);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,10 @@ Call<ResponseBody> subfolder(
@HeaderMap Map<String, Object> headers,
@QueryMap(encoded = true) Map<String, Object> query);

@Multipart
@POST("assets")
Call<ResponseBody> uploadAsset(
@HeaderMap Map<String, Object> headers,
@Part MultipartBody.Part file,
@Part("asset[description]") RequestBody description,
@Body MultipartBody body,
@QueryMap(encoded = true) Map<String, Object> query);

@Multipart
Expand Down
31 changes: 14 additions & 17 deletions src/main/java/com/contentstack/cms/stack/FileUploader.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
public class FileUploader {


public MultipartBody.Part createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
public MultipartBody createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM);

Expand All @@ -28,24 +28,21 @@ public MultipartBody.Part createMultipartBody(String filePath, String parentUid,
}
}

// Add other parts if not null
addFormDataPartIfNotNull(builder, "asset[parent_uid]", parentUid);
addFormDataPartIfNotNull(builder, "asset[title]", title);
addFormDataPartIfNotNull(builder, "asset[description]", description);

// Handle tags array null case
if (tags != null) {
addFormDataPartIfNotNull(builder, "asset[tags]", tagConvertor(tags));
//Adding additional parameters
if (parentUid != null && !parentUid.isBlank()) {
builder.addFormDataPart("asset[parent_uid]", parentUid);
}

return builder.build().part(0);
}

// Helper method to add form data part if value is not null
private void addFormDataPartIfNotNull(MultipartBody.Builder builder, String name, String value) {
if (value != null) {
builder.addFormDataPart(name, value);
if (title != null && !title.isBlank()) {
builder.addFormDataPart("asset[title]", title);
}
if (description != null && !description.isBlank()) {
builder.addFormDataPart("asset[description]", description);
}
if (tags != null && tags.length > 0) {
builder.addFormDataPart("asset[tags]", tagConvertor(tags));
}

return builder.build();
}

// Helper method to get content type of file
Expand Down