Skip to content

Commit 8247918

Browse files
fix: Make role parameter of update collaboration optional (box/box-openapi#557) (#1156)
1 parent 6cb13e3 commit 8247918

File tree

12 files changed

+30
-42
lines changed

12 files changed

+30
-42
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": "10.0.0" }
1+
{ "engineHash": "9334953", "specHash": "c7acada", "version": "10.0.0" }

Box.Sdk.Gen.Net/Managers/UserCollaborations/IUserCollaborationsManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public interface IUserCollaborationsManager {
2929
/// <summary>
3030
/// Updates a collaboration.
3131
/// Can be used to change the owner of an item, or to
32-
/// accept collaboration invites.
32+
/// accept collaboration invites. In case of accepting collaboration invite, role is not required.
3333
/// </summary>
3434
/// <param name="collaborationId">
3535
/// The ID of the collaboration.
@@ -44,7 +44,7 @@ public interface IUserCollaborationsManager {
4444
/// <param name="cancellationToken">
4545
/// Token used for request cancellation.
4646
/// </param>
47-
public System.Threading.Tasks.Task<Collaboration?> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody, UpdateCollaborationByIdHeaders? headers = default, System.Threading.CancellationToken? cancellationToken = null) => throw new System.NotImplementedException("This method needs to be implemented by the derived class before calling it.");
47+
public System.Threading.Tasks.Task<Collaboration?> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody? requestBody = default, UpdateCollaborationByIdHeaders? headers = default, System.Threading.CancellationToken? cancellationToken = null) => throw new System.NotImplementedException("This method needs to be implemented by the derived class before calling it.");
4848

4949
/// <summary>
5050
/// Deletes a single collaboration.

Box.Sdk.Gen.Net/Managers/UserCollaborations/UpdateCollaborationByIdRequestBody.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class UpdateCollaborationByIdRequestBody : ISerializable {
1313
/// </summary>
1414
[JsonPropertyName("role")]
1515
[JsonConverter(typeof(StringEnumConverter<UpdateCollaborationByIdRequestBodyRoleField>))]
16-
public StringEnum<UpdateCollaborationByIdRequestBodyRoleField> Role { get; }
16+
public StringEnum<UpdateCollaborationByIdRequestBodyRoleField>? Role { get; init; }
1717

1818
/// <summary>
1919
/// Set the status of a `pending` collaboration invitation,
@@ -59,13 +59,8 @@ public class UpdateCollaborationByIdRequestBody : ISerializable {
5959
[JsonPropertyName("can_view_path")]
6060
public bool? CanViewPath { get; init; }
6161

62-
public UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField role) {
63-
Role = role;
64-
}
65-
66-
[JsonConstructorAttribute]
67-
internal UpdateCollaborationByIdRequestBody(StringEnum<UpdateCollaborationByIdRequestBodyRoleField> role) {
68-
Role = role;
62+
public UpdateCollaborationByIdRequestBody() {
63+
6964
}
7065
internal string? RawJson { get; set; } = default;
7166

Box.Sdk.Gen.Net/Managers/UserCollaborations/UserCollaborationsManager.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
4343
/// <summary>
4444
/// Updates a collaboration.
4545
/// Can be used to change the owner of an item, or to
46-
/// accept collaboration invites.
46+
/// accept collaboration invites. In case of accepting collaboration invite, role is not required.
4747
/// </summary>
4848
/// <param name="collaborationId">
4949
/// The ID of the collaboration.
@@ -58,7 +58,8 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
5858
/// <param name="cancellationToken">
5959
/// Token used for request cancellation.
6060
/// </param>
61-
public async System.Threading.Tasks.Task<Collaboration?> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody, UpdateCollaborationByIdHeaders? headers = default, System.Threading.CancellationToken? cancellationToken = null) {
61+
public async System.Threading.Tasks.Task<Collaboration?> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody? requestBody = default, UpdateCollaborationByIdHeaders? headers = default, System.Threading.CancellationToken? cancellationToken = null) {
62+
requestBody = requestBody ?? new UpdateCollaborationByIdRequestBody();
6263
headers = headers ?? new UpdateCollaborationByIdHeaders();
6364
Dictionary<string, string> headersMap = Utils.PrepareParams(map: DictionaryUtils.MergeDictionaries(new Dictionary<string, string?>() { }, headers.ExtraHeaders));
6465
FetchResponse response = await this.NetworkSession.NetworkClient.FetchAsync(options: new FetchOptions(url: string.Concat(this.NetworkSession.BaseUrls.BaseUrl, "/2.0/collaborations/", StringUtils.ToStringRepresentation(collaborationId)), method: "PUT", contentType: "application/json", responseFormat: Box.Sdk.Gen.ResponseFormat.Json) { Headers = headersMap, Data = SimpleJsonSerializer.Serialize(requestBody), Auth = this.Auth, NetworkSession = this.NetworkSession, CancellationToken = cancellationToken }).ConfigureAwait(false);

Box.Sdk.Gen.NetFramework.Tests.Integration/Test/UserCollaborations/UserCollaborationsManagerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public async System.Threading.Tasks.Task TestUserCollaborations() {
2727
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaborationFromApi.Status)) == "accepted");
2828
Assert.IsTrue(StringUtils.ToStringRepresentation(collaborationFromApi.Type?.Value) == "collaboration");
2929
Assert.IsTrue(collaborationFromApi.InviteEmail == null);
30-
Collaboration updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Viewer));
30+
Collaboration updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Viewer });
3131
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(NullableUtils.Unwrap(updatedCollaboration).Role)) == "viewer");
3232
await client.UserCollaborations.DeleteCollaborationByIdAsync(collaborationId: collaborationId);
3333
await Assert.That.IsExceptionAsync(async() => await client.UserCollaborations.GetCollaborationByIdAsync(collaborationId: collaborationId));
@@ -43,7 +43,7 @@ public async System.Threading.Tasks.Task TestConvertingUserCollaborationToOwners
4343
FolderFull folder = await new CommonsManager().CreateNewFolderAsync();
4444
Collaboration collaboration = await client.UserCollaborations.CreateCollaborationAsync(requestBody: new CreateCollaborationRequestBody(item: new CreateCollaborationRequestBodyItemField() { Type = CreateCollaborationRequestBodyItemTypeField.Folder, Id = folder.Id }, accessibleBy: new CreateCollaborationRequestBodyAccessibleByField(type: CreateCollaborationRequestBodyAccessibleByTypeField.User) { Id = user.Id }, role: CreateCollaborationRequestBodyRoleField.Editor));
4545
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaboration.Role)) == "editor");
46-
Collaboration ownerCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaboration.Id, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Owner));
46+
Collaboration ownerCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaboration.Id, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Owner });
4747
Assert.IsTrue(ownerCollaboration == null);
4848
Collaborations folderCollaborations = await client.ListCollaborations.GetFolderCollaborationsAsync(folderId: folder.Id);
4949
Collaboration folderCollaboration = NullableUtils.Unwrap(folderCollaborations.Entries)[0];
@@ -67,7 +67,7 @@ public async System.Threading.Tasks.Task TestExternalUserCollaborations() {
6767
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaborationFromApi.Status)) == "pending");
6868
Assert.IsTrue(StringUtils.ToStringRepresentation(collaborationFromApi.Type?.Value) == "collaboration");
6969
Assert.IsTrue(collaborationFromApi.InviteEmail == userLogin);
70-
Collaboration updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Viewer));
70+
Collaboration updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Viewer });
7171
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(NullableUtils.Unwrap(updatedCollaboration).Role)) == "viewer");
7272
await client.UserCollaborations.DeleteCollaborationByIdAsync(collaborationId: collaborationId);
7373
await Assert.That.IsExceptionAsync(async() => await client.UserCollaborations.GetCollaborationByIdAsync(collaborationId: collaborationId));

Box.Sdk.Gen.NetFramework/Managers/UserCollaborations/UpdateCollaborationByIdRequestBody.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,8 @@ public class UpdateCollaborationByIdRequestBody : ISerializable {
5959
[JsonPropertyName("can_view_path")]
6060
public bool? CanViewPath { get; set; }
6161

62-
public UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField role) {
63-
Role = role;
64-
}
65-
66-
[JsonConstructorAttribute]
67-
internal UpdateCollaborationByIdRequestBody(StringEnum<UpdateCollaborationByIdRequestBodyRoleField> role) {
68-
Role = role;
62+
public UpdateCollaborationByIdRequestBody() {
63+
6964
}
7065
internal string RawJson { get; set; } = default;
7166

Box.Sdk.Gen.NetFramework/Managers/UserCollaborations/UserCollaborationsManager.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
4343
/// <summary>
4444
/// Updates a collaboration.
4545
/// Can be used to change the owner of an item, or to
46-
/// accept collaboration invites.
46+
/// accept collaboration invites. In case of accepting collaboration invite, role is not required.
4747
/// </summary>
4848
/// <param name="collaborationId">
4949
/// The ID of the collaboration.
@@ -58,7 +58,8 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
5858
/// <param name="cancellationToken">
5959
/// Token used for request cancellation.
6060
/// </param>
61-
public async System.Threading.Tasks.Task<Collaboration> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody, UpdateCollaborationByIdHeaders headers = default, System.Threading.CancellationToken cancellationToken = default) {
61+
public async System.Threading.Tasks.Task<Collaboration> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody = default, UpdateCollaborationByIdHeaders headers = default, System.Threading.CancellationToken cancellationToken = default) {
62+
requestBody = requestBody ?? new UpdateCollaborationByIdRequestBody();
6263
headers = headers ?? new UpdateCollaborationByIdHeaders();
6364
Dictionary<string, string> headersMap = Utils.PrepareParams(map: DictionaryUtils.MergeDictionaries(new Dictionary<string, string>() { }, headers.ExtraHeaders));
6465
FetchResponse response = await this.NetworkSession.NetworkClient.FetchAsync(options: new FetchOptions(url: string.Concat(this.NetworkSession.BaseUrls.BaseUrl, "/2.0/collaborations/", StringUtils.ToStringRepresentation(collaborationId)), method: "PUT", contentType: "application/json", responseFormat: Box.Sdk.Gen.ResponseFormat.Json) { Headers = headersMap, Data = SimpleJsonSerializer.Serialize(requestBody), Auth = this.Auth, NetworkSession = this.NetworkSession, CancellationToken = cancellationToken }).ConfigureAwait(false);

Box.Sdk.Gen.NetStandard/Managers/UserCollaborations/UpdateCollaborationByIdRequestBody.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,8 @@ public class UpdateCollaborationByIdRequestBody : ISerializable {
5959
[JsonPropertyName("can_view_path")]
6060
public bool? CanViewPath { get; set; }
6161

62-
public UpdateCollaborationByIdRequestBody(UpdateCollaborationByIdRequestBodyRoleField role) {
63-
Role = role;
64-
}
65-
66-
[JsonConstructorAttribute]
67-
internal UpdateCollaborationByIdRequestBody(StringEnum<UpdateCollaborationByIdRequestBodyRoleField> role) {
68-
Role = role;
62+
public UpdateCollaborationByIdRequestBody() {
63+
6964
}
7065
internal string RawJson { get; set; } = default;
7166

Box.Sdk.Gen.NetStandard/Managers/UserCollaborations/UserCollaborationsManager.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
4343
/// <summary>
4444
/// Updates a collaboration.
4545
/// Can be used to change the owner of an item, or to
46-
/// accept collaboration invites.
46+
/// accept collaboration invites. In case of accepting collaboration invite, role is not required.
4747
/// </summary>
4848
/// <param name="collaborationId">
4949
/// The ID of the collaboration.
@@ -58,7 +58,8 @@ public async System.Threading.Tasks.Task<Collaboration> GetCollaborationByIdAsyn
5858
/// <param name="cancellationToken">
5959
/// Token used for request cancellation.
6060
/// </param>
61-
public async System.Threading.Tasks.Task<Collaboration> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody, UpdateCollaborationByIdHeaders headers = default, System.Threading.CancellationToken cancellationToken = default) {
61+
public async System.Threading.Tasks.Task<Collaboration> UpdateCollaborationByIdAsync(string collaborationId, UpdateCollaborationByIdRequestBody requestBody = default, UpdateCollaborationByIdHeaders headers = default, System.Threading.CancellationToken cancellationToken = default) {
62+
requestBody = requestBody ?? new UpdateCollaborationByIdRequestBody();
6263
headers = headers ?? new UpdateCollaborationByIdHeaders();
6364
Dictionary<string, string> headersMap = Utils.PrepareParams(map: DictionaryUtils.MergeDictionaries(new Dictionary<string, string>() { }, headers.ExtraHeaders));
6465
FetchResponse response = await this.NetworkSession.NetworkClient.FetchAsync(options: new FetchOptions(url: string.Concat(this.NetworkSession.BaseUrls.BaseUrl, "/2.0/collaborations/", StringUtils.ToStringRepresentation(collaborationId)), method: "PUT", contentType: "application/json", responseFormat: Box.Sdk.Gen.ResponseFormat.Json) { Headers = headersMap, Data = SimpleJsonSerializer.Serialize(requestBody), Auth = this.Auth, NetworkSession = this.NetworkSession, CancellationToken = cancellationToken }).ConfigureAwait(false);

Box.Sdk.Gen.Tests.Integration.Net/Test/UserCollaborations/UserCollaborationsManagerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public async System.Threading.Tasks.Task TestUserCollaborations() {
2727
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaborationFromApi.Status)) == "accepted");
2828
Assert.IsTrue(StringUtils.ToStringRepresentation(collaborationFromApi.Type?.Value) == "collaboration");
2929
Assert.IsTrue(collaborationFromApi.InviteEmail == null);
30-
Collaboration? updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Viewer));
30+
Collaboration? updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Viewer });
3131
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(NullableUtils.Unwrap(updatedCollaboration).Role)) == "viewer");
3232
await client.UserCollaborations.DeleteCollaborationByIdAsync(collaborationId: collaborationId);
3333
await Assert.That.IsExceptionAsync(async() => await client.UserCollaborations.GetCollaborationByIdAsync(collaborationId: collaborationId));
@@ -43,7 +43,7 @@ public async System.Threading.Tasks.Task TestConvertingUserCollaborationToOwners
4343
FolderFull folder = await new CommonsManager().CreateNewFolderAsync();
4444
Collaboration collaboration = await client.UserCollaborations.CreateCollaborationAsync(requestBody: new CreateCollaborationRequestBody(item: new CreateCollaborationRequestBodyItemField() { Type = CreateCollaborationRequestBodyItemTypeField.Folder, Id = folder.Id }, accessibleBy: new CreateCollaborationRequestBodyAccessibleByField(type: CreateCollaborationRequestBodyAccessibleByTypeField.User) { Id = user.Id }, role: CreateCollaborationRequestBodyRoleField.Editor));
4545
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaboration.Role)) == "editor");
46-
Collaboration? ownerCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaboration.Id, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Owner));
46+
Collaboration? ownerCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaboration.Id, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Owner });
4747
Assert.IsTrue(ownerCollaboration == null);
4848
Collaborations folderCollaborations = await client.ListCollaborations.GetFolderCollaborationsAsync(folderId: folder.Id);
4949
Collaboration folderCollaboration = NullableUtils.Unwrap(folderCollaborations.Entries)[0];
@@ -67,7 +67,7 @@ public async System.Threading.Tasks.Task TestExternalUserCollaborations() {
6767
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(collaborationFromApi.Status)) == "pending");
6868
Assert.IsTrue(StringUtils.ToStringRepresentation(collaborationFromApi.Type?.Value) == "collaboration");
6969
Assert.IsTrue(collaborationFromApi.InviteEmail == userLogin);
70-
Collaboration? updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody(role: UpdateCollaborationByIdRequestBodyRoleField.Viewer));
70+
Collaboration? updatedCollaboration = await client.UserCollaborations.UpdateCollaborationByIdAsync(collaborationId: collaborationId, requestBody: new UpdateCollaborationByIdRequestBody() { Role = UpdateCollaborationByIdRequestBodyRoleField.Viewer });
7171
Assert.IsTrue(StringUtils.ToStringRepresentation(NullableUtils.Unwrap(NullableUtils.Unwrap(updatedCollaboration).Role)) == "viewer");
7272
await client.UserCollaborations.DeleteCollaborationByIdAsync(collaborationId: collaborationId);
7373
await Assert.That.IsExceptionAsync(async() => await client.UserCollaborations.GetCollaborationByIdAsync(collaborationId: collaborationId));

0 commit comments

Comments
 (0)