From 7c4d9240797c146d2915fe408ba901dd33e3dad0 Mon Sep 17 00:00:00 2001 From: reeshika-h Date: Fri, 19 Apr 2024 17:02:27 +0530 Subject: [PATCH] Passed the additional parameters correctly in asset upload method --- changelog.md | 5 +++ pom.xml | 2 +- .../com/contentstack/cms/stack/Asset.java | 12 +++---- .../contentstack/cms/stack/AssetService.java | 4 +-- .../contentstack/cms/stack/FileUploader.java | 31 +++++++++---------- 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/changelog.md b/changelog.md index 2004b85f..38fc8de1 100644 --- a/changelog.md +++ b/changelog.md @@ -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 diff --git a/pom.xml b/pom.xml index 14851660..f4faa4d4 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ cms jar contentstack-management-java - 1.3.3 + 1.4.0 Contentstack Java Management SDK for Content Management API, Contentstack is a headless CMS with an API-first approach diff --git a/src/main/java/com/contentstack/cms/stack/Asset.java b/src/main/java/com/contentstack/cms/stack/Asset.java index c78abb87..6cd802ae 100644 --- a/src/main/java/com/contentstack/cms/stack/Asset.java +++ b/src/main/java/com/contentstack/cms/stack/Asset.java @@ -306,9 +306,8 @@ public Call subfolder( * @since 2022-10-20 */ public Call 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); } @@ -327,13 +326,12 @@ public Call uploadAsset(@NotNull String filePath, String descripti * @return Call */ public Call 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); diff --git a/src/main/java/com/contentstack/cms/stack/AssetService.java b/src/main/java/com/contentstack/cms/stack/AssetService.java index 56ac65ba..5199adeb 100644 --- a/src/main/java/com/contentstack/cms/stack/AssetService.java +++ b/src/main/java/com/contentstack/cms/stack/AssetService.java @@ -32,12 +32,10 @@ Call subfolder( @HeaderMap Map headers, @QueryMap(encoded = true) Map query); - @Multipart @POST("assets") Call uploadAsset( @HeaderMap Map headers, - @Part MultipartBody.Part file, - @Part("asset[description]") RequestBody description, + @Body MultipartBody body, @QueryMap(encoded = true) Map query); @Multipart diff --git a/src/main/java/com/contentstack/cms/stack/FileUploader.java b/src/main/java/com/contentstack/cms/stack/FileUploader.java index 8b28c150..5fe3bb9f 100644 --- a/src/main/java/com/contentstack/cms/stack/FileUploader.java +++ b/src/main/java/com/contentstack/cms/stack/FileUploader.java @@ -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); @@ -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