Skip to content

Commit ca21316

Browse files
author
devkadirselcuk
authored
Merge pull request #17 from crowdin/master
[pull] master from crowdin:master
2 parents b14530f + acc8002 commit ca21316

File tree

8 files changed

+260
-39
lines changed

8 files changed

+260
-39
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@crowdin/crowdin-api-client",
3-
"version": "1.12.2",
3+
"version": "1.12.3",
44
"description": "JavaScript library for Crowdin API v2.",
55
"main": "out/index.js",
66
"types": "out/index.d.ts",

src/sourceFiles/index.ts

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,29 @@ export class SourceFiles extends CrowdinApi {
7979
offset?: number,
8080
filter?: string,
8181
recursion?: string,
82+
): Promise<ResponseList<SourceFilesModel.Directory>>;
83+
84+
listProjectDirectories(
85+
projectId: number,
86+
branchIdOrRequest?: number | SourceFilesModel.ListProjectDirectoriesRequest,
87+
directoryId?: number,
88+
limit?: number,
89+
offset?: number,
90+
filter?: string,
91+
recursion?: string,
8292
): Promise<ResponseList<SourceFilesModel.Directory>> {
8393
let url = `${this.url}/projects/${projectId}/directories`;
84-
url = this.addQueryParam(url, 'branchId', branchId);
85-
url = this.addQueryParam(url, 'directoryId', directoryId);
86-
url = this.addQueryParam(url, 'filter', filter);
87-
url = this.addQueryParam(url, 'recursion', recursion);
88-
return this.getList(url, limit, offset);
94+
let request: SourceFilesModel.ListProjectDirectoriesRequest;
95+
if (branchIdOrRequest && typeof branchIdOrRequest === 'object') {
96+
request = branchIdOrRequest;
97+
} else {
98+
request = { branchId: branchIdOrRequest, directoryId, limit, offset, recursion, filter };
99+
}
100+
url = this.addQueryParam(url, 'branchId', request.branchId);
101+
url = this.addQueryParam(url, 'directoryId', request.directoryId);
102+
url = this.addQueryParam(url, 'filter', request.filter);
103+
url = this.addQueryParam(url, 'recursion', request.recursion);
104+
return this.getList(url, request.limit, request.offset);
89105
}
90106

91107
/**
@@ -353,6 +369,15 @@ export namespace SourceFilesModel {
353369
HIGH = 'high',
354370
}
355371

372+
export interface ListProjectDirectoriesRequest {
373+
branchId?: number;
374+
directoryId?: number;
375+
limit?: number;
376+
offset?: number;
377+
filter?: string;
378+
recursion?: string;
379+
}
380+
356381
export interface Directory {
357382
id: number;
358383
projectId: number;

src/stringTranslations/index.ts

Lines changed: 105 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,29 @@ export class StringTranslations extends CrowdinApi {
1818
limit?: number,
1919
offset?: number,
2020
fileId?: number,
21+
): Promise<ResponseList<StringTranslationsModel.Approval>>;
22+
23+
listTranslationApprovals(
24+
projectId: number,
25+
stringIdOrRequest?: number | StringTranslationsModel.ListTranslationApprovalsRequest,
26+
languageId?: string,
27+
translationId?: number,
28+
limit?: number,
29+
offset?: number,
30+
fileId?: number,
2131
): Promise<ResponseList<StringTranslationsModel.Approval>> {
2232
let url = `${this.url}/projects/${projectId}/approvals`;
23-
url = this.addQueryParam(url, 'stringId', stringId);
24-
url = this.addQueryParam(url, 'languageId', languageId);
25-
url = this.addQueryParam(url, 'translationId', translationId);
26-
url = this.addQueryParam(url, 'fileId', fileId);
27-
return this.getList(url, limit, offset);
33+
let request: StringTranslationsModel.ListTranslationApprovalsRequest;
34+
if (stringIdOrRequest && typeof stringIdOrRequest === 'object') {
35+
request = stringIdOrRequest;
36+
} else {
37+
request = { stringId: stringIdOrRequest, languageId, translationId, limit, offset, fileId };
38+
}
39+
url = this.addQueryParam(url, 'stringId', request.stringId);
40+
url = this.addQueryParam(url, 'languageId', request.languageId);
41+
url = this.addQueryParam(url, 'translationId', request.translationId);
42+
url = this.addQueryParam(url, 'fileId', request.fileId);
43+
return this.getList(url, request.limit, request.offset);
2844
}
2945

3046
/**
@@ -84,14 +100,46 @@ export class StringTranslations extends CrowdinApi {
84100
| StringTranslationsModel.PluralLanguageTranslation
85101
| StringTranslationsModel.IcuLanguageTranslation
86102
>
103+
>;
104+
105+
listLanguageTranslations(
106+
projectId: number,
107+
languageId: string,
108+
stringIdsOrRequest?: string | StringTranslationsModel.ListLanguageTranslationsRequest,
109+
fileId?: number,
110+
limit?: number,
111+
offset?: number,
112+
labelIds?: string,
113+
denormalizePlaceholders?: BooleanInt,
114+
croql?: string,
115+
): Promise<
116+
ResponseList<
117+
| StringTranslationsModel.PlainLanguageTranslation
118+
| StringTranslationsModel.PluralLanguageTranslation
119+
| StringTranslationsModel.IcuLanguageTranslation
120+
>
87121
> {
88122
let url = `${this.url}/projects/${projectId}/languages/${languageId}/translations`;
89-
url = this.addQueryParam(url, 'stringIds', stringIds);
90-
url = this.addQueryParam(url, 'fileId', fileId);
91-
url = this.addQueryParam(url, 'labelIds', labelIds);
92-
url = this.addQueryParam(url, 'denormalizePlaceholders', denormalizePlaceholders);
93-
url = this.addQueryParam(url, 'croql', croql);
94-
return this.getList(url, limit, offset);
123+
let request: StringTranslationsModel.ListLanguageTranslationsRequest;
124+
if (stringIdsOrRequest && typeof stringIdsOrRequest === 'object') {
125+
request = stringIdsOrRequest;
126+
} else {
127+
request = {
128+
stringIds: stringIdsOrRequest,
129+
fileId,
130+
limit,
131+
offset,
132+
labelIds,
133+
denormalizePlaceholders,
134+
croql,
135+
};
136+
}
137+
url = this.addQueryParam(url, 'stringIds', request.stringIds);
138+
url = this.addQueryParam(url, 'fileId', request.fileId);
139+
url = this.addQueryParam(url, 'labelIds', request.labelIds);
140+
url = this.addQueryParam(url, 'denormalizePlaceholders', request.denormalizePlaceholders);
141+
url = this.addQueryParam(url, 'croql', request.croql);
142+
return this.getList(url, request.limit, request.offset);
95143
}
96144

97145
/**
@@ -189,12 +237,27 @@ export class StringTranslations extends CrowdinApi {
189237
translationId?: number,
190238
limit?: number,
191239
offset?: number,
240+
): Promise<ResponseList<StringTranslationsModel.Vote>>;
241+
242+
listTranslationVotes(
243+
projectId: number,
244+
stringIdOrRequest?: number | StringTranslationsModel.ListTranslationVotesRequest,
245+
languageId?: string,
246+
translationId?: number,
247+
limit?: number,
248+
offset?: number,
192249
): Promise<ResponseList<StringTranslationsModel.Vote>> {
193250
let url = `${this.url}/projects/${projectId}/votes`;
194-
url = this.addQueryParam(url, 'stringId', stringId);
195-
url = this.addQueryParam(url, 'languageId', languageId);
196-
url = this.addQueryParam(url, 'translationId', translationId);
197-
return this.getList(url, limit, offset);
251+
let request: StringTranslationsModel.ListTranslationVotesRequest;
252+
if (stringIdOrRequest && typeof stringIdOrRequest === 'object') {
253+
request = stringIdOrRequest;
254+
} else {
255+
request = { stringId: stringIdOrRequest, languageId, translationId, limit, offset };
256+
}
257+
url = this.addQueryParam(url, 'stringId', request.stringId);
258+
url = this.addQueryParam(url, 'languageId', request.languageId);
259+
url = this.addQueryParam(url, 'translationId', request.translationId);
260+
return this.getList(url, request.limit, request.offset);
198261
}
199262

200263
/**
@@ -229,6 +292,15 @@ export class StringTranslations extends CrowdinApi {
229292
}
230293

231294
export namespace StringTranslationsModel {
295+
export interface ListTranslationApprovalsRequest {
296+
stringId?: number;
297+
languageId?: string;
298+
translationId?: number;
299+
limit?: number;
300+
offset?: number;
301+
fileId?: number;
302+
}
303+
232304
export interface Approval {
233305
id: number;
234306
user: User;
@@ -252,6 +324,16 @@ export namespace StringTranslationsModel {
252324
createdAt: string;
253325
}
254326

327+
export interface ListLanguageTranslationsRequest {
328+
stringIds?: string;
329+
fileId?: number;
330+
limit?: number;
331+
offset?: number;
332+
labelIds?: string;
333+
denormalizePlaceholders?: BooleanInt;
334+
croql?: string;
335+
}
336+
255337
export interface PlainLanguageTranslation {
256338
stringId: number;
257339
contentType: string;
@@ -291,6 +373,14 @@ export namespace StringTranslationsModel {
291373
pluralCategoryName?: string;
292374
}
293375

376+
export interface ListTranslationVotesRequest {
377+
stringId?: number;
378+
languageId?: string;
379+
translationId?: number;
380+
limit?: number;
381+
offset?: number;
382+
}
383+
294384
export interface Vote {
295385
id: number;
296386
user: User;

src/tasks/index.ts

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,24 @@ export class Tasks extends CrowdinApi {
7979
offset?: number,
8080
status?: TasksModel.Status,
8181
isArchived?: BooleanInt,
82+
): Promise<ResponseList<TasksModel.UserTask>>;
83+
84+
listUserTasks(
85+
limitOrRequest?: number | TasksModel.ListUserTasksRequest,
86+
offset?: number,
87+
status?: TasksModel.Status,
88+
isArchived?: BooleanInt,
8289
): Promise<ResponseList<TasksModel.UserTask>> {
8390
let url = `${this.url}/user/tasks`;
84-
url = this.addQueryParam(url, 'status', status);
85-
url = this.addQueryParam(url, 'isArchived', isArchived);
86-
return this.getList(url, limit, offset);
91+
let request: TasksModel.ListUserTasksRequest;
92+
if (limitOrRequest && typeof limitOrRequest === 'object') {
93+
request = limitOrRequest;
94+
} else {
95+
request = { limit: limitOrRequest, offset, status, isArchived };
96+
}
97+
url = this.addQueryParam(url, 'status', request.status);
98+
url = this.addQueryParam(url, 'isArchived', request.isArchived);
99+
return this.getList(url, request.limit, request.offset);
87100
}
88101

89102
/**
@@ -132,6 +145,13 @@ export namespace TasksModel {
132145
updatedAt: string;
133146
}
134147

148+
export interface ListUserTasksRequest {
149+
limit?: number;
150+
offset?: number;
151+
status?: Status;
152+
isArchived?: BooleanInt;
153+
}
154+
135155
export interface UserTask extends Task {
136156
isArchived: boolean;
137157
}

src/translationStatus/index.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,27 @@ export class TranslationStatus extends CrowdinApi {
9797
category?: TranslationStatusModel.Category,
9898
validation?: TranslationStatusModel.Validation,
9999
languageIds?: string,
100+
): Promise<ResponseList<TranslationStatusModel.QaCheck>>;
101+
102+
listQaCheckIssues(
103+
projectId: number,
104+
limitOrRequest?: number | TranslationStatusModel.ListQaCheckIssuesRequest,
105+
offset?: number,
106+
category?: TranslationStatusModel.Category,
107+
validation?: TranslationStatusModel.Validation,
108+
languageIds?: string,
100109
): Promise<ResponseList<TranslationStatusModel.QaCheck>> {
101110
let url = `${this.url}/projects/${projectId}/qa-checks`;
102-
url = this.addQueryParam(url, 'category', category);
103-
url = this.addQueryParam(url, 'validation', validation);
104-
url = this.addQueryParam(url, 'languageIds', languageIds);
105-
return this.getList(url, limit, offset);
111+
let request: TranslationStatusModel.ListQaCheckIssuesRequest;
112+
if (limitOrRequest && typeof limitOrRequest === 'object') {
113+
request = limitOrRequest;
114+
} else {
115+
request = { limit: limitOrRequest, offset, category, validation, languageIds };
116+
}
117+
url = this.addQueryParam(url, 'category', request.category);
118+
url = this.addQueryParam(url, 'validation', request.validation);
119+
url = this.addQueryParam(url, 'languageIds', request.languageIds);
120+
return this.getList(url, request.limit, request.offset);
106121
}
107122
}
108123

@@ -185,6 +200,14 @@ export namespace TranslationStatusModel {
185200
ICU_CHECK = 'icu_check',
186201
}
187202

203+
export interface ListQaCheckIssuesRequest {
204+
limit?: number;
205+
offset?: number;
206+
category?: Category;
207+
validation?: Validation;
208+
languageIds?: string;
209+
}
210+
188211
export interface QaCheck {
189212
stringId: number;
190213
languageId: string;

0 commit comments

Comments
 (0)