From e0b02266c3bb87f15e79d127b3a940bdc0db517a Mon Sep 17 00:00:00 2001 From: Kirill Soloviov Date: Thu, 22 May 2025 17:15:11 +0200 Subject: [PATCH 1/3] TCM-5729: Allow JSON translations in the Smartling Translate add json file type switch fileType field to String (clients could use new values without upgrading sdk lib) --- .../api/filetranslations/v2/pto/FileType.java | 4 +++- .../v2/pto/file/FileUploadRequest.java | 10 ++++------ .../filetranslations/v2/FileTranslationsApiTest.java | 5 +++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/FileType.java b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/FileType.java index 0ef16c8c..de1ce32e 100644 --- a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/FileType.java +++ b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/FileType.java @@ -27,7 +27,9 @@ public enum FileType XLIFF2("application/xml", true), // XLIFF 2.0 parser CSV("text/csv", true), // CSV (Comma-separated values) XLSX_TEMPLATE("application/octet-stream", false), // Smartling XLSX - https://help.smartling.com/hc/en-us/articles/1260804224670-Translating-Spreadsheets#h_01F3TKVZBVPFJSF2XZEBHDH1EQ - ANDROID("application/xml", true); // ANDROID parser + ANDROID("application/xml", true), // ANDROID parser + JSON("application/json", true), + ; private final String identifier; private final String mimeType; private final boolean isTextFormat; diff --git a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java index e42ae861..73c6579a 100644 --- a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java +++ b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java @@ -1,27 +1,25 @@ package com.smartling.api.filetranslations.v2.pto.file; -import com.smartling.api.filetranslations.v2.pto.FileType; - public class FileUploadRequest { - private FileType fileType; + private String fileType; public FileUploadRequest() { } - public FileUploadRequest(FileType fileType) + public FileUploadRequest(String fileType) { this.fileType = fileType; } - public FileType getFileType() + public String getFileType() { return fileType; } - public void setFileType(FileType fileType) + public void setFileType(String fileType) { this.fileType = fileType; } diff --git a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java index b85e9579..3356022c 100644 --- a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java +++ b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java @@ -91,6 +91,7 @@ public void setUp() throws Exception @After public void tearDown() throws Exception { + sut.close(); mockWebServer.shutdown(); } @@ -100,7 +101,7 @@ public void uploadFile() throws InterruptedException assignResponse(HttpStatus.SC_OK, String.format(SUCCESS_RESPONSE_ENVELOPE, String.format("{\"fileUid\":\"%s\"}", FILE_UID))); FileUploadRequest request = new FileUploadRequest(); - request.setFileType(FileType.PLAIN_TEXT); + request.setFileType(FileType.PLAIN_TEXT.getIdentifier()); FileUploadPTO fileUploadPTO = new FileUploadPTO(); fileUploadPTO.setRequest(request); fileUploadPTO.setFile(new ByteArrayInputStream("whatever".getBytes(StandardCharsets.UTF_8))); @@ -109,7 +110,7 @@ public void uploadFile() throws InterruptedException FileUploadResponse response = sut.uploadFile(ACCOUNT_UID, fileUploadPTO); LinkedHashMap parts = toParts(getRequestWithValidation(HttpMethod.POST, String.format("/file-translations-api/v2/accounts/%s/files", ACCOUNT_UID))); - assertThat(toObj(parts.get("request").getBodyUtf8(), FileUploadRequest.class).getFileType(), is(FileType.PLAIN_TEXT)); + assertThat(toObj(parts.get("request").getBodyUtf8(), FileUploadRequest.class).getFileType(), is(FileType.PLAIN_TEXT.getIdentifier())); assertThat(parts.get("file").getBodyUtf8(), is("whatever")); assertNotNull(response); From 3d02a55ddee37a4595489f253d44339eb3897fd4 Mon Sep 17 00:00:00 2001 From: Kirill Soloviov Date: Thu, 22 May 2025 18:41:31 +0200 Subject: [PATCH 2/3] TCM-5729: Allow JSON translations in the Smartling Translate revert fileType field to String (clients could use new values without upgrading sdk lib) by Max request --- .../v2/pto/file/FileUploadRequest.java | 10 ++++++---- .../filetranslations/v2/FileTranslationsApiTest.java | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java index 73c6579a..e42ae861 100644 --- a/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java +++ b/smartling-file-translations-api/src/main/java/com/smartling/api/filetranslations/v2/pto/file/FileUploadRequest.java @@ -1,25 +1,27 @@ package com.smartling.api.filetranslations.v2.pto.file; +import com.smartling.api.filetranslations.v2.pto.FileType; + public class FileUploadRequest { - private String fileType; + private FileType fileType; public FileUploadRequest() { } - public FileUploadRequest(String fileType) + public FileUploadRequest(FileType fileType) { this.fileType = fileType; } - public String getFileType() + public FileType getFileType() { return fileType; } - public void setFileType(String fileType) + public void setFileType(FileType fileType) { this.fileType = fileType; } diff --git a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java index 3356022c..f81493a2 100644 --- a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java +++ b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java @@ -101,7 +101,7 @@ public void uploadFile() throws InterruptedException assignResponse(HttpStatus.SC_OK, String.format(SUCCESS_RESPONSE_ENVELOPE, String.format("{\"fileUid\":\"%s\"}", FILE_UID))); FileUploadRequest request = new FileUploadRequest(); - request.setFileType(FileType.PLAIN_TEXT.getIdentifier()); + request.setFileType(FileType.PLAIN_TEXT); FileUploadPTO fileUploadPTO = new FileUploadPTO(); fileUploadPTO.setRequest(request); fileUploadPTO.setFile(new ByteArrayInputStream("whatever".getBytes(StandardCharsets.UTF_8))); @@ -110,7 +110,7 @@ public void uploadFile() throws InterruptedException FileUploadResponse response = sut.uploadFile(ACCOUNT_UID, fileUploadPTO); LinkedHashMap parts = toParts(getRequestWithValidation(HttpMethod.POST, String.format("/file-translations-api/v2/accounts/%s/files", ACCOUNT_UID))); - assertThat(toObj(parts.get("request").getBodyUtf8(), FileUploadRequest.class).getFileType(), is(FileType.PLAIN_TEXT.getIdentifier())); + assertThat(toObj(parts.get("request").getBodyUtf8(), FileUploadRequest.class).getFileType(), is(FileType.PLAIN_TEXT)); assertThat(parts.get("file").getBodyUtf8(), is("whatever")); assertNotNull(response); From f7585f1c726db7e06d78c2f16d4c943ad698f424 Mon Sep 17 00:00:00 2001 From: Kirill Soloviov Date: Thu, 22 May 2025 18:42:42 +0200 Subject: [PATCH 3/3] TCM-5729: Allow JSON translations in the Smartling Translate revert fileType field to String (clients could use new values without upgrading sdk lib) by Max request --- .../api/filetranslations/v2/FileTranslationsApiTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java index f81493a2..b85e9579 100644 --- a/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java +++ b/smartling-file-translations-api/src/test/java/com/smartling/api/filetranslations/v2/FileTranslationsApiTest.java @@ -91,7 +91,6 @@ public void setUp() throws Exception @After public void tearDown() throws Exception { - sut.close(); mockWebServer.shutdown(); }