Skip to content

Commit 9c1d7c2

Browse files
authored
Merge pull request #71 from contentstack/next
Hotfix v1.4.0
2 parents 42e1feb + d2190ee commit 9c1d7c2

File tree

5 files changed

+26
-28
lines changed

5 files changed

+26
-28
lines changed

changelog.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## v1.4.0
4+
-Enhancement:
5+
- Passed the additional parameters in upload asset method
6+
### Apr 23, 2024
7+
38
## v1.3.3
49
-Fix:
510
- Constructor in Java class files now include missing headers

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<artifactId>cms</artifactId>
88
<packaging>jar</packaging>
99
<name>contentstack-management-java</name>
10-
<version>1.3.3</version>
10+
<version>1.4.0</version>
1111
<description>Contentstack Java Management SDK for Content Management API, Contentstack is a headless CMS with an
1212
API-first approach
1313
</description>

src/main/java/com/contentstack/cms/stack/Asset.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,8 @@ public Call<ResponseBody> subfolder(
306306
* @since 2022-10-20
307307
*/
308308
public Call<ResponseBody> uploadAsset(@NotNull String filePath, String description) {
309-
RequestBody body = RequestBody.create(MediaType.parse("multipart/form-data"), description);
310-
MultipartBody.Part partFile = createMultipartBody(filePath, null, null, null, null);
311-
return this.service.uploadAsset(this.headers, partFile, body, this.params);
309+
MultipartBody body = createMultipartBody(filePath, null, null, description, null);
310+
return this.service.uploadAsset(this.headers, body, this.params);
312311
}
313312

314313

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

335333

336-
private MultipartBody.Part createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
334+
private MultipartBody createMultipartBody(String filePath, String parentUid, String title, String description, String[] tags) {
337335
MultipartBody.Builder builder = new MultipartBody.Builder();
338336
builder.setType(MultipartBody.FORM);
339337
return new FileUploader().createMultipartBody(filePath, parentUid, title, description, tags);

src/main/java/com/contentstack/cms/stack/AssetService.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ Call<ResponseBody> subfolder(
3232
@HeaderMap Map<String, Object> headers,
3333
@QueryMap(encoded = true) Map<String, Object> query);
3434

35-
@Multipart
3635
@POST("assets")
3736
Call<ResponseBody> uploadAsset(
3837
@HeaderMap Map<String, Object> headers,
39-
@Part MultipartBody.Part file,
40-
@Part("asset[description]") RequestBody description,
38+
@Body MultipartBody body,
4139
@QueryMap(encoded = true) Map<String, Object> query);
4240

4341
@Multipart

src/main/java/com/contentstack/cms/stack/FileUploader.java

+14-17
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
public class FileUploader {
1515

1616

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

@@ -28,24 +28,21 @@ public MultipartBody.Part createMultipartBody(String filePath, String parentUid,
2828
}
2929
}
3030

31-
// Add other parts if not null
32-
addFormDataPartIfNotNull(builder, "asset[parent_uid]", parentUid);
33-
addFormDataPartIfNotNull(builder, "asset[title]", title);
34-
addFormDataPartIfNotNull(builder, "asset[description]", description);
35-
36-
// Handle tags array null case
37-
if (tags != null) {
38-
addFormDataPartIfNotNull(builder, "asset[tags]", tagConvertor(tags));
31+
//Adding additional parameters
32+
if (parentUid != null && !parentUid.isBlank()) {
33+
builder.addFormDataPart("asset[parent_uid]", parentUid);
3934
}
40-
41-
return builder.build().part(0);
42-
}
43-
44-
// Helper method to add form data part if value is not null
45-
private void addFormDataPartIfNotNull(MultipartBody.Builder builder, String name, String value) {
46-
if (value != null) {
47-
builder.addFormDataPart(name, value);
35+
if (title != null && !title.isBlank()) {
36+
builder.addFormDataPart("asset[title]", title);
4837
}
38+
if (description != null && !description.isBlank()) {
39+
builder.addFormDataPart("asset[description]", description);
40+
}
41+
if (tags != null && tags.length > 0) {
42+
builder.addFormDataPart("asset[tags]", tagConvertor(tags));
43+
}
44+
45+
return builder.build();
4946
}
5047

5148
// Helper method to get content type of file

0 commit comments

Comments
 (0)