Skip to content

Commit 61f9b28

Browse files
authored
Merge pull request #306 from crowdin/api-updates-19-01-25
feat: api updates
2 parents 13f12d9 + 5b5294b commit 61f9b28

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+565
-226
lines changed

src/main/java/com/crowdin/client/bundles/BundlesApi.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,7 @@
1010
import com.crowdin.client.core.http.HttpRequestConfig;
1111
import com.crowdin.client.core.http.exceptions.HttpBadRequestException;
1212
import com.crowdin.client.core.http.exceptions.HttpException;
13-
import com.crowdin.client.core.model.ClientConfig;
14-
import com.crowdin.client.core.model.Credentials;
15-
import com.crowdin.client.core.model.DownloadLink;
16-
import com.crowdin.client.core.model.DownloadLinkResponseObject;
17-
import com.crowdin.client.core.model.PatchRequest;
18-
import com.crowdin.client.core.model.ResponseList;
19-
import com.crowdin.client.core.model.ResponseObject;
13+
import com.crowdin.client.core.model.*;
2014
import com.crowdin.client.sourcefiles.model.Branch;
2115
import com.crowdin.client.sourcefiles.model.BranchResponseList;
2216
import com.crowdin.client.sourcefiles.model.FileInfo;
@@ -46,7 +40,15 @@ public BundlesApi(Credentials credentials, ClientConfig clientConfig) {
4640
* </ul>
4741
*/
4842
public ResponseList<Bundle> listBundles(Long projectId) throws HttpException, HttpBadRequestException {
49-
BundleResponseList response = this.httpClient.get(this.url + "/projects/" + projectId + "/bundles", new HttpRequestConfig(), BundleResponseList.class);
43+
return listBundles(projectId, new Pagination());
44+
}
45+
46+
public ResponseList<Bundle> listBundles(Long projectId, Pagination options) throws HttpException, HttpBadRequestException {
47+
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
48+
"limit", Optional.ofNullable(options.getLimit()),
49+
"offset", Optional.ofNullable(options.getOffset())
50+
);
51+
BundleResponseList response = this.httpClient.get(this.url + "/projects/" + projectId + "/bundles", new HttpRequestConfig(queryParams), BundleResponseList.class);
5052
return BundleResponseList.to(response);
5153
}
5254

src/main/java/com/crowdin/client/bundles/model/AddBundleRequest.java

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class AddBundleRequest {
1313
private String exportPattern;
1414
private Boolean isMultilingual;
1515
private Boolean includeProjectSourceLanguage;
16+
private Boolean includeInContextPseudoLanguage;
1617
private List<Long> labelIds;
1718
private List<Long> excludeLabelIds;
1819
}

src/main/java/com/crowdin/client/core/http/HttpRequestConfig.java

+17
Original file line numberDiff line numberDiff line change
@@ -160,4 +160,21 @@ public static <T extends Optional> Map<String, T> buildUrlParams(String k1, T v1
160160
put(k11, v11);
161161
}};
162162
}
163+
164+
public static <T extends Optional> Map<String, T> buildUrlParams(String k1, T v1, String k2, T v2, String k3, T v3, String k4, T v4, String k5, T v5, String k6, T v6, String k7, T v7, String k8, T v8, String k9, T v9, String k10, T v10, String k11, T v11, String k12, T v12) {
165+
return new HashMap<String, T>() {{
166+
put(k1, v1);
167+
put(k2, v2);
168+
put(k3, v3);
169+
put(k4, v4);
170+
put(k5, v5);
171+
put(k6, v6);
172+
put(k7, v7);
173+
put(k8, v8);
174+
put(k9, v9);
175+
put(k10, v10);
176+
put(k11, v11);
177+
put(k12, v12);
178+
}};
179+
}
163180
}

src/main/java/com/crowdin/client/core/model/BooleanInt.java

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ public static BooleanInt from(String value) {
1313
return value.equals("1") ? BooleanInt.TRUE : BooleanInt.FALSE;
1414
}
1515

16+
public static BooleanInt fromInt(Integer value) {
17+
if (value == null) {
18+
return null;
19+
}
20+
return value == 1 ? BooleanInt.TRUE : BooleanInt.FALSE;
21+
}
22+
1623
@Override
1724
public Integer to(BooleanInt v) {
1825
return v.val;

src/main/java/com/crowdin/client/distributions/DistributionsApi.java

+10-7
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
import com.crowdin.client.core.http.HttpRequestConfig;
55
import com.crowdin.client.core.http.exceptions.HttpBadRequestException;
66
import com.crowdin.client.core.http.exceptions.HttpException;
7-
import com.crowdin.client.core.model.ClientConfig;
8-
import com.crowdin.client.core.model.Credentials;
9-
import com.crowdin.client.core.model.PatchRequest;
10-
import com.crowdin.client.core.model.ResponseList;
11-
import com.crowdin.client.core.model.ResponseObject;
7+
import com.crowdin.client.core.model.*;
128
import com.crowdin.client.distributions.model.AddDistributionRequest;
139
import com.crowdin.client.distributions.model.AddDistributionStringsBasedRequest;
1410
import com.crowdin.client.distributions.model.Distribution;
@@ -44,9 +40,16 @@ public DistributionsApi(Credentials credentials, ClientConfig clientConfig) {
4440
* </ul>
4541
*/
4642
public ResponseList<Distribution> listDistributions(Long projectId, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
43+
Pagination pagination = new Pagination();
44+
pagination.setLimit(limit);
45+
pagination.setOffset(offset);
46+
return listDistributions(projectId, pagination);
47+
}
48+
49+
public ResponseList<Distribution> listDistributions(Long projectId, Pagination options) throws HttpException, HttpBadRequestException {
4750
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
48-
"limit", Optional.ofNullable(limit),
49-
"offset", Optional.ofNullable(offset)
51+
"limit", Optional.ofNullable(options.getLimit()),
52+
"offset", Optional.ofNullable(options.getOffset())
5053
);
5154
DistributionResponseList distributionResponseList = this.httpClient.get(this.url + "/projects/" + projectId + "/distributions", new HttpRequestConfig(queryParams), DistributionResponseList.class);
5255
return DistributionResponseList.to(distributionResponseList);

src/main/java/com/crowdin/client/distributions/model/AddDistributionRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
@Data
88
public class AddDistributionRequest {
9-
private Enum exportMode;
9+
private ExportMode exportMode;
1010
private String name;
1111
private List<Long> fileIds;
1212
private List<Integer> bundleIds;

src/main/java/com/crowdin/client/distributions/model/Distribution.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
@Data
99
public class Distribution {
1010
private String hash;
11-
private String exportMode;
11+
private String manifestUrl;
1212
private String name;
13-
private List<Long> fileIds;
1413
private List<Integer> bundleIds;
1514
private Date createdAt;
1615
private Date updatedAt;
16+
private String exportMode;
17+
private List<Long> fileIds;
1718
}

src/main/java/com/crowdin/client/fields/FieldsApi.java

+15-8
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import com.crowdin.client.core.model.PatchRequest;
1010
import com.crowdin.client.core.model.ResponseList;
1111
import com.crowdin.client.core.model.ResponseObject;
12-
import com.crowdin.client.fields.model.Field;
13-
import com.crowdin.client.fields.model.FieldRequest;
14-
import com.crowdin.client.fields.model.FieldResponseObject;
15-
import com.crowdin.client.fields.model.FieldResponseObjectList;
12+
import com.crowdin.client.fields.model.*;
1613

1714
import java.util.List;
1815
import java.util.Map;
@@ -39,11 +36,21 @@ public FieldsApi(Credentials credentials, ClientConfig clientConfig) {
3936
* </ul>
4037
*/
4138
public ResponseList<Field> listFields(String entity, String search, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
39+
ListFieldsParams params = new ListFieldsParams();
40+
params.setEntity(entity);
41+
params.setSearch(search);
42+
params.setLimit(limit);
43+
params.setOffset(offset);
44+
return listFields(params);
45+
}
46+
47+
public ResponseList<Field> listFields(ListFieldsParams params) throws HttpException, HttpBadRequestException {
4248
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
43-
"entity", Optional.ofNullable(entity),
44-
"search", Optional.ofNullable(search),
45-
"limit", Optional.ofNullable(limit),
46-
"offset", Optional.ofNullable(offset)
49+
"entity", Optional.ofNullable(params.getEntity()),
50+
"search", Optional.ofNullable(params.getSearch()),
51+
"limit", Optional.ofNullable(params.getLimit()),
52+
"type", Optional.ofNullable(params.getType()),
53+
"offset", Optional.ofNullable(params.getOffset())
4754
);
4855
FieldResponseObjectList responseObject = this.httpClient.get(this.url + "/fields", new HttpRequestConfig(queryParams), FieldResponseObjectList.class);
4956
return FieldResponseObjectList.to(responseObject);

src/main/java/com/crowdin/client/fields/model/Config.java

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
public class Config {
99
private List<Option> options;
1010
private List<Location> locations;
11+
private Integer min;
12+
private Integer max;
13+
private String units;
1114

1215
@Data
1316
public static class Option {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.crowdin.client.fields.model;
2+
3+
import com.crowdin.client.core.model.Pagination;
4+
import com.crowdin.client.fields.model.enums.FieldType;
5+
import lombok.Data;
6+
import lombok.EqualsAndHashCode;
7+
8+
@Data
9+
@EqualsAndHashCode(callSuper = false)
10+
public class ListFieldsParams extends Pagination {
11+
12+
private String entity;
13+
private String search;
14+
private FieldType type;
15+
}

src/main/java/com/crowdin/client/glossaries/GlossariesApi.java

+42-31
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,7 @@
1111
import com.crowdin.client.core.model.PatchRequest;
1212
import com.crowdin.client.core.model.ResponseList;
1313
import com.crowdin.client.core.model.ResponseObject;
14-
import com.crowdin.client.glossaries.model.AddGlossaryRequest;
15-
import com.crowdin.client.glossaries.model.AddTermRequest;
16-
import com.crowdin.client.glossaries.model.Concept;
17-
import com.crowdin.client.glossaries.model.ConceptResponseList;
18-
import com.crowdin.client.glossaries.model.ConceptResponseObject;
19-
import com.crowdin.client.glossaries.model.ExportGlossaryRequest;
20-
import com.crowdin.client.glossaries.model.Glossary;
21-
import com.crowdin.client.glossaries.model.GlossaryExportStatus;
22-
import com.crowdin.client.glossaries.model.GlossaryExportStatusResponseObject;
23-
import com.crowdin.client.glossaries.model.GlossaryImportStatus;
24-
import com.crowdin.client.glossaries.model.GlossaryImportStatusResponseObject;
25-
import com.crowdin.client.glossaries.model.GlossaryResponseList;
26-
import com.crowdin.client.glossaries.model.GlossaryResponseObject;
27-
import com.crowdin.client.glossaries.model.ImportGlossaryRequest;
28-
import com.crowdin.client.glossaries.model.SearchConcordance;
29-
import com.crowdin.client.glossaries.model.SearchConcordanceRequest;
30-
import com.crowdin.client.glossaries.model.SearchConcordanceResponseList;
31-
import com.crowdin.client.glossaries.model.Term;
32-
import com.crowdin.client.glossaries.model.TermResponseList;
33-
import com.crowdin.client.glossaries.model.TermResponseObject;
14+
import com.crowdin.client.glossaries.model.*;
3415

3516
import java.util.List;
3617
import java.util.Map;
@@ -72,9 +53,17 @@ public ResponseList<SearchConcordance> searchConcordance(Long projectId, SearchC
7253
* </ul>
7354
*/
7455
public ResponseList<Concept> listConcepts(Long glossaryId, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
56+
ListConceptsParams params = new ListConceptsParams();
57+
params.setLimit(limit);
58+
params.setOffset(offset);
59+
return listConcepts(glossaryId, params);
60+
}
61+
62+
public ResponseList<Concept> listConcepts(Long glossaryId, ListConceptsParams params) throws HttpException, HttpBadRequestException {
7563
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
76-
"limit", Optional.ofNullable(limit),
77-
"offset", Optional.ofNullable(offset)
64+
"orderBy", Optional.ofNullable(params.getOrderBy()),
65+
"limit", Optional.ofNullable(params.getLimit()),
66+
"offset", Optional.ofNullable(params.getOffset())
7867
);
7968
ConceptResponseList conceptResponseList = this.httpClient.get(this.url + "/glossaries/" + glossaryId + "/concepts", new HttpRequestConfig(queryParams), ConceptResponseList.class);
8069
return ConceptResponseList.to(conceptResponseList);
@@ -132,10 +121,19 @@ public void deleteConcept(Long glossaryId, Long conceptId) throws HttpException,
132121
* </ul>
133122
*/
134123
public ResponseList<Glossary> listGlossaries(Long groupId, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
124+
ListGlossariesParams params = new ListGlossariesParams();
125+
params.setGroupId(groupId);
126+
params.setLimit(limit);
127+
params.setOffset(offset);
128+
return listGlossaries(params);
129+
}
130+
131+
public ResponseList<Glossary> listGlossaries(ListGlossariesParams params) throws HttpException, HttpBadRequestException {
135132
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
136-
"groupId", Optional.ofNullable(groupId),
137-
"limit", Optional.ofNullable(limit),
138-
"offset", Optional.ofNullable(offset)
133+
"groupId", Optional.ofNullable(params.getGroupId()),
134+
"userId", Optional.ofNullable(params.getUserId()),
135+
"limit", Optional.ofNullable(params.getLimit()),
136+
"offset", Optional.ofNullable(params.getOffset())
139137
);
140138
GlossaryResponseList glossaryResponseList = this.httpClient.get(this.url + "/glossaries", new HttpRequestConfig(queryParams), GlossaryResponseList.class);
141139
return GlossaryResponseList.to(glossaryResponseList);
@@ -277,13 +275,26 @@ public ResponseObject<GlossaryImportStatus> checkGlossaryImportStatus(Long gloss
277275
* </ul>
278276
*/
279277
public ResponseList<Term> listTerms(Long glossaryId, Long userId, String languageId, Long conceptId, @Deprecated Long translationOfTermId, Integer limit, Integer offset) throws HttpException, HttpBadRequestException {
278+
ListTermsParams params = new ListTermsParams();
279+
params.setUserId(userId);
280+
params.setLanguageId(languageId);
281+
params.setConceptId(conceptId);
282+
params.setTranslationOfTermId(translationOfTermId);
283+
params.setLimit(limit);
284+
params.setOffset(offset);
285+
return listTerms(glossaryId, params);
286+
}
287+
288+
public ResponseList<Term> listTerms(Long glossaryId, ListTermsParams params) throws HttpException, HttpBadRequestException {
280289
Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams(
281-
"userId", Optional.ofNullable(userId),
282-
"languageId", Optional.ofNullable(languageId),
283-
"conceptId", Optional.ofNullable(conceptId),
284-
"translationOfTermId", Optional.ofNullable(translationOfTermId),
285-
"limit", Optional.ofNullable(limit),
286-
"offset", Optional.ofNullable(offset)
290+
"orderBy", Optional.ofNullable(params.getOrderBy()),
291+
"userId", Optional.ofNullable(params.getUserId()),
292+
"languageId", Optional.ofNullable(params.getLanguageId()),
293+
"conceptId", Optional.ofNullable(params.getConceptId()),
294+
"translationOfTermId", Optional.ofNullable(params.getTranslationOfTermId()),
295+
"croql", Optional.ofNullable(params.getCroql()),
296+
"limit", Optional.ofNullable(params.getLimit()),
297+
"offset", Optional.ofNullable(params.getOffset())
287298
);
288299
TermResponseList termResponseList = this.httpClient.get(this.url + "/glossaries/" + glossaryId + "/terms", new HttpRequestConfig(queryParams), TermResponseList.class);
289300
return TermResponseList.to(termResponseList);

src/main/java/com/crowdin/client/glossaries/model/Concept.java

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class Concept {
1313
private Long glossaryId;
1414
private String subject;
1515
private String definition;
16+
private Boolean translatable;
1617
private String note;
1718
private String url;
1819
private String figure;

src/main/java/com/crowdin/client/glossaries/model/Glossary.java

+3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ public class Glossary {
1313
private Long groupId;
1414
private Long userId;
1515
private Integer terms;
16+
private String languageId;
1617
private List<String> languageIds;
18+
private List<Long> defaultProjectIds;
1719
private List<Long> projectIds;
20+
private String webUrl;
1821
private Date createdAt;
1922
}

src/main/java/com/crowdin/client/glossaries/model/GlossaryExportStatus.java

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import lombok.Data;
44

55
import java.util.Date;
6+
import java.util.List;
67

78
@Data
89
public class GlossaryExportStatus {
@@ -20,5 +21,6 @@ public class GlossaryExportStatus {
2021
public static class Attributes {
2122

2223
private GlossariesFormat format;
24+
private List<String> exportFields;
2325
}
2426
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.crowdin.client.glossaries.model;
2+
3+
import com.crowdin.client.core.model.Pagination;
4+
import lombok.Data;
5+
6+
@Data
7+
public class ListConceptsParams extends Pagination {
8+
9+
private String orderBy;
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.crowdin.client.glossaries.model;
2+
3+
import com.crowdin.client.core.model.Pagination;
4+
import lombok.Data;
5+
6+
@Data
7+
public class ListGlossariesParams extends Pagination {
8+
9+
private String orderBy;
10+
private Long userId;
11+
private Long groupId;
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.crowdin.client.glossaries.model;
2+
3+
import com.crowdin.client.core.model.Pagination;
4+
import lombok.Data;
5+
6+
@Data
7+
public class ListTermsParams extends Pagination {
8+
9+
private String orderBy;
10+
private Long userId;
11+
private String languageId;
12+
private Long conceptId;
13+
/**
14+
* @deprecated
15+
*/
16+
private Long translationOfTermId;
17+
private String croql;
18+
}

0 commit comments

Comments
 (0)