OneSignal is a push notification service for web and mobile apps. This SDK makes it easy to integrate your website with OneSignal Push Notifications. https://onesignal.com
Fixes outdated external ids caused by OneSignal returning the user's previous external id in its response for user GET requests when called quickly after the user was created.
Details
The server may still be updating and can return an outdated external Id from the getUser request. Instead of waiting for the updated external Id, we can hydrate the user with the local external Id as getting a response from the server means that the login was successful.
This PR also includes:
Adding a delay after creating a new user or push subscription as the OneSignal's backend can return incorrect 404 responses.
Adds a new records state to keep track of recently created users and subscriptions inorder to delay appropriate operations afterwards. The delay is needed because after the server creates the user/subscription, there is a small amount of time where the data is not up to date.
[x] All the automated tests pass or I explained why that is not possible
[x] I have personally tested this on my machine or explained why that is not possible
[x] I have included test coverage for these changes or explained why they are not needed
Programming Checklist
Interfaces:
[x] Don't use default export
[x] New interfaces are in model files
Functions:
[x] Don't use default export
[x] All function signatures have return types
[x] Helpers should not access any data but rather be given the data to operate on.
Typescript:
[x] No Typescript warnings
[x] Avoid silencing null/undefined warnings with the exclamation point
Other:
[x] Iteration: refrain from using elem of array syntax. Prefer forEach or use map
[x] 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
[x] I have included screenshots/recordings of the intended results or explained why they are not needed
Description
1 Line Summary
Fixes outdated external ids caused by OneSignal returning the user's previous external id in its response for user GET requests when called quickly after the user was created.
Details
The server may still be updating and can return an outdated external Id from the getUser request. Instead of waiting for the updated external Id, we can hydrate the user with the local external Id as getting a response from the server means that the login was successful.
This PR also includes: Adding a delay after creating a new user or push subscription as the OneSignal's backend can return incorrect 404 responses.
Systems Affected
Validation
Tests
Info
Checklist
Programming Checklist Interfaces:
Functions:
Typescript:
Other:
elem of array
syntax. PreferforEach
or usemap
context
if possible. Instead, we can pass it to function/constructor so that we don't callOneSignal.context
Screenshots
Info
Checklist
Related Tickets
This change is