@@ -26,6 +26,13 @@ const {RoktLayoutView} = MParticle;
2626
2727const eventManagerEmitter = new NativeEventEmitter ( MParticle . RoktEventManager ) ;
2828
29+ const generateGuid = ( ) =>
30+ 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' . replace ( / [ x y ] / g, character => {
31+ const random = Math . floor ( Math . random ( ) * 16 ) ;
32+ const value = character === 'x' ? random : ( random & 0x3 ) | 0x8 ;
33+ return value . toString ( 16 ) ;
34+ } ) ;
35+
2936export default class MParticleSample extends Component {
3037 constructor ( props ) {
3138 super ( props ) ;
@@ -47,64 +54,73 @@ export default class MParticleSample extends Component {
4754 this . render = this . render . bind ( this ) ;
4855
4956 // Example Login
50- var request = new MParticle . IdentityRequest ( ) ;
51- request . email = 'testing1@gmail.com' ;
52- request . customerId = '123' ;
53- MParticle . Identity . login ( request , ( error , userId , previousUserId ) => {
54- if ( error ) {
55- console . debug ( error ) ;
56- }
57-
58- // Only create alias request if there's a previous user
59- if ( previousUserId ) {
60- var previousUser = new MParticle . User ( previousUserId ) ;
61- previousUser . getFirstSeen ( firstSeen => {
62- previousUser . getLastSeen ( lastSeen => {
63- var aliasRequest = new MParticle . AliasRequest ( )
64- . sourceMpid ( previousUser . getMpid ( ) )
65- . destinationMpid ( userId )
66- . startTime ( firstSeen - 1000 )
67- . endTime ( lastSeen - 1000 ) ;
68- console . log ( 'AliasRequest = ' + JSON . stringify ( aliasRequest ) ) ;
69- MParticle . Identity . aliasUsers ( aliasRequest , ( success , error ) => {
70- if ( error ) {
71- console . log ( 'Alias error = ' + error ) ;
72- }
73- console . log ( 'Alias result: ' + success ) ;
74- } ) ;
57+ var loginRequest = new MParticle . IdentityRequest ( ) ;
58+ loginRequest . email = 'testing1@gmail.com' ;
59+ loginRequest . customerId = '123' ;
60+ MParticle . Identity . login (
61+ loginRequest ,
62+ ( loginError , loginUserId , previousUserId ) => {
63+ if ( loginError ) {
64+ console . debug ( loginError ) ;
65+ }
7566
76- var aliasRequest2 = new MParticle . AliasRequest ( )
77- . sourceMpid ( previousUser . getMpid ( ) )
78- . destinationMpid ( userId ) ;
79- console . log ( 'AliasRequest2 = ' + JSON . stringify ( aliasRequest2 ) ) ;
80- MParticle . Identity . aliasUsers ( aliasRequest2 , ( success , error ) => {
81- if ( error ) {
82- console . log ( 'Alias 2 error = ' + error ) ;
83- }
84- console . log ( 'Alias 2 result: ' + success ) ;
67+ // Only create alias request if there's a previous user
68+ if ( previousUserId ) {
69+ var previousUser = new MParticle . User ( previousUserId ) ;
70+ previousUser . getFirstSeen ( firstSeen => {
71+ previousUser . getLastSeen ( lastSeen => {
72+ var aliasRequest = new MParticle . AliasRequest ( )
73+ . sourceMpid ( previousUser . getMpid ( ) )
74+ . destinationMpid ( loginUserId )
75+ . startTime ( firstSeen - 1000 )
76+ . endTime ( lastSeen - 1000 ) ;
77+ console . log ( 'AliasRequest = ' + JSON . stringify ( aliasRequest ) ) ;
78+ MParticle . Identity . aliasUsers (
79+ aliasRequest ,
80+ ( success , aliasError ) => {
81+ if ( aliasError ) {
82+ console . log ( 'Alias error = ' + aliasError ) ;
83+ }
84+ console . log ( 'Alias result: ' + success ) ;
85+ } ,
86+ ) ;
87+
88+ var aliasRequest2 = new MParticle . AliasRequest ( )
89+ . sourceMpid ( previousUser . getMpid ( ) )
90+ . destinationMpid ( loginUserId ) ;
91+ console . log ( 'AliasRequest2 = ' + JSON . stringify ( aliasRequest2 ) ) ;
92+ MParticle . Identity . aliasUsers (
93+ aliasRequest2 ,
94+ ( success , alias2Error ) => {
95+ if ( alias2Error ) {
96+ console . log ( 'Alias 2 error = ' + alias2Error ) ;
97+ }
98+ console . log ( 'Alias 2 result: ' + success ) ;
99+ } ,
100+ ) ;
85101 } ) ;
86102 } ) ;
87- } ) ;
88- } else {
89- console . log ( 'No previous user found, skipping alias request' ) ;
90- }
91-
92- var user = new MParticle . User ( userId ) ;
93- console . debug ( 'User Attributes = ' + user . userAttributes ) ;
94- MParticle . Identity . logout ( { } , ( error , userId ) => {
95- if ( error ) {
96- console . debug ( 'Logout error' + error ) ;
103+ } else {
104+ console . log ( 'No previous user found, skipping alias request' ) ;
97105 }
98- var request = new MParticle . IdentityRequest ( ) ;
99- request . email = 'testing2@gmail.com' ;
100- request . customerId = '456' ;
101- MParticle . Identity . modify ( request , error => {
102- if ( error ) {
103- console . debug ( 'Modify error = ' + error ) ;
106+
107+ var user = new MParticle . User ( loginUserId ) ;
108+ console . debug ( 'User Attributes = ' + user . userAttributes ) ;
109+ MParticle . Identity . logout ( { } , logoutError => {
110+ if ( logoutError ) {
111+ console . debug ( 'Logout error' + logoutError ) ;
104112 }
113+ var modifyRequest = new MParticle . IdentityRequest ( ) ;
114+ modifyRequest . email = 'testing2@gmail.com' ;
115+ modifyRequest . customerId = '456' ;
116+ MParticle . Identity . modify ( modifyRequest , modifyError => {
117+ if ( modifyError ) {
118+ console . debug ( 'Modify error = ' + modifyError ) ;
119+ }
120+ } ) ;
105121 } ) ;
106- } ) ;
107- } ) ;
122+ } ,
123+ ) ;
108124
109125 var i = 0 ;
110126 // Toggle the state every few seconds, 10 times
@@ -121,10 +137,13 @@ export default class MParticleSample extends Component {
121137 MParticle . Identity . getCurrentUser ( currentUser => {
122138 //currentUser.setUserTag('regular');
123139 } ) ;
124- var request = new MParticle . IdentityRequest ( ) ;
125- request . email = 'testing1@gmail.com' ;
126- request . customerId = 'vlknasdlknv' ;
127- request . setUserIdentity ( '12345' , MParticle . UserIdentityType . Alias ) ;
140+ var intervalRequest = new MParticle . IdentityRequest ( ) ;
141+ intervalRequest . email = 'testing1@gmail.com' ;
142+ intervalRequest . customerId = 'vlknasdlknv' ;
143+ intervalRequest . setUserIdentity (
144+ '12345' ,
145+ MParticle . UserIdentityType . Alias ,
146+ ) ;
128147
129148 const product = new MParticle . Product (
130149 'Test product for cart' ,
@@ -239,7 +258,7 @@ export default class MParticleSample extends Component {
239258 }
240259
241260 _roktSession ( ) {
242- const sessionId = `rn-sample- ${ Date . now ( ) } ` ;
261+ const sessionId = generateGuid ( ) ;
243262 MParticle . Rokt . setSessionId ( sessionId )
244263 . then ( ( ) => {
245264 return MParticle . Rokt . getSessionId ( ) ;
@@ -272,7 +291,9 @@ export default class MParticleSample extends Component {
272291 const attributes =
273292 Platform . OS === 'ios' ? iosAttributes : androidAttributes ;
274293 console . log (
275- `Platform detected: ${ Platform . OS } , using ${ Platform . OS === 'ios' ? 'iOS' : 'Android' } attributes:` ,
294+ `Platform detected: ${ Platform . OS } , using ${
295+ Platform . OS === 'ios' ? 'iOS' : 'Android'
296+ } attributes:`,
276297 attributes ,
277298 ) ;
278299 const cacheConfig = MParticle . Rokt . createCacheConfig ( 30 , attributes ) ;
0 commit comments