diff --git a/src/main/java/com/crowdin/client/translations/TranslationsApi.java b/src/main/java/com/crowdin/client/translations/TranslationsApi.java index 2a1e6c6ae..fcba66d26 100644 --- a/src/main/java/com/crowdin/client/translations/TranslationsApi.java +++ b/src/main/java/com/crowdin/client/translations/TranslationsApi.java @@ -5,28 +5,7 @@ import com.crowdin.client.core.http.exceptions.HttpBadRequestException; import com.crowdin.client.core.http.exceptions.HttpException; import com.crowdin.client.core.model.*; -import com.crowdin.client.translations.model.ApplyPreTranslationRequest; -import com.crowdin.client.translations.model.ApplyPreTranslationStringsBasedRequest; -import com.crowdin.client.translations.model.BuildProjectDirectoryTranslationRequest; -import com.crowdin.client.translations.model.BuildProjectFileTranslationRequest; -import com.crowdin.client.translations.model.BuildProjectTranslationRequest; -import com.crowdin.client.translations.model.ExportProjectTranslationRequest; -import com.crowdin.client.translations.model.PreTranslation; -import com.crowdin.client.translations.model.PreTranslationResponseList; -import com.crowdin.client.translations.model.PreTranslationResponseObject; -import com.crowdin.client.translations.model.PreTranslationStatus; -import com.crowdin.client.translations.model.PreTranslationStatusResponseObject; -import com.crowdin.client.translations.model.ProjectBuild; -import com.crowdin.client.translations.model.ProjectBuildResponseList; -import com.crowdin.client.translations.model.ProjectBuildResponseObject; -import com.crowdin.client.translations.model.UploadTranslationsRequest; -import com.crowdin.client.translations.model.UploadTranslationsResponse; -import com.crowdin.client.translations.model.UploadTranslationsResponseObject; -import com.crowdin.client.translations.model.UploadTranslationsStringsRequest; -import com.crowdin.client.translations.model.UploadTranslationsStringsResponse; -import com.crowdin.client.translations.model.UploadTranslationsStringsResponseObject; -import com.crowdin.client.translations.model.PreTranslationReportResponse; -import com.crowdin.client.translations.model.PreTranslationReportResponseObject; +import com.crowdin.client.translations.model.*; import java.util.Collections; import java.util.HashMap; @@ -158,6 +137,8 @@ public ResponseObject buildProjectTranslation(Long projectId, Buil } /** + * @deprecated + * * @param projectId project identifier * @param languageId language identifier * @param request request body @@ -177,6 +158,9 @@ public ResponseObject uploadTranslations(Long projec return ResponseObject.of(projectBuildResponseObject.getData()); } + /** + * @deprecated + */ public ResponseObject uploadTranslationStringsBased(Long projectId, String languageId, UploadTranslationsStringsRequest request) throws HttpException, HttpBadRequestException { UploadTranslationsStringsResponseObject projectBuildResponseObject = this.httpClient.post( this.url + "/projects/" + projectId + "/translations/" + languageId, @@ -310,4 +294,88 @@ public ResponseObject getPreTranslationReport(Long ); return ResponseObject.of(response.getData()); } + + /** + * @param projectId project identifier + * @param request request body + * @return import translations + * @see + */ + public ResponseObject importTranslations(Long projectId, ImportTranslationsRequest request) throws HttpException, HttpBadRequestException { + ImportTranslationsStatusResponseObject resp = this.httpClient.post(this.url + "/projects/" + projectId + "/translations/imports", request, new HttpRequestConfig(), ImportTranslationsStatusResponseObject.class); + return ResponseObject.of(resp.getData()); + } + + /** + * @param projectId project identifier + * @param request request body + * @return import translations + * @see + */ + public ResponseObject importTranslations(Long projectId, ImportTranslationsStringsBasedRequest request) throws HttpException, HttpBadRequestException { + ImportTranslationsStringsBasedStatusResponseObject resp = this.httpClient.post(this.url + "/projects/" + projectId + "/translations/imports", request, new HttpRequestConfig(), ImportTranslationsStringsBasedStatusResponseObject.class); + return ResponseObject.of(resp.getData()); + } + + /** + * @param projectId project identifier + * @param importId import identifier + * @return import translations + * @see + */ + public ResponseObject importTranslationsStatus(Long projectId, String importId) throws HttpException, HttpBadRequestException { + ImportTranslationsStatusResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId, new HttpRequestConfig(), ImportTranslationsStatusResponseObject.class); + return ResponseObject.of(resp.getData()); + } + + /** + * @param projectId project identifier + * @param importId import identifier + * @return import translations + * @see + */ + public ResponseObject importTranslationsStringsBasedStatus(Long projectId, String importId) throws HttpException, HttpBadRequestException { + ImportTranslationsStringsBasedStatusResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId, new HttpRequestConfig(), ImportTranslationsStringsBasedStatusResponseObject.class); + return ResponseObject.of(resp.getData()); + } + + /** + * @param projectId project identifier + * @param importId import identifier + * @return import translations + * @see + */ + public ResponseObject importTranslationsReport(Long projectId, String importId) throws HttpException, HttpBadRequestException { + ImportTranslationsReportResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId + "/report", new HttpRequestConfig(), ImportTranslationsReportResponseObject.class); + return ResponseObject.of(resp.getData()); + } + + /** + * @param projectId project identifier + * @param importId import identifier + * @return import translations + * @see + */ + public ResponseObject importTranslationsStringsBasedReport(Long projectId, String importId) throws HttpException, HttpBadRequestException { + ImportTranslationsStringsBasedReportResponseObject resp = this.httpClient.get(this.url + "/projects/" + projectId + "/translations/imports/" + importId + "/report", new HttpRequestConfig(), ImportTranslationsStringsBasedReportResponseObject.class); + return ResponseObject.of(resp.getData()); + } } diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponse.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponse.java new file mode 100644 index 000000000..b68f0025e --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponse.java @@ -0,0 +1,37 @@ +package com.crowdin.client.translations.model; + +import com.crowdin.client.core.http.impl.json.EmptyArrayToNullDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.Data; + +import java.util.List; +import java.util.Map; + + +@Data +public class ImportTranslationsReportResponse { + + private List languages; + + @Data + public static class TargetLanguage { + private String id; + private List files; + @JsonDeserialize(using = EmptyArrayToNullDeserializer.class) + private Map skipped; + @JsonDeserialize(using = EmptyArrayToNullDeserializer.class) + private Map skippedQaCheckCategories; + } + + @Data + public static class File { + private Long id; + private Statistics statistics; + } + + @Data + public static class Statistics { + private Integer phrases; + private Integer words; + } +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponseObject.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponseObject.java new file mode 100644 index 000000000..5810a3a53 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsReportResponseObject.java @@ -0,0 +1,8 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +@Data +public class ImportTranslationsReportResponseObject { + private ImportTranslationsReportResponse data; +} \ No newline at end of file diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsRequest.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsRequest.java new file mode 100644 index 000000000..5eff6cc6f --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsRequest.java @@ -0,0 +1,18 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +import java.util.List; + +@Data +public class ImportTranslationsRequest { + + private Long storageId; + private List languageIds; + private Long fileId; + private Boolean importEqSuggestions; + private Boolean autoApproveImported; + private Boolean translateHidden; + private Boolean addToTm; + +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatus.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatus.java new file mode 100644 index 000000000..e0a7807c4 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatus.java @@ -0,0 +1,30 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class ImportTranslationsStatus { + + private String identifier; + private String status; + private Integer progress; + private Attributes attributes; + private Date createdAt; + private Date updatedAt; + private String startedAt; + private String finishedAt; + + @Data + public static class Attributes { + private Long storageId; + private Long fileId; + private Boolean importEqSuggestions; + private Boolean autoApproveImported; + private Boolean translateHidden; + private Boolean addToTm; + private List languageIds; + } +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatusResponseObject.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatusResponseObject.java new file mode 100644 index 000000000..6b5d8fc0b --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStatusResponseObject.java @@ -0,0 +1,9 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +@Data +public class ImportTranslationsStatusResponseObject { + + private ImportTranslationsStatus data; +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponse.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponse.java new file mode 100644 index 000000000..2813fd99b --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponse.java @@ -0,0 +1,37 @@ +package com.crowdin.client.translations.model; + +import com.crowdin.client.core.http.impl.json.EmptyArrayToNullDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.Data; + +import java.util.List; +import java.util.Map; + + +@Data +public class ImportTranslationsStringsBasedReportResponse { + + private List languages; + + @Data + public static class TargetLanguage { + private String id; + private List branches; + @JsonDeserialize(using = EmptyArrayToNullDeserializer.class) + private Map skipped; + @JsonDeserialize(using = EmptyArrayToNullDeserializer.class) + private Map skippedQaCheckCategories; + } + + @Data + public static class Branch { + private Long id; + private Statistics statistics; + } + + @Data + public static class Statistics { + private Integer phrases; + private Integer words; + } +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponseObject.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponseObject.java new file mode 100644 index 000000000..d81ae7484 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedReportResponseObject.java @@ -0,0 +1,8 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +@Data +public class ImportTranslationsStringsBasedReportResponseObject { + private ImportTranslationsStringsBasedReportResponse data; +} \ No newline at end of file diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedRequest.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedRequest.java new file mode 100644 index 000000000..6876eaa19 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedRequest.java @@ -0,0 +1,24 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class ImportTranslationsStringsBasedRequest { + + private Long storageId; + private List languageIds; + private Long branchId; + private Boolean importEqSuggestions; + private Boolean autoApproveImported; + private Boolean translateHidden; + private Boolean addToTm; + private ImportTranslationsStringsBasedOptions importOptions; + + @Data + public static class ImportTranslationsStringsBasedOptions { + private Map scheme; + } +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatus.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatus.java new file mode 100644 index 000000000..650dbec86 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatus.java @@ -0,0 +1,30 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class ImportTranslationsStringsBasedStatus { + + private String identifier; + private String status; + private Integer progress; + private Attributes attributes; + private Date createdAt; + private Date updatedAt; + private String startedAt; + private String finishedAt; + + @Data + public static class Attributes { + private Long storageId; + private Long branchId; + private Boolean importEqSuggestions; + private Boolean autoApproveImported; + private Boolean translateHidden; + private Boolean addToTm; + private List languageIds; + } +} diff --git a/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatusResponseObject.java b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatusResponseObject.java new file mode 100644 index 000000000..8bf047052 --- /dev/null +++ b/src/main/java/com/crowdin/client/translations/model/ImportTranslationsStringsBasedStatusResponseObject.java @@ -0,0 +1,9 @@ +package com.crowdin.client.translations.model; + +import lombok.Data; + +@Data +public class ImportTranslationsStringsBasedStatusResponseObject { + + private ImportTranslationsStringsBasedStatus data; +} diff --git a/src/test/java/com/crowdin/client/translations/TranslationsApiTest.java b/src/test/java/com/crowdin/client/translations/TranslationsApiTest.java index e5988132b..0443b56f4 100644 --- a/src/test/java/com/crowdin/client/translations/TranslationsApiTest.java +++ b/src/test/java/com/crowdin/client/translations/TranslationsApiTest.java @@ -1,32 +1,9 @@ package com.crowdin.client.translations; -import com.crowdin.client.core.model.DownloadLink; -import com.crowdin.client.core.model.PatchOperation; -import com.crowdin.client.core.model.PatchRequest; -import com.crowdin.client.core.model.ResponseList; -import com.crowdin.client.core.model.ResponseObject; +import com.crowdin.client.core.model.*; import com.crowdin.client.framework.RequestMock; import com.crowdin.client.framework.TestClient; -import com.crowdin.client.translations.model.ApplyPreTranslationRequest; -import com.crowdin.client.translations.model.ApplyPreTranslationStringsBasedRequest; -import com.crowdin.client.translations.model.AutoApproveOption; -import com.crowdin.client.translations.model.BuildProjectDirectoryTranslationRequest; -import com.crowdin.client.translations.model.BuildProjectFileTranslationRequest; -import com.crowdin.client.translations.model.CharTransformation; -import com.crowdin.client.translations.model.CrowdinTranslationCraeteProjectPseudoBuildForm; -import com.crowdin.client.translations.model.CrowdinTranslationCreateProjectBuildForm; -import com.crowdin.client.translations.model.CrowdinTranslationCreateProjectPseudoBuildForm; -import com.crowdin.client.translations.model.ExportProjectTranslationRequest; -import com.crowdin.client.translations.model.Method; -import com.crowdin.client.translations.model.PreTranslation; -import com.crowdin.client.translations.model.PreTranslationStatus; -import com.crowdin.client.translations.model.ProjectBuild; -import com.crowdin.client.translations.model.UploadTranslationsRequest; -import com.crowdin.client.translations.model.UploadTranslationsResponse; -import com.crowdin.client.translations.model.UploadTranslationsStringsRequest; -import com.crowdin.client.translations.model.UploadTranslationsStringsResponse; -import com.crowdin.client.translations.model.PreTranslationReportResponse; - +import com.crowdin.client.translations.model.*; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPatch; @@ -53,6 +30,8 @@ public class TranslationsApiTest extends TestClient { private final Long storageId = 14L; private final Long buildId = 2L; private final String link = "test.com"; + private final String importId = "import-123"; + private final String importIdStringsBased = "import-strings-123"; @Override public List getMocks() { @@ -73,8 +52,14 @@ public List getMocks() { RequestMock.build(String.format("%s/projects/%d/translations/exports", this.url, projectId), HttpPost.METHOD_NAME, "api/translations/exportProjectTranslationRequest.json", "api/translations/exportProjectTranslationResponse.json"), RequestMock.build(this.url + "/projects/" + projectId + "/pre-translations", HttpGet.METHOD_NAME, "api/translations/listPreTranslations.json"), RequestMock.build(this.url + "/projects/" + projectId + "/pre-translations/" + preTranslationId, HttpPatch.METHOD_NAME, "api/translations/editPreTranslationRequest.json", "api/translations/editPreTranslationResponse.json"), - RequestMock.build(this.url + "/projects/" + projectId + "/pre-translations/" + preTranslationId + "/report", HttpGet.METHOD_NAME, "api/translations/preTranslationReportResponse.json") - ); + RequestMock.build(this.url + "/projects/" + projectId + "/pre-translations/" + preTranslationId + "/report", HttpGet.METHOD_NAME, "api/translations/preTranslationReportResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports", HttpPost.METHOD_NAME, "api/translations/importTranslationsRequest.json", "api/translations/importTranslationsResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports", HttpPost.METHOD_NAME, "api/translations/importTranslationsStringsBasedRequest.json", "api/translations/importTranslationsStringsBasedResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports/" + importId, HttpGet.METHOD_NAME, "api/translations/importTranslationsResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports/" + importIdStringsBased, HttpGet.METHOD_NAME, "api/translations/importTranslationsStringsBasedResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports/" + importId + "/report", HttpGet.METHOD_NAME, "api/translations/importTranslationsReportResponse.json"), + RequestMock.build(this.url + "/projects/" + projectId + "/translations/imports/" + importIdStringsBased + "/report", HttpGet.METHOD_NAME, "api/translations/importTranslationsStringsBasedReportResponse.json") + ); } @Test @@ -270,7 +255,7 @@ public void editPreTranslationTest() { assertEquals(language, preTranslationResponseObject.getData().getAttributes().getLanguageIds().get(0)); assertEquals(fileId, preTranslationResponseObject.getData().getAttributes().getFileIds().get(0)); } - + @Test public void getPreTranslationReportTest() { ResponseObject response = this.getTranslationsApi().getPreTranslationReport(projectId, preTranslationId); @@ -296,7 +281,57 @@ public void getPreTranslationReportTest() { assertEquals(6, skipped.get("ai_error")); Map skippedQaCheckCategories = language.getSkippedQaCheckCategories(); - assertEquals(1, skippedQaCheckCategories.get("duplicate")); + assertEquals(1, skippedQaCheckCategories.get("duplicate")); assertEquals(1, skippedQaCheckCategories.get("spellcheck")); } + + @Test + public void importTranslationsTest() { + ImportTranslationsRequest request = new ImportTranslationsRequest(); + request.setStorageId(storageId); + request.setFileId(fileId); + request.setTranslateHidden(true); + request.setLanguageIds(singletonList("uk")); + ResponseObject importTranslationsStatusResponseObject = this.getTranslationsApi().importTranslations(projectId, request); + assertEquals(importId, importTranslationsStatusResponseObject.getData().getIdentifier()); + } + + @Test + public void importTranslationStringsBasedTest() { + ImportTranslationsStringsBasedRequest request = new ImportTranslationsStringsBasedRequest(); + request.setStorageId(storageId); + request.setBranchId(branchId); + request.setAddToTm(true); + request.setLanguageIds(singletonList("es")); + ResponseObject importTranslationsStringsBasedStatusResponseObject = this.getTranslationsApi().importTranslations(projectId, request); + assertEquals(importIdStringsBased, importTranslationsStringsBasedStatusResponseObject.getData().getIdentifier()); + } + + @Test + public void importTranslationsStatusTest() { + ResponseObject importTranslationsStatusResponseObject = this.getTranslationsApi().importTranslationsStatus(projectId, importId); + assertEquals(importId, importTranslationsStatusResponseObject.getData().getIdentifier()); + } + + @Test + public void importTranslationStringsBasedStatusTest() { + ResponseObject importTranslationsStringsBasedStatusResponseObject = this.getTranslationsApi().importTranslationsStringsBasedStatus(projectId, importIdStringsBased); + assertEquals(importIdStringsBased, importTranslationsStringsBasedStatusResponseObject.getData().getIdentifier()); + } + + @Test + public void getImportTranslationsReportTest() { + ResponseObject response = this.getTranslationsApi().importTranslationsReport(projectId, importId); + assertEquals(1, response.getData().getLanguages().size()); + assertEquals(1, response.getData().getLanguages().get(0).getFiles().size()); + assertEquals(fileId, response.getData().getLanguages().get(0).getFiles().get(0).getId()); + } + + @Test + public void getImportTranslationStringsBasedReportTest() { + ResponseObject response = this.getTranslationsApi().importTranslationsStringsBasedReport(projectId, importIdStringsBased); + assertEquals(1, response.getData().getLanguages().size()); + assertEquals(1, response.getData().getLanguages().get(0).getBranches().size()); + assertEquals(branchId, response.getData().getLanguages().get(0).getBranches().get(0).getId()); + } } diff --git a/src/test/resources/api/translations/importTranslationsReportResponse.json b/src/test/resources/api/translations/importTranslationsReportResponse.json new file mode 100644 index 000000000..68b56faac --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsReportResponse.json @@ -0,0 +1,27 @@ +{ + "data": { + "languages": [ + { + "id": "uk", + "files": [ + { + "id": 2, + "statistics": { + "phrases": 10, + "words": 24 + } + } + ], + "skipped": { + "translation_eq_source": 1, + "qa_check": 0 + }, + "skippedQaCheckCategories": { + "duplicate": 0, + "spellcheck": 0 + } + } + ] + } +} + diff --git a/src/test/resources/api/translations/importTranslationsRequest.json b/src/test/resources/api/translations/importTranslationsRequest.json new file mode 100644 index 000000000..ff713b0ed --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsRequest.json @@ -0,0 +1,7 @@ +{ + "storageId": 14, + "fileId": 2, + "translateHidden": true, + "languageIds": ["uk"] +} + diff --git a/src/test/resources/api/translations/importTranslationsResponse.json b/src/test/resources/api/translations/importTranslationsResponse.json new file mode 100644 index 000000000..bac8352ce --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsResponse.json @@ -0,0 +1,17 @@ +{ + "data": { + "identifier": "import-123", + "status": "in_progress", + "progress": 10, + "attributes": { + "storageId": 14, + "fileId": 2, + "importEqSuggestions": true, + "autoApproveImported": false, + "translateHidden": true, + "addToTm": false, + "languageIds": ["uk"] + } + } +} + diff --git a/src/test/resources/api/translations/importTranslationsStringsBasedReportResponse.json b/src/test/resources/api/translations/importTranslationsStringsBasedReportResponse.json new file mode 100644 index 000000000..c3a6360ea --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsStringsBasedReportResponse.json @@ -0,0 +1,27 @@ +{ + "data": { + "languages": [ + { + "id": "uk", + "branches": [ + { + "id": 211, + "statistics": { + "phrases": 10, + "words": 24 + } + } + ], + "skipped": { + "translation_eq_source": 1, + "qa_check": 0 + }, + "skippedQaCheckCategories": { + "duplicate": 0, + "spellcheck": 0 + } + } + ] + } +} + diff --git a/src/test/resources/api/translations/importTranslationsStringsBasedRequest.json b/src/test/resources/api/translations/importTranslationsStringsBasedRequest.json new file mode 100644 index 000000000..c94ba0d56 --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsStringsBasedRequest.json @@ -0,0 +1,7 @@ +{ + "storageId": 14, + "branchId": 211, + "addToTm": true, + "languageIds": ["es"] +} + diff --git a/src/test/resources/api/translations/importTranslationsStringsBasedResponse.json b/src/test/resources/api/translations/importTranslationsStringsBasedResponse.json new file mode 100644 index 000000000..c2c4cd9e0 --- /dev/null +++ b/src/test/resources/api/translations/importTranslationsStringsBasedResponse.json @@ -0,0 +1,17 @@ +{ + "data": { + "identifier": "import-strings-123", + "status": "ok", + "progress": 100, + "attributes": { + "storageId": 14, + "branchId": 211, + "importEqSuggestions": false, + "autoApproveImported": true, + "translateHidden": true, + "addToTm": true, + "languageIds": ["es"] + } + } +} +