Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ __Breaking Changes:__
__New Features and Enhancements:__

__Bug Fixes:__
- Fix for deprecated enums still being used ([#931](https://github.com/box/box-java-sdk/issues/931))

## 2.57.0 [2021-10-18]

Expand Down
14 changes: 10 additions & 4 deletions doc/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ will only work with an API connection for an enterprise admin account.
// get the last two hours of unfiltered enterprise events
Date startDate = new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 2));
Date endDate = new Date(System.currentTimeMillis());
EventLog eventLog = EventLog.getEnterpriseEvents(api, startDate, endDate);
EnterpriseEventsRequest request = new EnterpriseEventsRequest()
.after(startDate)
.before(endDate);
EventLog eventLog = EventLog.getEnterpriseEvents(api, request);
for (BoxEvent event : eventLog) {
System.out.println("Enterprise Event Created by User: "
+ event.getCreatedBy().getName()
Expand All @@ -88,9 +91,12 @@ limit field.
```java
int LIMIT = 5;
BoxAPIConnection api = new BoxAPIConnection("YOUR-DEVELOPER-TOKEN-WITH-ADMIN-ACCESS");
EventLog eventLog = EventLog.getEnterpriseEvents(api, "STREAM-POSITION"
new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 2)),
new Date(System.currentTimeMillis()), LIMIT);
EnterpriseEventsRequest request = new EnterpriseEventsRequest()
.after(new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 2)))
.before(new Date(System.currentTimeMillis()))
.position("STREAM-POSITION")
.limit(LIMIT);
EventLog eventLog = EventLog.getEnterpriseEvents(api, request);
for (BoxEvent event : eventLog) {
System.out.println("Enterprise Event Created by User: "
+ event.getCreatedBy().getName()
Expand Down
52 changes: 50 additions & 2 deletions src/intTest/java/com/box/sdk/EventLogIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ public void getEnterpriseEventsReturnsAtLeastOneEvent() {
BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken());
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
EventLog events = EventLog.getEnterpriseEvents(api, after, before);

EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before);
EventLog events = EventLog.getEnterpriseEvents(api, request);

assertThat(events.getSize(), is(not(0)));
assertThat(events.getStartDate(), is(equalTo(after)));
Expand All @@ -30,7 +32,9 @@ public void getEnterpriseEventsGmtPlus530() {
TimeZone.setDefault(null);
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
EventLog events = EventLog.getEnterpriseEvents(api, after, before);

EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before);
EventLog events = EventLog.getEnterpriseEvents(api, request);

assertThat(events.getSize(), is(not(0)));
assertThat(events.getStartDate(), is(equalTo(after)));
Expand All @@ -45,6 +49,50 @@ public void getEnterpriseEventsGmtPlus530WithLimit() {
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
int limit = 5;

EnterpriseEventsRequest request = new EnterpriseEventsRequest().after(after).before(before).limit(limit);
EventLog events = EventLog.getEnterpriseEvents(api, request);

assertThat(events.getSize(), is(not(0)));
assertThat(events.getStartDate(), is(equalTo(after)));
assertThat(events.getEndDate(), is(equalTo(before)));
assertThat(events.getLimit(), is(equalTo(limit)));
}

@Test
public void getEnterpriseEventsReturnsAtLeastOneEventDeprecated() {
BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken());
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
EventLog events = EventLog.getEnterpriseEvents(api, after, before);

assertThat(events.getSize(), is(not(0)));
assertThat(events.getStartDate(), is(equalTo(after)));
assertThat(events.getEndDate(), is(equalTo(before)));
}

@Test
public void getEnterpriseEventsGmtPlus530Deprecated() {
BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken());
System.setProperty("user.timezone", "Asia/Calcutta");
TimeZone.setDefault(null);
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
EventLog events = EventLog.getEnterpriseEvents(api, after, before);

assertThat(events.getSize(), is(not(0)));
assertThat(events.getStartDate(), is(equalTo(after)));
assertThat(events.getEndDate(), is(equalTo(before)));
}

@Test
public void getEnterpriseEventsGmtPlus530WithLimitDeprecated() {
BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken());
System.setProperty("user.timezone", "Asia/Calcutta");
TimeZone.setDefault(null);
Date after = new Date(0L);
Date before = new Date(System.currentTimeMillis());
int limit = 5;
EventLog events = EventLog.getEnterpriseEvents(api, "", after, before, limit);

assertThat(events.getSize(), is(not(0)));
Expand Down
101 changes: 101 additions & 0 deletions src/main/java/com/box/sdk/EnterpriseEventsRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package com.box.sdk;

import static com.box.sdk.EventLog.ENTERPRISE_LIMIT;

import com.box.sdk.BoxEvent.EventType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;

/**
* Class describing request to get Admin Logs. You can use it's fluent interface to create new request like so:
* <pre>
* {@code
* new EnterpriseEventsRequest().position("stream_position").limit(50);
* }
* </pre>
*/
public final class EnterpriseEventsRequest {
private static final String ADMIN_LOGS_STREAM_TYPE = "admin_logs";
private Date before;
private Date after;
private String position;
private int limit = ENTERPRISE_LIMIT;
private Collection<EventType> types = new ArrayList<>();

/**
* The lower bound on the timestamp of the events returned.
* @param date the lower bound on the timestamp of the events returned.
* @return request being created.
*/
public EnterpriseEventsRequest after(Date date) {
this.after = date;
return this;
}

/**
* The upper bound on the timestamp of the events returned.
* @param date the upper bound on the timestamp of the events returned.
* @return request being created.
*/
public EnterpriseEventsRequest before(Date date) {
this.before = date;
return this;
}

/**
* The starting position of the event stream.
* @param position the starting position of the event stream.
* @return request being created.
*/
public EnterpriseEventsRequest position(String position) {
this.position = position;
return this;
}

/**
* The number of entries to be returned in the response.
* @param limit the number of entries to be returned in the response.
* @return request being created.
*/
public EnterpriseEventsRequest limit(int limit) {
this.limit = limit;
return this;
}

/**
* List of event types to filter by.
* @param types list of event types to filter by.
* @return request being created.
*/
public EnterpriseEventsRequest types(EventType... types) {
this.types = Arrays.asList(types);
return this;
}

Date getAfter() {
return after;
}

Date getBefore() {
return before;
}

String getPosition() {
return position;
}

int getLimit() {
return limit;
}


Collection<EventType> getTypes() {
return types;
}

String getStreamType() {
return ADMIN_LOGS_STREAM_TYPE;
}
}
Loading