Skip to content

Commit 78061a5

Browse files
authored
feat: support sending login, logout, identify, and modify_user events (#81)
* feat: support sending login/logout events * feat: send userAttributes, MPID, and userIdentities in event * feat: send events for onUserIdentified and onModifyUser * feat: update event names * feat: correct EventDataType
1 parent 95f7ca8 commit 78061a5

2 files changed

Lines changed: 452 additions & 5 deletions

File tree

src/Rokt-Kit.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,49 @@ var constructor = function () {
595595
function onUserIdentified(filteredUser) {
596596
self.filters.filteredUser = filteredUser;
597597
self.userAttributes = filteredUser.getAllUserAttributes();
598+
_sendEventStream(_buildIdentityEvent('identify', filteredUser));
599+
}
600+
601+
function _buildIdentityEvent(eventName, filteredUser) {
602+
var mpid =
603+
filteredUser.getMPID && typeof filteredUser.getMPID === 'function'
604+
? filteredUser.getMPID()
605+
: null;
606+
var sessionId =
607+
window.mParticle &&
608+
window.mParticle.sessionManager &&
609+
typeof window.mParticle.sessionManager.getSession === 'function'
610+
? window.mParticle.sessionManager.getSession()
611+
: null;
612+
var userIdentities =
613+
filteredUser.getUserIdentities &&
614+
typeof filteredUser.getUserIdentities === 'function'
615+
? filteredUser.getUserIdentities().userIdentities
616+
: null;
617+
618+
return {
619+
EventName: eventName,
620+
EventDataType: 14, // MessageType.Profile
621+
Timestamp: Date.now(),
622+
MPID: mpid,
623+
SessionId: sessionId,
624+
UserIdentities: userIdentities,
625+
};
626+
}
627+
628+
function onLoginComplete(filteredUser) {
629+
self.userAttributes = filteredUser.getAllUserAttributes();
630+
_sendEventStream(_buildIdentityEvent('login', filteredUser));
631+
}
632+
633+
function onLogoutComplete(filteredUser) {
634+
self.userAttributes = filteredUser.getAllUserAttributes();
635+
_sendEventStream(_buildIdentityEvent('logout', filteredUser));
636+
}
637+
638+
function onModifyComplete(filteredUser) {
639+
self.userAttributes = filteredUser.getAllUserAttributes();
640+
_sendEventStream(_buildIdentityEvent('modify_user', filteredUser));
598641
}
599642

600643
function setUserAttribute(key, value) {
@@ -713,6 +756,9 @@ var constructor = function () {
713756
this.setExtensionData = setExtensionData;
714757
this.setUserAttribute = setUserAttribute;
715758
this.onUserIdentified = onUserIdentified;
759+
this.onLoginComplete = onLoginComplete;
760+
this.onLogoutComplete = onLogoutComplete;
761+
this.onModifyComplete = onModifyComplete;
716762
this.removeUserAttribute = removeUserAttribute;
717763

718764
/**

0 commit comments

Comments
 (0)