Skip to content

Commit be85b12

Browse files
committed
fix: Make parameter of update collaboration optional (box/box-openapi#557)
1 parent 2fc3665 commit be85b12

File tree

4 files changed

+40
-26
lines changed

4 files changed

+40
-26
lines changed

.codegen.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "engineHash": "9334953", "specHash": "62fdfd1", "version": "0.1.0" }
1+
{ "engineHash": "9334953", "specHash": "c7acada", "version": "0.1.0" }

docs/sdk-gen/userCollaborations.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Returns a collaboration object.
3939

4040
Updates a collaboration.
4141
Can be used to change the owner of an item, or to
42-
accept collaboration invites.
42+
accept collaboration invites. In case of accepting collaboration invite, role is not required.
4343

4444
This operation is performed by calling function `updateCollaborationById`.
4545

@@ -48,15 +48,13 @@ See the endpoint docs at
4848

4949
<!-- sample put_collaborations_id -->
5050
```ts
51-
await client.userCollaborations.updateCollaborationById(collaborationId, { role: "viewer" as UpdateCollaborationByIdRequestBodyRoleField } satisfies UpdateCollaborationByIdRequestBody)
51+
await client.userCollaborations.updateCollaborationById(collaborationId, { requestBody: { role: "viewer" as UpdateCollaborationByIdRequestBodyRoleField } satisfies UpdateCollaborationByIdRequestBody } satisfies UpdateCollaborationByIdOptionalsInput)
5252
```
5353

5454
### Arguments
5555

5656
- collaborationId `string`
5757
- The ID of the collaboration. Example: "1234"
58-
- requestBody `UpdateCollaborationByIdRequestBody`
59-
- Request body of updateCollaborationById method
6058
- optionalsInput `UpdateCollaborationByIdOptionalsInput`
6159

6260

src/sdk-gen/managers/userCollaborations.ts

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,26 @@ export interface GetCollaborationByIdOptionalsInput {
6060
readonly cancellationToken?: undefined | CancellationToken;
6161
}
6262
export class UpdateCollaborationByIdOptionals {
63+
readonly requestBody: UpdateCollaborationByIdRequestBody =
64+
{} satisfies UpdateCollaborationByIdRequestBody;
6365
readonly headers: UpdateCollaborationByIdHeaders =
6466
new UpdateCollaborationByIdHeaders({});
6567
readonly cancellationToken?: CancellationToken = void 0;
6668
constructor(
6769
fields: Omit<
6870
UpdateCollaborationByIdOptionals,
69-
'headers' | 'cancellationToken'
71+
'requestBody' | 'headers' | 'cancellationToken'
7072
> &
7173
Partial<
72-
Pick<UpdateCollaborationByIdOptionals, 'headers' | 'cancellationToken'>
74+
Pick<
75+
UpdateCollaborationByIdOptionals,
76+
'requestBody' | 'headers' | 'cancellationToken'
77+
>
7378
>
7479
) {
80+
if (fields.requestBody !== undefined) {
81+
this.requestBody = fields.requestBody;
82+
}
7583
if (fields.headers !== undefined) {
7684
this.headers = fields.headers;
7785
}
@@ -81,6 +89,7 @@ export class UpdateCollaborationByIdOptionals {
8189
}
8290
}
8391
export interface UpdateCollaborationByIdOptionalsInput {
92+
readonly requestBody?: UpdateCollaborationByIdRequestBody;
8493
readonly headers?: UpdateCollaborationByIdHeaders;
8594
readonly cancellationToken?: undefined | CancellationToken;
8695
}
@@ -199,7 +208,7 @@ export type UpdateCollaborationByIdRequestBodyStatusField =
199208
export interface UpdateCollaborationByIdRequestBody {
200209
/**
201210
* The level of access granted. */
202-
readonly role: UpdateCollaborationByIdRequestBodyRoleField;
211+
readonly role?: UpdateCollaborationByIdRequestBodyRoleField;
203212
/**
204213
* Set the status of a `pending` collaboration invitation,
205214
* effectively accepting, or rejecting the invite. */
@@ -486,23 +495,23 @@ export class UserCollaborationsManager {
486495
/**
487496
* Updates a collaboration.
488497
* Can be used to change the owner of an item, or to
489-
* accept collaboration invites.
498+
* accept collaboration invites. In case of accepting collaboration invite, role is not required.
490499
* @param {string} collaborationId The ID of the collaboration.
491500
Example: "1234"
492-
* @param {UpdateCollaborationByIdRequestBody} requestBody Request body of updateCollaborationById method
493501
* @param {UpdateCollaborationByIdOptionalsInput} optionalsInput
494502
* @returns {Promise<undefined | Collaboration>}
495503
*/
496504
async updateCollaborationById(
497505
collaborationId: string,
498-
requestBody: UpdateCollaborationByIdRequestBody,
499506
optionalsInput: UpdateCollaborationByIdOptionalsInput = {}
500507
): Promise<undefined | Collaboration> {
501508
const optionals: UpdateCollaborationByIdOptionals =
502509
new UpdateCollaborationByIdOptionals({
510+
requestBody: optionalsInput.requestBody,
503511
headers: optionalsInput.headers,
504512
cancellationToken: optionalsInput.cancellationToken,
505513
});
514+
const requestBody: any = optionals.requestBody;
506515
const headers: any = optionals.headers;
507516
const cancellationToken: any = optionals.cancellationToken;
508517
const headersMap: {
@@ -711,7 +720,10 @@ export function serializeUpdateCollaborationByIdRequestBody(
711720
val: UpdateCollaborationByIdRequestBody
712721
): SerializedData {
713722
return {
714-
['role']: serializeUpdateCollaborationByIdRequestBodyRoleField(val.role),
723+
['role']:
724+
val.role == void 0
725+
? val.role
726+
: serializeUpdateCollaborationByIdRequestBodyRoleField(val.role),
715727
['status']:
716728
val.status == void 0
717729
? val.status
@@ -731,14 +743,10 @@ export function deserializeUpdateCollaborationByIdRequestBody(
731743
message: 'Expecting a map for "UpdateCollaborationByIdRequestBody"',
732744
});
733745
}
734-
if (val.role == void 0) {
735-
throw new BoxSdkError({
736-
message:
737-
'Expecting "role" of type "UpdateCollaborationByIdRequestBody" to be defined',
738-
});
739-
}
740-
const role: UpdateCollaborationByIdRequestBodyRoleField =
741-
deserializeUpdateCollaborationByIdRequestBodyRoleField(val.role);
746+
const role: undefined | UpdateCollaborationByIdRequestBodyRoleField =
747+
val.role == void 0
748+
? void 0
749+
: deserializeUpdateCollaborationByIdRequestBodyRoleField(val.role);
742750
const status: undefined | UpdateCollaborationByIdRequestBodyStatusField =
743751
val.status == void 0
744752
? void 0

tests/sdk-gen/userCollaborations.test.ts

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import { serializeUpdateCollaborationByIdRequestBodyRoleField } from '@/managers
2424
import { deserializeUpdateCollaborationByIdRequestBodyRoleField } from '@/managers/userCollaborations';
2525
import { serializeCollaborations } from '@/schemas/collaborations';
2626
import { deserializeCollaborations } from '@/schemas/collaborations';
27+
import { UpdateCollaborationByIdOptionalsInput } from '@/managers/userCollaborations';
28+
import { UpdateCollaborationByIdOptionals } from '@/managers/userCollaborations';
2729
import { BoxClient } from '@/client';
2830
import { UserFull } from '@/schemas/userFull';
2931
import { CreateUserRequestBody } from '@/managers/users';
@@ -92,8 +94,10 @@ test('testUserCollaborations', async function testUserCollaborations(): Promise<
9294
}
9395
const updatedCollaboration: undefined | Collaboration =
9496
await client.userCollaborations.updateCollaborationById(collaborationId, {
95-
role: 'viewer' as UpdateCollaborationByIdRequestBodyRoleField,
96-
} satisfies UpdateCollaborationByIdRequestBody);
97+
requestBody: {
98+
role: 'viewer' as UpdateCollaborationByIdRequestBodyRoleField,
99+
} satisfies UpdateCollaborationByIdRequestBody,
100+
} satisfies UpdateCollaborationByIdOptionalsInput);
97101
if (!((toString(updatedCollaboration!.role!) as string) == 'viewer')) {
98102
throw new Error('Assertion failed');
99103
}
@@ -130,8 +134,10 @@ test('testConvertingUserCollaborationToOwnership', async function testConverting
130134
}
131135
const ownerCollaboration: undefined | Collaboration =
132136
await client.userCollaborations.updateCollaborationById(collaboration.id, {
133-
role: 'owner' as UpdateCollaborationByIdRequestBodyRoleField,
134-
} satisfies UpdateCollaborationByIdRequestBody);
137+
requestBody: {
138+
role: 'owner' as UpdateCollaborationByIdRequestBodyRoleField,
139+
} satisfies UpdateCollaborationByIdRequestBody,
140+
} satisfies UpdateCollaborationByIdOptionalsInput);
135141
if (!(ownerCollaboration == void 0)) {
136142
throw new Error('Assertion failed');
137143
}
@@ -182,8 +188,10 @@ test('testExternalUserCollaborations', async function testExternalUserCollaborat
182188
}
183189
const updatedCollaboration: undefined | Collaboration =
184190
await client.userCollaborations.updateCollaborationById(collaborationId, {
185-
role: 'viewer' as UpdateCollaborationByIdRequestBodyRoleField,
186-
} satisfies UpdateCollaborationByIdRequestBody);
191+
requestBody: {
192+
role: 'viewer' as UpdateCollaborationByIdRequestBodyRoleField,
193+
} satisfies UpdateCollaborationByIdRequestBody,
194+
} satisfies UpdateCollaborationByIdOptionalsInput);
187195
if (!((toString(updatedCollaboration!.role!) as string) == 'viewer')) {
188196
throw new Error('Assertion failed');
189197
}

0 commit comments

Comments
 (0)