@@ -163,11 +163,56 @@ export class Pam {
163
163
}
164
164
165
165
static async userLogin ( loginId : string ) {
166
- return Pam . shared ?. userLogin ( loginId ) ;
166
+ const deviceToken =
167
+ await Pam . _instance . storage ?. getLocalStorage ( 'deviceToken' ) ;
168
+ const mediaKey =
169
+ await Pam . _instance . storage ?. getLocalStorage ( 'push_media_key' ) ;
170
+ if ( mediaKey ) {
171
+ let payload : Record < string , any > = { _delete_media : mediaKey } ;
172
+ await Pam . shared ?. track ( 'delete_media' , payload ) ;
173
+ }
174
+ const loginResp = await Pam . shared ?. userLogin ( loginId ) ;
175
+ if ( deviceToken ) {
176
+ await Pam . updatePushNotificationToken ( deviceToken ) ;
177
+ }
178
+
179
+ return loginResp ;
167
180
}
168
181
169
182
static async userLogout ( ) {
170
- return Pam . shared ?. userLogout ( ) ;
183
+ const deviceToken =
184
+ await Pam . _instance . storage ?. getLocalStorage ( 'deviceToken' ) ;
185
+ const mediaKey =
186
+ await Pam . _instance . storage ?. getLocalStorage ( 'push_media_key' ) ;
187
+ if ( mediaKey ) {
188
+ let payload : Record < string , any > = { _delete_media : mediaKey } ;
189
+ await Pam . shared ?. track ( 'delete_media' , payload ) ;
190
+ }
191
+
192
+ const logoutResp = await Pam . shared ?. userLogout ( ) ;
193
+
194
+ if ( deviceToken ) {
195
+ await Pam . updatePushNotificationToken ( deviceToken ) ;
196
+ }
197
+ return logoutResp ;
198
+ }
199
+
200
+ static updatePushNotificationToken ( deviceToken : string ) {
201
+ let mediaKey = '' ;
202
+ if ( Platform . OS === 'ios' ) {
203
+ if ( __DEV__ ) {
204
+ deviceToken = `_${ deviceToken } ` ;
205
+ }
206
+ mediaKey = 'ios_notification' ;
207
+ } else {
208
+ mediaKey = 'android_notification' ;
209
+ }
210
+ let payload : Record < string , any > = { } ;
211
+ payload [ mediaKey ] = deviceToken ;
212
+
213
+ Pam . shared ?. track ( 'save_push' , payload ) ;
214
+ Pam . _instance . storage ?. setLocalStorage ( 'deviceToken' , deviceToken ) ;
215
+ Pam . _instance . storage ?. setLocalStorage ( 'push_media_key' , mediaKey ) ;
171
216
}
172
217
173
218
static async loadConsentStatus ( consentMessageId : string ) {
0 commit comments