Skip to content

Commit

Permalink
feat/AnalyticsEventUpdate add new features to AnalyticsPortalEvent an… (
Browse files Browse the repository at this point in the history
#2695)

* feat/AnalyticsEventUpdate add new features to AnalyticsPortalEvent and factory

* feat/AnalyticEventUpdate fix java format errors
  • Loading branch information
mgillian committed Nov 4, 2023
1 parent b29c1ca commit 442d1c5
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,8 @@
*/
package org.apereo.portal.events;

import java.util.Calendar;
import java.time.ZonedDateTime;
import java.util.Date;
import java.util.TimeZone;
import org.apereo.portal.security.IPerson;

public class AnalyticsPortalEvent extends PortalEvent {
Expand All @@ -26,26 +25,38 @@ public class AnalyticsPortalEvent extends PortalEvent {
private final Date eventDate;
private final String type;
private final String url;
private final String tabName;
private final String portletId;
private final String portletName;

AnalyticsPortalEvent() {
super();
user = "UNKNOWN";
eventDate = Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime();
eventDate = Date.from(ZonedDateTime.now().toInstant());
type = "UNKNOWN";
url = "";
tabName = "";
portletId = "";
portletName = "";
}

AnalyticsPortalEvent(
PortalEventBuilder portalEventBuilder,
IPerson user,
Date eventDate,
String type,
String url) {
String url,
String tabName,
String portletId,
String portletName) {
super(portalEventBuilder);
this.user = user.getUserName();
this.eventDate = eventDate;
this.type = type;
this.url = url;
this.tabName = tabName;
this.portletId = portletId;
this.portletName = portletName;
}

public String getUser() {
Expand All @@ -64,6 +75,18 @@ public String getUrl() {
return url;
}

public String getTabName() {
return tabName;
}

public String getPortletId() {
return portletId;
}

public String getPortletName() {
return portletName;
}

@Override
public String toString() {
return super.toString()
Expand All @@ -74,6 +97,12 @@ public String toString() {
+ ", type="
+ type
+ ", url="
+ url;
+ url
+ ", tabName="
+ tabName
+ ", portletId="
+ portletId
+ ", portletName="
+ portletName;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
Expand All @@ -26,7 +27,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.concurrent.atomic.AtomicReference;
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
Expand Down Expand Up @@ -575,14 +575,31 @@ public void publishAnalyticsPortalEvents(
IPerson person) {
final PortalEvent.PortalEventBuilder eventBuilder =
this.createPortalEventBuilder(source, request);
Date eventDate = Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTime();
Date eventDate = Date.from(ZonedDateTime.now().toInstant());
String rawEventType = (String) analyticsData.computeIfAbsent("type", key -> "UNKNOWN");
// throws IllegalArgumentException
String eventType = InputValidator.validateAsWordCharacters(rawEventType, "eventType");
String rawEventUrl = (String) analyticsData.computeIfAbsent("url", key -> "UNKNOWN");
String eventUrl = InputValidator.validateAsURL(rawEventUrl);
String rawEventUrl = (String) analyticsData.computeIfAbsent("url", key -> "");
String eventUrl =
StringUtils.isBlank(rawEventUrl) ? "" : InputValidator.validateAsURL(rawEventUrl);
String rawTabName = (String) analyticsData.computeIfAbsent("tab_name", key -> "UNKNOWN");
String tabName = rawTabName;
String rawPortletId =
(String) analyticsData.computeIfAbsent("portlet_id", key -> "UNKNOWN");
String portletId = rawPortletId;
String rawPortletName =
(String) analyticsData.computeIfAbsent("portlet_name", key -> "UNKNOWN");
String portletName = rawPortletName;
final AnalyticsPortalEvent event =
new AnalyticsPortalEvent(eventBuilder, person, eventDate, eventType, eventUrl);
new AnalyticsPortalEvent(
eventBuilder,
person,
eventDate,
eventType,
eventUrl,
tabName,
portletId,
portletName);
this.applicationEventPublisher.publishEvent(event);
}

Expand Down

0 comments on commit 442d1c5

Please sign in to comment.