Skip to content

Commit 8d89fe4

Browse files
authored
Merge pull request #32 from crowdin/change-build-project-translation-request
Add non-enterprise options to BuildProjectTranslationRequest
2 parents 64e0196 + bed8869 commit 8d89fe4

6 files changed

Lines changed: 80 additions & 19 deletions

File tree

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
11
package com.crowdin.client.translations.model;
22

3-
import lombok.Data;
4-
5-
import java.util.List;
6-
7-
@Data
8-
public class BuildProjectTranslationRequest {
9-
10-
private Long branchId;
11-
private List<String> targetLanguageIds;
3+
public interface BuildProjectTranslationRequest {
124
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.crowdin.client.translations.model;
2+
3+
import com.crowdin.client.core.model.EnumConverter;
4+
5+
public enum CharTransformation implements EnumConverter<CharTransformation> {
6+
ASIAN("asian"), CYRILLIC("cyrillic"), EUROPEAN("european"), ARABIC("arabic");
7+
8+
private final String value;
9+
10+
CharTransformation(String value) {
11+
this.value = value;
12+
}
13+
14+
public static CharTransformation from(String value) {
15+
for (CharTransformation m : CharTransformation.values()) {
16+
if (m.value.equals(value)) {
17+
return m;
18+
}
19+
}
20+
return null;
21+
}
22+
23+
@Override
24+
public String to(CharTransformation v) {
25+
return v.value;
26+
}
27+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.crowdin.client.translations.model;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class CrowdinTranslationCraeteProjectPseudoBuildForm implements BuildProjectTranslationRequest {
7+
8+
private Boolean pseudo;
9+
private String prefix;
10+
private String suffix;
11+
private Integer lengthTransformation;
12+
private CharTransformation charTransformation;
13+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.crowdin.client.translations.model;
2+
3+
import lombok.Data;
4+
5+
import java.util.List;
6+
7+
@Data
8+
public class CrowdinTranslationCreateProjectBuildForm implements BuildProjectTranslationRequest {
9+
10+
private Long branchId;
11+
private List<String> targetLanguageIds;
12+
private Boolean exportTranslatedOnly;
13+
private Boolean skipUntranslatedFiles;
14+
private Boolean exportApprovedOnly;
15+
16+
}

src/test/java/com/crowdin/client/translations/TranslationsApiTest.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,7 @@
55
import com.crowdin.client.core.model.ResponseObject;
66
import com.crowdin.client.framework.RequestMock;
77
import com.crowdin.client.framework.TestClient;
8-
import com.crowdin.client.translations.model.ApplyPreTranslationRequest;
9-
import com.crowdin.client.translations.model.AutoApproveOption;
10-
import com.crowdin.client.translations.model.BuildProjectFileTranslationRequest;
11-
import com.crowdin.client.translations.model.BuildProjectTranslationRequest;
12-
import com.crowdin.client.translations.model.Method;
13-
import com.crowdin.client.translations.model.PreTranslationStatus;
14-
import com.crowdin.client.translations.model.ProjectBuild;
15-
import com.crowdin.client.translations.model.UploadTranslationsRequest;
16-
import com.crowdin.client.translations.model.UploadTranslationsResponse;
8+
import com.crowdin.client.translations.model.*;
179
import org.apache.http.client.methods.HttpDelete;
1810
import org.apache.http.client.methods.HttpGet;
1911
import org.apache.http.client.methods.HttpPost;
@@ -28,6 +20,7 @@
2820
public class TranslationsApiTest extends TestClient {
2921

3022
private final Long projectId = 12L;
23+
private final Long parallelProjectId = 13L;
3124
private final String language = "uk";
3225
private final String preTranslationId = "9e7de270-4f83-41cb-b606-2f90631f26e2";
3326
private final Long fileId = 2L;
@@ -43,6 +36,7 @@ public List<RequestMock> getMocks() {
4336
RequestMock.build(this.url + "/projects/" + projectId + "/translations/builds/files/" + fileId, HttpPost.METHOD_NAME, "api/translations/buildFileRequest.json", "api/translations/downloadLink.json"),
4437
RequestMock.build(this.url + "/projects/" + projectId + "/translations/builds", HttpGet.METHOD_NAME, "api/translations/listProjectBuilds.json"),
4538
RequestMock.build(this.url + "/projects/" + projectId + "/translations/builds", HttpPost.METHOD_NAME, "api/translations/buildProjectRequest.json", "api/translations/projectBuildStatus.json"),
39+
RequestMock.build(this.url + "/projects/" + parallelProjectId + "/translations/builds", HttpPost.METHOD_NAME, "api/translations/pseudoBuildProjectRequest.json", "api/translations/projectBuildStatus.json"),
4640
RequestMock.build(this.url + "/projects/" + projectId + "/translations/" + language, HttpPost.METHOD_NAME, "api/translations/uploadTranslationRequest.json", "api/translations/uploadTranslationResponse.json"),
4741
RequestMock.build(this.url + "/projects/" + projectId + "/translations/builds/" + buildId + "/download", HttpGet.METHOD_NAME, "api/translations/downloadLink.json"),
4842
RequestMock.build(this.url + "/projects/" + projectId + "/translations/builds/" + buildId, HttpGet.METHOD_NAME, "api/translations/projectBuildStatus.json"),
@@ -84,12 +78,24 @@ public void listProjectBuildsTest() {
8478

8579
@Test
8680
public void buildProjectTranslationTest() {
87-
BuildProjectTranslationRequest request = new BuildProjectTranslationRequest();
81+
CrowdinTranslationCreateProjectBuildForm request = new CrowdinTranslationCreateProjectBuildForm();
8882
request.setTargetLanguageIds(singletonList(language));
8983
ResponseObject<ProjectBuild> projectBuildResponseObject = this.getTranslationsApi().buildProjectTranslation(projectId, request);
9084
assertEquals(projectBuildResponseObject.getData().getId(), buildId);
9185
}
9286

87+
@Test
88+
public void pseudoBuildProjectTranslationTest() {
89+
CrowdinTranslationCraeteProjectPseudoBuildForm request = new CrowdinTranslationCraeteProjectPseudoBuildForm();
90+
request.setPseudo(true);
91+
request.setPrefix("pre");
92+
request.setSuffix("ion");
93+
request.setLengthTransformation(0);
94+
request.setCharTransformation(CharTransformation.ASIAN);
95+
ResponseObject<ProjectBuild> projectBuildResponseObject = this.getTranslationsApi().buildProjectTranslation(parallelProjectId, request);
96+
assertEquals(projectBuildResponseObject.getData().getId(), buildId);
97+
}
98+
9399
@Test
94100
public void uploadTranslationsTest() {
95101
UploadTranslationsRequest request = new UploadTranslationsRequest();
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"pseudo": true,
3+
"prefix": "pre",
4+
"suffix": "ion",
5+
"lengthTransformation": 0,
6+
"charTransformation": "asian"
7+
}

0 commit comments

Comments
 (0)