Skip to content
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

[Fix] Add email and sms User issues #1129

Merged
merged 2 commits into from
Nov 14, 2023
Merged

Conversation

jkasten2
Copy link
Member

@jkasten2 jkasten2 commented Nov 14, 2023

Description

1 Line Summary

Fix issues with anonymous User onesignal_id and login with both addEmail and addSms.

Details

  • addEmail and addSms now save onesignal_id for anonymous Users if notifications have not been enabled yet
  • When awaiting OneSignal.login the Promise now resolve correctly after all work has been completed.

Validation

Tests

Tested on Chrome 119 on Windows 11

  • Tested calling await OneSignal.login("myId"); OneSignal.User.addEmail("a@a.com"); ensuring it sending external_id with the user create request.
  • Tested calling addEmail before accepting notifications and ensured the identity table in indexDb correctly had onesignal_id filled in.

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

When a pushSubscription is created it creates and then hydrates the
user. We are mkaing this consistent for email and sms. Introduced a new
createAndHydrateUser function to encapsulate this logic.
This function had a Promise for its return type but awaiting on it had
no effected before this commit.

Motivation for this change is to allow the developer to safely await
on login so follow up things like addEmail create the user with the
external_id correctly.
@jkasten2 jkasten2 requested review from rgomezp and emawby November 14, 2023 02:12
Base automatically changed from dev/fix_docker_dependencies_not_installed to main November 14, 2023 20:04
@jkasten2 jkasten2 merged commit e93f2bb into main Nov 14, 2023
2 checks passed
@jkasten2 jkasten2 deleted the fix/add_email_and_sms_user_issues branch November 14, 2023 20:59
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