Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Add missing fields of EventSource #956

Merged
merged 5 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 54 additions & 1 deletion Box.V2.Test/BoxEventsManagerTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public async Task GetGroupEvents_ValidResponse()
[TestMethod]
public async Task GetUserEventsFile_ValidResponse()
{
var responseString = "{\"chunk_size\": 1, \"next_stream_position\": 123, \"entries\": [{\"source\":{\"file_id\":\"283257336425\",\"file_name\":\"ScreenShot2018-03-12at5.44.00PM.png\",\"user_id\":\"285663442\",\"user_name\":\"foo\",\"parent\":{\"type\":\"folder\",\"name\":\"AllFiles\",\"id\":\"0\"}},\"created_by\":{\"type\":\"user\",\"id\":\"11111\",\"name\":\"Test User\",\"login\":\"test@user.com\"},\"created_at\":\"2018-03-16T15:12:52-07:00\",\"event_id\":\"85c57bf3-bc15-4d24-93bc-955c796217c8\",\"event_type\":\"COLLABORATION_INVITE\",\"ip_address\":\"UnknownIP\",\"type\":\"event\",\"session_id\":null,\"additional_details\":null}]}";
var responseString = "{\"chunk_size\": 1, \"next_stream_position\": 123, \"entries\": [{\"source\":{\"file_id\":\"283257336425\",\"file_name\":\"ScreenShot2018-03-12at5.44.00PM.png\",\"user_id\":\"285663442\",\"user_name\":\"foo\",\"user_email\": \"testuser@example.com\",\"parent\":{\"type\":\"folder\",\"name\":\"AllFiles\",\"id\":\"0\"},\"owned_by\":{\"type\": \"user\",\"id\":\"33333\",\"name\": \"Test User\",\"login\":\"testuser@example.com\"}},\"created_by\":{\"type\":\"user\",\"id\":\"11111\",\"name\":\"Test User\",\"login\":\"test@user.com\"},\"created_at\":\"2018-03-16T15:12:52-07:00\",\"event_id\":\"85c57bf3-bc15-4d24-93bc-955c796217c8\",\"event_type\":\"COLLABORATION_INVITE\",\"ip_address\":\"UnknownIP\",\"type\":\"event\",\"session_id\":null,\"additional_details\":null}]}";
congminh1254 marked this conversation as resolved.
Show resolved Hide resolved
IBoxRequest boxRequest = null;
Handler.Setup(h => h.ExecuteAsync<BoxEventCollection<BoxEnterpriseEvent>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxEventCollection<BoxEnterpriseEvent>>>(new BoxResponse<BoxEventCollection<BoxEnterpriseEvent>>()
Expand All @@ -88,6 +88,35 @@ public async Task GetUserEventsFile_ValidResponse()
Assert.AreEqual(userFileEvents.Entries[0].Source.GetType(), typeof(BoxUserFileCollaborationEventSource));
Assert.AreEqual(userFileEventSource.Id, "283257336425");
Assert.AreEqual(userFileEventSource.Name, "ScreenShot2018-03-12at5.44.00PM.png");
Assert.AreEqual(userFileEventSource.UserEmail, "testuser@example.com");
Assert.AreEqual(userFileEventSource.OwnedBy.Id, "33333");
Assert.AreEqual(userFileEventSource.OwnedBy.Name, "Test User");
}

[TestMethod]
public async Task GetUserEventsFile_ExternalUser_ValidResponse()
{
var responseString = "{\"chunk_size\": 1, \"next_stream_position\": 123, \"entries\": [{\"source\":{\"file_id\":\"283257336425\",\"file_name\":\"ScreenShot2018-03-12at5.44.00PM.png\",\"user_email\":\"externaluser@box.com\",\"parent\":{\"type\":\"folder\",\"name\":\"AllFiles\",\"id\":\"0\"},\"owned_by\":{\"type\": \"user\",\"id\":\"33333\",\"name\": \"Test User\",\"login\":\"testuser@example.com\"}},\"created_by\":{\"type\":\"user\",\"id\":\"11111\",\"name\":\"Test User\",\"login\":\"test@user.com\"},\"created_at\":\"2018-03-16T15:12:52-07:00\",\"event_id\":\"85c57bf3-bc15-4d24-93bc-955c796217c8\",\"event_type\":\"COLLABORATION_INVITE\",\"ip_address\":\"UnknownIP\",\"type\":\"event\",\"session_id\":null,\"additional_details\":null}]}";
IBoxRequest boxRequest = null;
Handler.Setup(h => h.ExecuteAsync<BoxEventCollection<BoxEnterpriseEvent>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxEventCollection<BoxEnterpriseEvent>>>(new BoxResponse<BoxEventCollection<BoxEnterpriseEvent>>()
congminh1254 marked this conversation as resolved.
Show resolved Hide resolved
{
Status = ResponseStatus.Success,
ContentString = responseString
})).Callback<IBoxRequest>(r => boxRequest = r);

/*** Act ***/
var userFileEvents = await _eventsManager.EnterpriseEventsAsync();

var userFileEventSource = userFileEvents.Entries[0].Source as BoxUserFileCollaborationEventSource;

Assert.AreEqual(userFileEvents.Entries[0].EventType, "COLLABORATION_INVITE");
Assert.AreEqual(userFileEvents.Entries[0].Source.GetType(), typeof(BoxUserFileCollaborationEventSource));
Assert.AreEqual(userFileEventSource.Id, "283257336425");
Assert.AreEqual(userFileEventSource.Name, "ScreenShot2018-03-12at5.44.00PM.png");
Assert.AreEqual(userFileEventSource.UserEmail, "externaluser@box.com");
Assert.AreEqual(userFileEventSource.OwnedBy.Id, "33333");
Assert.AreEqual(userFileEventSource.OwnedBy.Name, "Test User");
}

[TestMethod]
Expand All @@ -113,6 +142,30 @@ public async Task GetUserEventsFolder_ValidResponse()
Assert.AreEqual(userFolderEventSource.Name, "SharedWithServiceAccount");
}

[TestMethod]
public async Task GetUserEventsFolder_ExternalUser_ValidResponse()
{
var responseString = "{\"chunk_size\": 1, \"next_stream_position\": 123, \"entries\": [{\"source\":{\"folder_id\":\"47846340014\",\"folder_name\":\"SharedWithServiceAccount\",\"user_email\":\"externaluser@box.com\",\"parent\":{\"type\":\"folder\",\"name\":\"AllFiles\",\"id\":\"0\"}},\"created_by\":{\"type\":\"user\",\"id\":\"11111\",\"name\":\"Test User\",\"login\":\"test@user.com\"},\"created_at\":\"2018-03-16T15:12:52-07:00\",\"event_id\":\"85c57bf3-bc15-4d24-93bc-955c796217c8\",\"event_type\":\"COLLABORATION_INVITE\",\"ip_address\":\"UnknownIP\",\"type\":\"event\",\"session_id\":null,\"additional_details\":null}]}";
IBoxRequest boxRequest = null;
Handler.Setup(h => h.ExecuteAsync<BoxEventCollection<BoxEnterpriseEvent>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxEventCollection<BoxEnterpriseEvent>>>(new BoxResponse<BoxEventCollection<BoxEnterpriseEvent>>()
{
Status = ResponseStatus.Success,
ContentString = responseString
})).Callback<IBoxRequest>(r => boxRequest = r);

/*** Act ***/
var userFolderEvents = await _eventsManager.EnterpriseEventsAsync();

var userFolderEventSource = userFolderEvents.Entries[0].Source as BoxUserFolderCollaborationEventSource;

Assert.AreEqual(userFolderEvents.Entries[0].EventType, "COLLABORATION_INVITE");
Assert.AreEqual(userFolderEvents.Entries[0].Source.GetType(), typeof(BoxUserFolderCollaborationEventSource));
Assert.AreEqual(userFolderEventSource.Id, "47846340014");
Assert.AreEqual(userFolderEventSource.Name, "SharedWithServiceAccount");
Assert.AreEqual(userFolderEventSource.UserEmail, "externaluser@box.com");
}

[TestMethod]
public async Task GetGroupEventsFolder_ValidResponse()
{
Expand Down
5 changes: 3 additions & 2 deletions Box.V2/Converter/BoxItemConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ internal class BoxItemConverter : JsonCreationConverter<BoxEntity>
private const string WatermarkType = "watermark";
private const string GroupId = "group_id";
private const string UserId = "user_id";
private const string UserEmail = "user_email";
private const string FolderId = "folder_id";
private const string FileId = "file_id";

Expand Down Expand Up @@ -133,11 +134,11 @@ protected override BoxEntity Create(Type objectType, JObject jObject)
return new BoxGroupEventSource();
}
}
else if (FieldExists(UserId, jObject) && FieldExists(FileId, jObject))
else if ((FieldExists(UserId, jObject) || FieldExists(UserEmail, jObject)) && FieldExists(FileId, jObject))
{
return new BoxUserFileCollaborationEventSource();
}
else if (FieldExists(UserId, jObject) && FieldExists(FolderId, jObject))
else if ((FieldExists(UserId, jObject) || FieldExists(UserEmail, jObject)) && FieldExists(FolderId, jObject))
{
return new BoxUserFolderCollaborationEventSource();
}
Expand Down
7 changes: 7 additions & 0 deletions Box.V2/Models/BoxFileEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class BoxFileEventSource : BoxEntity
public const string FieldItemId = "item_id";
public const string FieldItemName = "item_name";
public const string FieldItemParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The type of the event source
Expand All @@ -35,5 +36,11 @@ public class BoxFileEventSource : BoxEntity
/// </summary>
[JsonProperty(PropertyName = FieldItemParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
7 changes: 7 additions & 0 deletions Box.V2/Models/BoxFolderEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class BoxFolderEventSource : BoxEntity
public const string FieldItemId = "item_id";
public const string FieldItemName = "item_name";
public const string FieldItemParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The type of the event source
Expand All @@ -35,5 +36,11 @@ public class BoxFolderEventSource : BoxEntity
/// </summary>
[JsonProperty(PropertyName = FieldItemParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
1 change: 1 addition & 0 deletions Box.V2/Models/BoxGroupEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public class BoxGroupEventSource : BoxEntity
/// <summary>
/// The type of the object.
/// </summary>
[JsonIgnore]
public override string Type { get { return "group"; } protected set { return; } }

/// <summary>
Expand Down
8 changes: 8 additions & 0 deletions Box.V2/Models/BoxGroupFileCollaborationEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class BoxGroupFileCollaborationEventSource : BoxEntity
public const string FieldGroupId = "group_id";
public const string FieldGroupName = "group_name";
public const string FieldParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The unique ID of the file being collaborated on.
Expand All @@ -19,6 +20,7 @@ public class BoxGroupFileCollaborationEventSource : BoxEntity
/// <summary>
/// The type of the object.
/// </summary>
[JsonIgnore]
public override string Type { get { return "file"; } protected set { return; } }

/// <summary>
Expand All @@ -44,5 +46,11 @@ public class BoxGroupFileCollaborationEventSource : BoxEntity
/// </summary>
[JsonProperty(PropertyName = FieldParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
8 changes: 8 additions & 0 deletions Box.V2/Models/BoxGroupFolderCollaborationEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class BoxGroupFolderCollaborationEventSource : BoxEntity
public const string FieldGroupId = "group_id";
public const string FieldGroupName = "group_name";
public const string FieldParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The unique ID of the folder being collaborated on.
Expand All @@ -19,6 +20,7 @@ public class BoxGroupFolderCollaborationEventSource : BoxEntity
/// <summary>
/// The type of the object.
/// </summary>
[JsonIgnore]
public override string Type { get { return "folder"; } protected set { return; } }

/// <summary>
Expand All @@ -44,5 +46,11 @@ public class BoxGroupFolderCollaborationEventSource : BoxEntity
/// </summary>
[JsonProperty(PropertyName = FieldParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
15 changes: 15 additions & 0 deletions Box.V2/Models/BoxUserFileCollaborationEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ public class BoxUserFileCollaborationEventSource : BoxEntity
public const string FieldFileName = "file_name";
public const string FieldUserId = "user_id";
public const string FieldUserName = "user_name";
public const string FieldUserEmail = "user_email";
public const string FieldParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The unique ID of the file being collaborated on.
Expand All @@ -19,6 +21,7 @@ public class BoxUserFileCollaborationEventSource : BoxEntity
/// <summary>
/// The type of the object.
/// </summary>
[JsonIgnore]
public override string Type { get { return "file"; } protected set { return; } }

/// <summary>
Expand All @@ -39,10 +42,22 @@ public class BoxUserFileCollaborationEventSource : BoxEntity
[JsonProperty(PropertyName = FieldUserName)]
public string UserName { get; private set; }

/// <summary>
/// The email of the user collaborating on the file.
/// </summary>
[JsonProperty(PropertyName = FieldUserEmail)]
public string UserEmail { get; private set; }

/// <summary>
/// The parent folder of the file being collaborated on.
/// </summary>
[JsonProperty(PropertyName = FieldParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
15 changes: 15 additions & 0 deletions Box.V2/Models/BoxUserFolderCollaborationEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ public class BoxUserFolderCollaborationEventSource : BoxEntity
public const string FieldFolderName = "folder_name";
public const string FieldUserId = "user_id";
public const string FieldUserName = "user_name";
public const string FieldUserEmail = "user_email";
public const string FieldParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The unique ID of the folder being collaborated on.
Expand All @@ -22,6 +24,7 @@ public class BoxUserFolderCollaborationEventSource : BoxEntity
/// <summary>
/// The type of the object.
/// </summary>
[JsonIgnore]
public override string Type { get { return "folder"; } protected set { return; } }

/// <summary>
Expand All @@ -42,10 +45,22 @@ public class BoxUserFolderCollaborationEventSource : BoxEntity
[JsonProperty(PropertyName = FieldUserName)]
public string UserName { get; private set; }

/// <summary>
/// The email of the user collaborating on the folder.
/// </summary>
[JsonProperty(PropertyName = FieldUserEmail)]
public string UserEmail { get; private set; }

/// <summary>
/// The parent folder of the folder being collaborated on.
/// </summary>
[JsonProperty(PropertyName = FieldParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
7 changes: 7 additions & 0 deletions Box.V2/Models/BoxWebLinkEventSource.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class BoxWebLinkEventSource : BoxEntity
public const string FieldItemId = "item_id";
public const string FieldItemName = "item_name";
public const string FieldItemParent = "parent";
public const string FieldOwnedBy = "owned_by";

/// <summary>
/// The type of the event source
Expand All @@ -35,5 +36,11 @@ public class BoxWebLinkEventSource : BoxEntity
/// </summary>
[JsonProperty(PropertyName = FieldItemParent)]
public BoxFolder Parent { get; private set; }

/// <summary>
/// The user who owns this item
/// </summary>
[JsonProperty(PropertyName = FieldOwnedBy)]
public BoxUser OwnedBy { get; private set; }
}
}
Loading