Skip to content

Web SDK Refactor: Update Logout #1300

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 27, 2025
Merged

Web SDK Refactor: Update Logout #1300

merged 2 commits into from
May 27, 2025

Conversation

fadi-george
Copy link
Contributor

@fadi-george fadi-george commented May 20, 2025

Description

1 Line Summary

Continuation of the Web SDK Refactor project.

Details

  • adds integration logout tests
  • updates logout method to reset model values for identityModel and propertyModel then calls initializeUser

Systems Affected

  • WebSDK
  • Backend
  • Dashboard

Validation

Tests

Info

Checklist

  • All the automated tests pass or I explained why that is not possible
  • I have personally tested this on my machine or explained why that is not possible
  • I have included test coverage for these changes or explained why they are not needed

Programming Checklist
Interfaces:

  • Don't use default export
  • New interfaces are in model files

Functions:

  • Don't use default export
  • All function signatures have return types
  • Helpers should not access any data but rather be given the data to operate on.

Typescript:

  • No Typescript warnings
  • Avoid silencing null/undefined warnings with the exclamation point

Other:

  • Iteration: refrain from using elem of array syntax. Prefer forEach or use map
  • Avoid using global OneSignal accessor for context if possible. Instead, we can pass it to function/constructor so that we don't call OneSignal.context

Screenshots

Info

Checklist

  • I have included screenshots/recordings of the intended results or explained why they are not needed

Related Tickets



This change is Reviewable


Comment on lines +75 to +83
// replace models
const newIdentityModel = new IdentityModel();
OneSignal.coreDirector.identityModelStore.replace(newIdentityModel);

// add the push subscription model back to the repo since we need at least 1 sub to create a new user
OneSignal.coreDirector.addSubscriptionModel(pushSubModel);
const newPropertiesModel = new PropertiesModel();
OneSignal.coreDirector.propertiesModelStore.replace(newPropertiesModel);

// Initialize as non-local, make a request to OneSignal to create a new anonymous user
await UserDirector.initializeUser();
// create a new anonymous user
UserDirector.initializeUser();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updates logout method to reset model values for identityModel and propertyModel then calls initializeUser

What's the purpose of this change? Is it more aligned with the android SDK's logic or is it a cleaner approach?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More aligned to Android SDK approach. I think alternatively we could just erase the external id from the models.

@fadi-george fadi-george requested a review from sherwinski May 22, 2025 22:12
Base automatically changed from fg/login to web-refractor May 27, 2025 17:51
@fadi-george fadi-george merged commit 5463038 into web-refractor May 27, 2025
2 checks passed
@fadi-george fadi-george deleted the fg/logout branch May 27, 2025 17:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants