Skip to content

Commit 8595f57

Browse files
authored
fix(style-guides): split crowdin and enterprise models (#638)
1 parent 3bd46f6 commit 8595f57

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/styleGuides/index.ts

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export class StyleGuides extends CrowdinApi {
77
*/
88
listStyleGuides(
99
options?: StyleGuidesModel.ListStyleGuidesOptions,
10-
): Promise<ResponseList<StyleGuidesModel.StyleGuide>> {
10+
): Promise<ResponseList<StyleGuidesModel.StyleGuide | StyleGuidesModel.StyleGuideEnterprise>> {
1111
let url = `${this.url}/style-guides`;
1212
url = this.addQueryParam(url, 'orderBy', options?.orderBy);
1313
url = this.addQueryParam(url, 'userId', options?.userId);
@@ -19,8 +19,8 @@ export class StyleGuides extends CrowdinApi {
1919
* @see https://developer.crowdin.com/api/v2/#operation/api.style-guides.post
2020
*/
2121
createStyleGuide(
22-
request: StyleGuidesModel.CreateStyleGuideRequest,
23-
): Promise<ResponseObject<StyleGuidesModel.StyleGuide>> {
22+
request: StyleGuidesModel.CreateStyleGuideRequest | StyleGuidesModel.CreateStyleGuideEnterpriseRequest,
23+
): Promise<ResponseObject<StyleGuidesModel.StyleGuide | StyleGuidesModel.StyleGuideEnterprise>> {
2424
const url = `${this.url}/style-guides`;
2525
return this.post(url, request, this.defaultConfig());
2626
}
@@ -29,7 +29,9 @@ export class StyleGuides extends CrowdinApi {
2929
* @param styleGuideId style guide identifier
3030
* @see https://developer.crowdin.com/api/v2/#operation/api.style-guides.get
3131
*/
32-
getStyleGuide(styleGuideId: number): Promise<ResponseObject<StyleGuidesModel.StyleGuide>> {
32+
getStyleGuide(
33+
styleGuideId: number,
34+
): Promise<ResponseObject<StyleGuidesModel.StyleGuide | StyleGuidesModel.StyleGuideEnterprise>> {
3335
const url = `${this.url}/style-guides/${styleGuideId}`;
3436
return this.get(url, this.defaultConfig());
3537
}
@@ -51,7 +53,7 @@ export class StyleGuides extends CrowdinApi {
5153
editStyleGuide(
5254
styleGuideId: number,
5355
request: PatchRequest[],
54-
): Promise<ResponseObject<StyleGuidesModel.StyleGuide>> {
56+
): Promise<ResponseObject<StyleGuidesModel.StyleGuide | StyleGuidesModel.StyleGuideEnterprise>> {
5557
const url = `${this.url}/style-guides/${styleGuideId}`;
5658
return this.patch(url, request, this.defaultConfig());
5759
}
@@ -72,6 +74,10 @@ export namespace StyleGuidesModel {
7274
updatedAt: string;
7375
}
7476

77+
export interface StyleGuideEnterprise extends StyleGuide {
78+
groupId: number;
79+
}
80+
7581
export interface CreateStyleGuideRequest {
7682
name: string;
7783
storageId: number | null;
@@ -81,6 +87,10 @@ export namespace StyleGuidesModel {
8187
isShared?: boolean;
8288
}
8389

90+
export interface CreateStyleGuideEnterpriseRequest extends CreateStyleGuideRequest {
91+
groupId?: number | null;
92+
}
93+
8494
export interface ListStyleGuidesOptions extends PaginationOptions {
8595
orderBy?: string;
8696
userId?: number;

tests/styleGuides/api.test.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ describe('Style Guides API', () => {
99
};
1010
const api: StyleGuides = new StyleGuides(credentials);
1111
const styleGuideId = 2;
12+
const groupId = 5;
1213
const storageId = 1;
1314
const name = "Be My Eyes iOS's Style Guide";
1415

@@ -26,6 +27,7 @@ describe('Style Guides API', () => {
2627
{
2728
data: {
2829
id: styleGuideId,
30+
groupId: groupId,
2931
},
3032
},
3133
],
@@ -46,9 +48,10 @@ describe('Style Guides API', () => {
4648
},
4749
},
4850
)
49-
.reply(200, {
51+
.reply(201, {
5052
data: {
5153
id: styleGuideId,
54+
groupId: groupId,
5255
},
5356
})
5457
.get(`/style-guides/${styleGuideId}`, undefined, {
@@ -59,6 +62,7 @@ describe('Style Guides API', () => {
5962
.reply(200, {
6063
data: {
6164
id: styleGuideId,
65+
groupId: groupId,
6266
},
6367
})
6468
.delete(`/style-guides/${styleGuideId}`, undefined, {
@@ -85,6 +89,7 @@ describe('Style Guides API', () => {
8589
.reply(200, {
8690
data: {
8791
id: styleGuideId,
92+
groupId: groupId,
8893
},
8994
});
9095
});
@@ -103,11 +108,13 @@ describe('Style Guides API', () => {
103108
it('Create style guide', async () => {
104109
const styleGuide = await api.createStyleGuide({ name, storageId });
105110
expect(styleGuide.data.id).toBe(styleGuideId);
111+
expect(styleGuide.data).toHaveProperty('groupId', groupId);
106112
});
107113

108114
it('Get style guide', async () => {
109115
const styleGuide = await api.getStyleGuide(styleGuideId);
110116
expect(styleGuide.data.id).toBe(styleGuideId);
117+
expect(styleGuide.data).toHaveProperty('groupId', groupId);
111118
});
112119

113120
it('Delete style guide', async () => {
@@ -123,5 +130,6 @@ describe('Style Guides API', () => {
123130
},
124131
]);
125132
expect(styleGuide.data.id).toBe(styleGuideId);
133+
expect(styleGuide.data).toHaveProperty('groupId', groupId);
126134
});
127135
});

0 commit comments

Comments
 (0)